1. 程式人生 > >LeetCode:C語言 1.TwoSum

LeetCode:C語言 1.TwoSum

雖然本科電子資訊工程不教演算法一類的課程,但為了將來日常工作,決定開始自學一些演算法和資料結構知識。

就從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位元組的空間。

新的開始,不斷精進。