Skip to content

Instantly share code, notes, and snippets.

@monsterooo
Created February 13, 2019 13:53
Show Gist options
  • Save monsterooo/ae6c4c904b67ddfa26f5b0eb0de23fc0 to your computer and use it in GitHub Desktop.
Save monsterooo/ae6c4c904b67ddfa26f5b0eb0de23fc0 to your computer and use it in GitHub Desktop.
算法练习-求和为给定值得两个数
var nums = [1,2,3,6,8,11];
var target = 10;
// 暴力破解法 O(n^2)
function getTwoNumSumBruteForce(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]
}
}
}
return [-1, -1];
}
console.log('暴力破解法 > ', getTwoNumSumBruteForce(nums, target))
// hash映射法
function getTwoNumSumHashMap(nums, target) {
var map = {};
for (var i = 0; i < nums.length; i++) {
var numNeeded = target - nums[i];
if (map[numNeeded]) {
return [map[numNeeded], i]
}
map[nums[i]] = i;
}
return [-1, -1];
}
console.log('hash映射法 > ', getTwoNumSumHashMap(nums, target))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment