1. 程式人生 > 實用技巧 >LeetCode簡單1.兩數之和

LeetCode簡單1.兩數之和

題目:

給定一個整數陣列 nums和一個目標值 target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應一個答案。但是,陣列中同一個元素不能使用兩遍。

示例:

給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/two-sum

著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處


C語言寫法

 1 /**
 2  * Note: The returned array must be malloced, assume caller calls free().
3 */ 4 int *twoSum(int* nums, int numsSize, int target, int *returnSize){ 5 int *a = (int*)malloc(sizeof(int)*2); 6 for (int i = 0; i < numsSize-1; i++) 7 { 8 for (int k = i+1; k < numsSize; k++) 9 { 10 if (target == nums[i] + nums[k]) 11 {
12 a[0] = i; 13 a[1] = k; 14 *returnSize = 2; 15 return a; 16 } 17 } 18 } 19 *returnSize = 0; 20 return 0; 21 }

隨筆備份:

int *a = (int*)malloc(sizeof(int)*2);的意思是為int型陣列a分配記憶體空間;
int *returnSize;這個數的意思是輸出的值得個數,leetcode上不需要寫main函式但是他給的定義完了的可能都要用;


第一次刷leetcode就感覺自己是個傻子orz,一道簡單題能暴力出來就不想考慮時間複雜度什麼的,和其他在討論區的大佬比起來真的是差得遠了