zoukankan      html  css  js  c++  java
  • 1-Two Sum

    题目:

    Given an array of integers, find two numbers such that they add up to a specific target number.

    The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.

    You may assume that each input would have exactly one solution.

    Input: numbers={2, 7, 11, 15}, target=9
    Output: index1=1, index2=2

      给一个整型数组,找出两个数使得他们加起来的和等于特定的目标数。

      函数twoSum要返回加起来等于目标数的两个数的索引,其中index1必须小于index2。请注意你返回的结果(index1和index2)不是以0开始的。

      你可以假定任一个输入会有一个确定的结果

      输入:numbers={2,7,11,15} , target=9

      输出:index1=1 , index2=2

    思路:

    1.将数组存入hash中,以数组元素值为hash键,以数组元素索引为hash值

    2.相同的数组元素,存储索引值大的元素

    public class Solution {
        public int[] twoSum(int[] numbers,int target) {
            int[] result=new int[2];   //最终结果
            //存储数组的的HashMap
            HashMap<Integer,Integer> m=new HashMap<Integer,Integer>();           
            for(int i=0;i<numbers.length;i++) {
                m.put(numbers[i],i);    
            }
            for(int i=0;i<numbers.length;i++) {
                int temp=target-numbers[i];
                if(m.containsKey(temp)&&i<m.get(temp)) {
                    result[0]=i+1;
                    result[1]=m.get(temp)+1;
                }
            }
            return result;
        }
    }    
        
    

      

  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/hwu2014/p/4401870.html
Copyright © 2011-2022 走看看