zoukankan      html  css  js  c++  java
  • leetcode.1. 两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9
    
    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]
    

     相关标签:数组 哈希表

    解题思路

    • 用 hashMap 存一下遍历过的元素和对应的索引。
    • 每访问一个元素,查看一下 hashMap 中是否存在满足要求的目标数字。
    const twoSum = (nums, target) => {
      // 存放出现过的数字,和对应的索引
      const prevNums = {};                         
      // 遍历元素
      for (let i = 0; i < nums.length; i++) {      
        // 当前元素
        const curNum = nums[i];                    
        // 满足题目要求的目标元素
        const targetNum = target - curNum;         
        // 在prevNums中找目标元素的索引
        const targetNumIndex = prevNums[targetNum];
        // 如果存在,直接返回 [目标元素的索引, 当前索引]
        if (targetNumIndex !== undefined) {        
          return [targetNumIndex, i];             
        }                                     
        // 如果不存在,说明之前没出现过目标元素
        // 每次都存入当前元素和对应的索引
        prevNums[curNum] = i;                      
      }
    }
    
    作者:xiao_ben_zhu
    链接:https://leetcode-cn.com/problems/two-sum/solution/qing-xi-de-bian-liang-ming-ming-bang-zhu-ji-yi-bu-/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

     

  • 相关阅读:
    DRBD试用手记
    hibernate get load difference
    4招将PPT文本转换成Doc文本
    about lucene merepolicy
    关于Lucene索引合并解决方法
    网站优化工具帮助
    A/B Experiments with Google Website Optimizer
    about lucene grouping and facet history
    Spring IDE 1.2.4发布
    HTML meta refresh 刷新与跳转(重定向)页面
  • 原文地址:https://www.cnblogs.com/yingyigongzi/p/13606646.html
Copyright © 2011-2022 走看看