美文网首页
leecode 1 两数之和

leecode 1 两数之和

作者: windyboy | 来源:发表于2018-06-04 11:07 被阅读0次

    求数组内满足特定值的元素索引

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    

    方法一

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number[]}
     */
    var twoSum = function(nums, target) {
        for(var i=0;i<nums.length;i++){
            for(var j=i+1;j<nums.length;j++){
                if(nums[j]==target - nums[i]){
                    var res = [i,j];
                    return res;
                }
            }
        }
        return 'no have';
    };
    

    这种方法容易想,时间复杂度为n2

    方法二

    /**
     * @param {number[]} nums
     * @param {number} target
     * @return {number[]}
     */
    var twoSum = function(nums, target) {
        var temp = new Array();
        for(var i=0;i<nums.length;i++){
           var complement = target - nums[i];
           if(temp.hasOwnProperty(complement)){
               var res = [temp[complement],i];
               return res;
           }
           temp[nums[i]] = i;
        }
        return 'no have';
    };
    

    这种方法不是很容易想,但很有趣 56ms

    go重写

    func twoSum(nums []int, target int) []int {
        slice:=make([]int,2)
        for i,value := range nums{
            for j:=i+1;j<len(nums);j++{
                var sum int        
                sum = value +nums[j]
                if sum==target{
                    slice[0]=i
                    slice[1]=j
                    return slice;
                }
            }
        }
        return slice;
        
    }
    

    写的并不好,但是语言优势,比js要快

    相关文章

      网友评论

          本文标题:leecode 1 两数之和

          本文链接:https://www.haomeiwen.com/subject/seeesftx.html