首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >计算两数之和

计算两数之和

作者头像
码农UP2U
发布于 2020-08-26 14:31:05
发布于 2020-08-26 14:31:05
6830
举报
文章被收录于专栏:码农UP2U码农UP2U

LeetCode 题库的第一题——两数之和

直接在 LC 上写代码,不去开发环境中写代码调试,感觉跟在纸上写差不多,挺不习惯。题目如下图,直接从网站上把图截取过来的。

解题答案

  我的解题答案是用 C 语言完成的,代码如下:

代码语言:javascript
复制
/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target) {
    int i, j;
    int *pArr = NULL;
    
    for ( i = 0; i < numsSize; i ++ ) {
        for ( j = i + 1; j < numsSize; j ++  ) {
            if ( nums[i] + nums[j] == target ) {
                goto EXIT;
            }
        }
    }
EXIT:
    
    if ( i < numsSize && j < numsSize ) {
        pArr = (int*)malloc(2 * sizeof(int));
        pArr[0] = i;
        pArr[1] = j;
    } 
    
    return pArr;
}

  函数的原型是LeetCode已经定义好的,最上面的注释也是LeetCode中的,代码的思路也比较简单,两层循环来进行逐个的进行 加法 运算,计算获得 target 值之后用 goto 直接跳出两层循环( C 语言不建议使用 goto 语句,但是并没有说不允许使用,直接结构清楚,goto 用来跳出多层嵌套是很方便的),然后通过 堆空间 来把数组的两个下标返回,类似的很多题都是通过堆空间来返回值的。

  把自己的答案分享在这里,献丑了,也许哪个大牛指点一下还会提高一下。

由于本人水平有限,难免有误,中肯取代无理,客观代替谩骂,希望可以互相学习,共同提高!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-11,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档