leedcode记录 ------1 .两个总和

https://leetcode.com/problems/two-sum/description/

问题描述:

给定一个整数数组,返回两个数字的索引,使它们相加到特定目标。

您可以假设每个输入只有一个解决方案,并且您可能不会两次使用相同的元素。

例:

给定nums = [2,7,11,15],target = 9,

因为nums [ 0 ] + nums [ 1 ] = 2 + 7 = 9,
返回[ 0,1 ]。

草稿写了一遍大概的意思,

var twoSum = function (nums, target) {
        var numOne;
        var numTwo;
        for (var i = 0; i < nums.length; i++) {
            for (var j = i+1; j < nums.length; j++){
                if (nums[i] + nums[j] == target) {
                    numOne = i;
                    numTwo = j;
                    return {numOne,numTwo}
                }
            }
        }
    };

然后在leetcode上检测运行,提示错误,我输出的是对象,而题目要求的是数组。

所以我要将 return 后面接一个数组,提前就建好一个空的数组来接收预计的结果,最后添加结果给result并返回即可。

修改如下,通过,只是关于什么时间复杂度,空间复杂度,我还不曾了解。日后再补相关知识。

 var twoSum = function (nums, target) {
        var result = [];
        for (var i = 0; i < nums.length; i++) {
            for (var j = i+1; j < nums.length; j++){
                if (nums[i] + nums[j] == target) {
                    result.splice(0,0,i,j);
                    return result
                }
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_42273637/article/details/82730075
今日推荐