[leetcode]1. Two Sum -- JavaScript 代码

系统管理员 2022-07-18 01:27 201阅读 0赞
  1. /** * @param {number[]} nums * @param {number} target * @return {number[]} */
  2. var twoSum = function(nums, target) {
  3. var len = nums.length;
  4. var map = {};
  5. for(var i=0;i<len;i++){
  6. cur = nums[i];
  7. if(map[cur]){
  8. map[cur].push(i);
  9. }else{
  10. map[cur] = [i];
  11. }
  12. }
  13. for(var key in map){
  14. if(map[target-key]){
  15. if(target-key == key){
  16. return [map[key][0],map[key][1]];
  17. }
  18. return [map[key][0],map[target-key][0]];
  19. }
  20. }
  21. };

一开始采用的是循环数组中的每个元素,然后用indexOf方法去查找target - nums[i]元素是否存在,这样代码很短,但是效率不高,之后换成了使用map,这样代码多出了好几行,但是效率大大提高了。

发表评论

表情:
评论列表 (有 0 条评论,201人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LeetCode1Two Sum

    本类型博客中的各算法的时间复杂度分析均为博主自己推算,本类型博客也是博主自己刷LeetCode的自己的一些总结,因此个中错误可能较多,非常欢迎各位大神在博客下方评论,请不吝赐教