[JS做LeetCode] Two Sum
<html> <head> <meta http-equiv="charset" content="utf-8"></head> <body> <script> var numbers=[2, 7, 11, 15]; var target = 9; var twoSum = function(numbers, target) { // 用对象来模拟hash table // 将所有数组放进hash里面,key为当前值,value为下标 var hash = {}; for(var i=0; i<numbers.length; i++) { hash[numbers[i]] = i; } // 遍历数组,如果hash里面有key和数组当前的值相加为target,那么就是那两下标了 // 注意要判断两下标不能一样 for(var i=0; i<numbers.length; i++) { var needValue = target-numbers[i]; if(hash.hasOwnProperty(needValue)) { var index1 = i+1; var index2 = hash[needValue]+1; if(index1!==index2) { return [index1, index2]; } } } }; alert(twoSum(numbers, target)); </script></body>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。