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");
};