首页 > 其他分享 >Leetcode--第1题(暴力解法C语言版)

Leetcode--第1题(暴力解法C语言版)

时间:2024-04-02 17:37:41浏览次数:20  
标签:返回 target nums -- C语言 int 数组 Leetcode 函数

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

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int* returnSize){
    for(int i = 0; i < numsSize; i++){	//这是一个外层循环,遍历数组 nums 的每一个元素。
        for(int j = i + 1; j < numsSize; j++){	//这是一个内层循环,从当前外层循环的索引 i 的下一个元素开始,遍历数组 nums 的剩余元素。
            if(nums[i]+nums[j] == target){	//检查当前两个元素(nums[i] 和 nums[j])的和是否等于目标整数 target。
                *returnSize = 2;	//如果找到满足条件的两个数,将 returnSize 设置为2,表示返回的数组包含两个元素。
                int* ans = (int*)malloc(sizeof(int) * 2);	//动态分配一个可以存储两个整数的内存块,并将返回的指针存储在 ans 中。
                ans[0] = i; ans[1] = j;	//将找到的两个数的索引存储在 ans 指向的数组中。
                return ans;	//返回包含两个索引的数组的指针。
            }
        }
    }
        return NULL;	//如果遍历完整个数组都没有找到满足条件的两个数,函数返回 NULL。
}

这段代码定义了一个名为 twoSum 的函数,该函数接受一个整数数组 nums、该数组的大小 numsSize、一个目标整数 target 和一个指向整数 returnSize 的指针作为参数。这个函数的目标是在数组 nums 中找到两个数,它们的和等于 target。如果找到这样的两个数,函数会返回它们在数组中的索引;否则,它返回 NULL。

注意:

  • 在这个函数中,每次找到满足条件的两个数时都会分配新的内存并返回。这意味着如果有多个解,只有第一个解会被返回。如果函数的设计意图是返回所有解,那么你需要修改这个函数来存储和返回所有的解。
  • 使用 malloc 分配的内存需要在使用完毕后通过 free 函数释放,以避免内存泄漏。调用这个函数的代码应该负责释放返回的指针所指向的内存。
  • 如果 malloc 调用失败(例如,由于内存不足),它将返回 NULL。在实际应用中,你应该检查 malloc 的返回值,以确保内存分配成功。然而,在这个特定的代码片段中,并没有检查 malloc 的返回值。如果 malloc 失败,函数将返回 NULL,但调用者不会知道是因为没有找到解还是因为内存分配失败。

标签:返回,target,nums,--,C语言,int,数组,Leetcode,函数
From: https://www.cnblogs.com/erronzzz/p/18111105

相关文章

  • for (int num : nums)的理解
    1、理解for(intnum:nums)是C++11引入的一种新的循环语法,称为范围-basedfor循环或者是foreach循环。这种循环语法可以遍历容器或者数组中的元素,并且代码更加简洁易读。intnum:这里的num是循环体内部使用的循环变量,它的类型要和容器中的元素类型相匹配。::冒号前面......
  • Mybatis 中 javaType 和 jdbcType 对应关系
      JDBCType             JavaType     CHAR                  String  VARCHAR              String  LONGVARCHAR                Str......
  • Csharp线程
    CSharpe线程目录CSharpe线程C#如何操作线程Thread1.Thread如何开启一个线程呢?2.Thread中常见的API3.thread的扩展封装threadpool一、.NETFramework2.0时代:出现了一个线程池ThreadPool二、线程池如何申请一个线程呢?三、线程等待四、线程池如何控制线程数量Task一、Task开启线......
  • UOS使用笔记
    备份WPS序列号文件管理器点放大镜输入/opt/kingsoft/.auth/回车,然后把license2.dat文件复制出来备份,重装后再复制回去。添加柯尼卡美能达打印机柯尼卡美能达官网、统信兼容应用清单里提供的驱动都不全,少数有提供驱动的,也无法实现多面打印、彩色打印等基础功能。对此需要在......
  • 小美的树上染色(美团2024届秋招笔试第一场编程真题)
    题面核心思想树形DPdp[1]表示以当前节点为根节点所包含的子树且当前节点能染色的最大染色数量dp[0]表示以当前节点为根节点所包含的子树且当前节点不染色的最大染色数量详情看注释~代码importjava.util.*;publicclassMain{publicstaticvoidmain(String[......
  • nodejs在谷歌浏览器中调试
    一.浏览器开启实验室模式在谷歌浏览器中输入网址<chrome://flags/>,进入页面后打开该功能。二.配置js文件我用的是pycharm,首先对需要调试的js文件进行配置,然后填入--inspect-brk三.调试jsDebugger要调试的js文件,然后在谷歌浏览器中新打开一个标签页,打开开发者工具,等待nod......
  • 分词
     今天发现一个不用npl实现分词的方法jieba分词全自动安装:pipinstalljieba(window环境)pip3installjieba(Linux环境)首先进行将语句转换为UTF-8或者GBK。然后根据用户指定的模式,是否全模式,是否采用HMM隐马尔科夫,来设置cut方式。然后根据正则,将输入文本分为一个......
  • Qt 求圆和椭圆上任意角度点的坐标
    0.圆相关公式在笛卡尔坐标系上,一个标准的圆是这样的: 已知圆心坐标(x0,y0),半径R,角度a,则圆边上点(x',y')的坐标为:C的三角函数参数为弧度,转换如下:角度转弧度: 弧度转角度:但我们知道,Qt绘图是屏幕坐标系,起点在左上角,以右下角为正方向: (可以把计算后的y取反来得到想要的效果......
  • 园子周边第2季:黑色大鼠标垫已上架,大气简洁与五彩缤纷的融合
    大家好,黑色款大鼠标垫今天在淘宝店与微店上架啦,欢迎瞧一瞧看一看逛一逛买一买。这是园子的第一款黑色背景鼠标垫,基于蓝色款大鼠标垫的设计,去掉了“代码改变世界”,引入了五彩缤纷的以代码为主题的星星。鼠标垫定价:¥49.00,VIP会员优惠价:¥30.00(仅限1个),PLUS会员优惠价:¥20.00(仅限1个)......
  • 分词-1
    #encoding=utf-8importjiebajieba.enable_paddle()#启动paddle模式。strs=["我关注了数据STUDIO","我是数据分析师","四川大学"]forstrinstrs:seg_list=jieba.cut(str,use_paddle=True)#使用paddle模式print("PaddleMode:"+'......