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;
        }
    }    
        
    

      

  • 相关阅读:
    linux文件IO操作篇 (二) 缓冲文件
    信号量和互斥锁的区别
    linux 无锁化编程
    C语言中 time相关的函数 头文件
    printf 打印字体和背景带颜色的输出的方法
    在win10环境下安装Cygwin,可以GCC编译
    学习《大话存储》
    linux内核态和用户态的信号量
    学习Makefile
    git 环境搭建
  • 原文地址:https://www.cnblogs.com/hwu2014/p/4401870.html
Copyright © 2011-2022 走看看