leetcode-js面接問題|1.2の合計
5202 ワード
テーマ
一つの整数配列
各入力は一つの答えにしか対応しないと仮定してもいいです.しかし、配列中の同じ要素は2回使用できません.
例:
1.二重循環時間の複雑度: 時間の複雑度:
一つの整数配列
nums
と一つの目標値target
を指定します.この配列の中から目標値としての二つの整数を見つけてください.そして、彼らの配列の下に戻ってください.各入力は一つの答えにしか対応しないと仮定してもいいです.しかし、配列中の同じ要素は2回使用できません.
例:
nums = [2, 7, 11, 15], target = 9
nums[0] + nums[1] = 2 + 7 = 9
[0, 1]
法を解く1.二重循環
O(n^2)
var twoSum = function(nums, target) {
for (var i = 0; i < nums.length; i++) {
var dif = target - nums[i];
// j = i + 1
for (var j = i + 1; j < nums.length; j++) {
if(nums[j] == dif)
return [i,j];
}
}
};
2.保存しながら比較するO(n)
var twoSum = function(nums, target) {
var temp = [];
for(var i=0;i<nums.length;i++){
var dif = target - nums[i];
if(temp[dif] != undefined){
return [temp[dif],i];
}
temp[nums[i]] = i;
}
};
ソース:スナップリンク:https://leetcode-cn.com/problems/two-sum