欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

leetcode算法题记录

程序员文章站 2022-05-20 16:46:29
...

此篇为记录leetcode算法题解题方法,语言为JavaScript(会持续更新)

1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

//法一  时间复杂度O(n^2) 空间复杂度O(n)
var twoSum = function(nums, target) {
    for(var i=0; i<nums.length; i++) {
       var need = target-nums[i];
       var needindex = nums.findIndex(function(value, index, arr) {
            return value === need && index!== i
        });
       if (needindex >-1) {
           return [i, needindex]
       }
    }
    throw new IllegalArgumentException("No two sum solution");
};
//法二 最简单直接的 两层for循环 时间复杂度O(n),空间复杂度O(1)
var twoSum = function(nums, target) {
    for(var i=0; i<nums.length; i++) {
       for(var j=i+1; j<nums.length; j++) {
          if (nums[i] + nums[j] === target) {
            return [i, j]
          }
       }
    }
    throw new IllegalArgumentException("No two sum solution");
};

 

相关标签: 算法练习