1.两数之和

1.题目描述

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

复制代码
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

2.解题思路

直接用暴力解法,两个循环,但是C语言需要注意一些点

3.代码

objectivec 复制代码
int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
    for(int i =0;i<numsSize;i++){
        for(int j=i+1;j<numsSize;j++){
            if(nums[i]+nums[j] ==target){//建立新数组
            int* res = malloc(sizeof(int)*2);
            res[0]=i;
            res[1]=j;
            *returnSize = 2;
            return res;
            }
        }
    }
    *returnSize = 0;
    return NULL;
}

4.代码剖析

int* res = malloc(sizeof(int)*2);

这一句在堆内存中建立了一个大小为2个int类型的空间,不会随着函数运行完后被销毁,其中,res是一个指针变量,存的是地址,具体来说是该数组res的首地址,*res是对该地址解引用,也就是该地址内的数据,同样也是数组第一个数据即res0 = *res,*(res+0) = res0,*(res+1) = res1.

return res;

返回一个指针变量int*,表示返回一个数组的首地址,可以通过该地址对数组内所有的元素进行寻址,即*(res+i) = resi

相关推荐
blevoice13 小时前
抖抖燃脂机单 AC6966B 主控调试踩坑:Type-C 整机供电喇叭无声排障
c语言·开发语言·单片机
小小晓.14 小时前
C++小白记:C风格字符串和数组用法
c语言·开发语言·c++
深念Y14 小时前
开发者如何清理和迁移C盘堆积的垃圾
c语言·开发语言
十月的皮皮15 小时前
STM32从零到量产开发:四路继电器工业控制模块开发实战笔记(小白视角)
c语言·笔记·stm32·stm32cubemx·hal库
天空'之城16 小时前
C 语言工业级通用组件手写 10:字节序转换
c语言·字节序·大小端·嵌入式通信·工业级组件
我叫洋洋1 天前
C ++ [ hello world ]
c语言·c++·算法
天空'之城1 天前
C 语言工业级通用组件手写 09:CRC32 数据校验
c语言·嵌入式开发·数据校验·crc32·工业级组件
Scott9999HH1 天前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
天空'之城1 天前
C 语言工业级通用组件手写 06:固定块内存池
c语言·嵌入式开发·内存池·底层优化
十月的皮皮1 天前
stm20260720-从新手 C 到量产 STM32 工程:程序设计推导指南
c语言·开发语言·stm32·stm32cubemx·hal库