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

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


计算两数之和_嵌套


解题答案

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

/**
* 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 用来跳出多层嵌套是很方便的),然后通过 ​堆空间​ 来把数组的两个下标返回,类似的很多题都是通过堆空间来返回值的。


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



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


如果喜欢,请 {关注} 、{分享} 或 ,作者在此表示感谢!