LeetCode:C語言 1.TwoSum
阿新 • • 發佈:2018-12-15
雖然本科電子資訊工程不教演算法一類的課程,但為了將來日常工作,決定開始自學一些演算法和資料結構知識。
就從LeetCode開始吧!
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。
你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。
例如:給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
int* twoSum(int* nums, int numsSize, int target) { int *a = (int*)malloc(2*sizeof(int)); for(int i=0;i<numsSize;i++) for(int j=i+1;(j<numsSize && j!=i);j++) { if(nums[i]+nums[j]==target) { a[0]=i; a[1]=j; } } return a; }
我採用了最簡單的方法,通過2個For迴圈完成了遍歷尋找。
收貨:
int *a = (int*)malloc(2*sizeof(int));
這段程式碼是在動態分配記憶體,為int型指標a分配的2個int位元組的空間。
新的開始,不斷精進。