力扣 两数之和

这个题我的答案通不过,但是我觉得我写的是对的,当然,细节的话可能会有失误,因为没有测试,所以如果有啥问题就反馈。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 int* twoSum(int* nums, int numsSize, int target, int* returnSize) {
 4     int map[100];
 5     map[0] = target - nums[0];
 6     for (int i = 1; i < numsSize; i++) {
 7         for (int j = 0; j < sizeof(map)/sizeof(*map); j++) {
 8             if (nums[i] == map[j]) {
 9                 returnSize[0] = j;
10                 returnSize[1] = i;
11         }
12                 return returnSize;
13             }
14         map[i] = target - nums[i];
15     }
16     
17 }
18 
19 int main() {
20     int a[4] = { 2,7,11,15 };
21     int b[2];
22     int target = 9;
23     twoSum(a, sizeof(a) / sizeof(*a), target, b);
24 
25     printf("[%d,%d]\n", b[0],b[1]);
26 
27     return 0;
28 }

函数刚开始的那个map[100]我是无奈加的,因为vs2019不通过动态内存。

思路就是哈希表

 

posted @ 2020-11-18 12:32  沉梦昂志_doc  阅读(138)  评论(0编辑  收藏  举报