LeetCode(C語言) - 167. 兩數之和 II - 輸入有序陣列
阿新 • • 發佈:2022-05-13
https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/
注意
引數returnSize為址傳遞,應賦值為2,表示返回的陣列長度為2
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* twoSum(int* numbers, int numbersSize, int target, int* returnSize){
}
提交程式碼1:暴力法
int* twoSum(int* numbers, int numbersSize, int target, int* returnSize){ *returnSize=2; int *res=(int *)malloc(2*sizeof(int)); for(int i=0;i<numbersSize-1;i++){ for(int j=i+1;j<numbersSize;j++){ if(numbers[i]+numbers[j] == target){ res[0] = i+1; res[1] = j+1; return res; } } } res[0] = 1; res[1] = 2; return res; }
執行結果
執行結果:
通過
顯示詳情
新增備註
執行用時:
1184 ms
, 在所有 C 提交中擊敗了
9.19%
的使用者
記憶體消耗:
7.1 MB
, 在所有 C 提交中擊敗了
56.87%
的使用者
通過測試用例:
21 / 21
完整程式碼
#include <stdio.h> #include <malloc.h> int* twoSum(int* numbers, int numbersSize, int target, int* returnSize){ *returnSize=2; int *res=(int *)malloc(2*sizeof(int)); for(int i=0;i<numbersSize-1;i++){ for(int j=i+1;j<numbersSize;j++){ if(numbers[i]+numbers[j] == target){ res[0] = i+1; res[1] = j+1; return res; } } } res[0] = 1; res[1] = 2; return res; } main(){ // int a[] = {2,7,11,15},target = 9; int a[] = {2,3,4},target = 6; int len = sizeof (a) / sizeof (int); for(int i=0;i<len;i++){ printf("%d ",a[i]); } printf("\n"); int returnSize; int* b = twoSum(a,len,target,&returnSize); for(int i=0;i<returnSize;i++){ printf("%d ",b[i]); } printf("\n"); }
控制檯輸出
2 3 4
1 3
--------------------------------
Process exited after 0.3133 seconds with return value 0
請按任意鍵繼續. . .