zoukankan      html  css  js  c++  java
  • 1. two Sum

    1. Two Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:

    Given nums = [2, 7, 11, 15], target = 9,
    
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1].
    
     1 /**
     2  * @param {number[]} nums
     3  * @param {number} target
     4  * @return {number[]}
     5  */
     6 var twoSum = function(nums, target) {
     7      var hash = {},len = nums.length;
     8     
     9     //其实这里是有重复的值可能性的,比如[3,3],那第二个会覆盖第一个
    10     for(var i = 0;i < len;i++){
    11         
    12         hash[nums[i]] = i;
    13     }
    14     
    15     
    16     //由于题目说过有且只有一组解,所以上面覆盖也没关系,因为我们只找后面一个可行解。
    17     for(var j = 0;j < len;j++){
    18         if(hash[target - nums[j]]){
    19             return [j,hash[target - nums[j]]];
    20         }
    21     }
    22 };
     1 /**
     2  * @param {number[]} nums
     3  * @param {number} target
     4  * @return {number[]}
     5  */
     6 var twoSum = function(nums, target) {
     7   
     8     //双指针,思路就是先排序,两边向中间靠拢
     9     var old = nums.slice(),
    10         len = old.length,
    11         i = 0,
    12         j = len -1;
    13     nums.sort();
    14     while(i<len&&j > -1){
    15         
    16         var temp = nums[i] + nums[j];
    17         if(temp === target){
    18             var fir = old.indexOf(nums[i]);
    19             //这里要防止重复[3,3]求6
    20             
    21             var sec = old.lastIndexOf(nums[j])
    22             return [fir,sec];
    23         }
    24         
    25         if(temp < target){
    26             i++;
    27         }else{
    28             j--;
    29         }
    30     }
    31     
    32 };
     
  • 相关阅读:
    ie6动态创建iframe无法显示内容的bug
    时间字符串解析
    自定义时间格式转换代码
    MySql存储过程异常处理示例
    解析数字签名的Substring结构
    自动输出类的字段及值
    深复制与浅复制的实现
    ie版本过低提示升级ie的示例
    Web安全攻防TCP/IP安全篇
    不同网段相互通信实验
  • 原文地址:https://www.cnblogs.com/huenchao/p/7629949.html
Copyright © 2011-2022 走看看