leetcode-1 Two Sum

来源:互联网 发布:mysql e 执行sql 编辑:程序博客网 时间:2024/03/29 10:21

大多数答案都是使用C++和java的容器和hashmap解决的,O(n) runtime和O(n) space,网上也搜不到用C的解答

使用暴力破解法(O(n^2) runtime)提示time limited exceed

使用下面的方法,貌似遍历的次数少一些,可以通过oj

int res[2] = {0};int findLeft(int back[],int n,int left){    int i;    for(i = 0; i < n; i++){        if(back[i] == left)            return i;    }    return -1;    }int *twoSum(int numbers[], int n, int target) {    int i,j;    int back[10240] = {0};    for(i = 0; i < n; i++){       int left = target - numbers[i];       int tmp = findLeft(back,i,left);       if(tmp >= 0){           res[0] = tmp+1;           res[1] = i + 1;           return res;       }else{           back[i] = numbers[i];       }    }}


0 0
原创粉丝点击