zoukankan      html  css  js  c++  java
  • 【leetcode刷题笔记】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


    利用一个hashmap,把数组中的元素和它们的索引+1作为键-值对,然后对于每个元素numbers[i]寻找target-numbers[i],如果找到了就把i+1和map.get(target-numbers[i])返回。

    代码如下:

     1 public class Solution {
     2     public int[] twoSum(int[] numbers, int target) {
     3         int[] answer = new int[2];
     4         if(numbers == null || numbers.length == 0)
     5             return answer;
     6         HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
     7         for(int i = 0;i < numbers.length;i++)
     8             map.put(numbers[i], i+1);
     9         
    10         for(int i = 0;i < numbers.length;i++){
    11             if(map.containsKey(target-numbers[i])){
    12                 if(i+1 == map.get(target-numbers[i]))
    13                         continue;
    14                 answer[0] = i+1;
    15                 answer[1] = map.get(target-numbers[i]);
    16                 break;
    17             }
    18         }
    19         
    20         return answer;
    21     }
    22 }
  • 相关阅读:
    J2ME 游戏开发之GameCanvas的使用
    J2ME游戏开发之字符串的绘制
    JS数组操作
    什么是LBS?地理位置服务
    js中的this怎么理解
    相机参数
    boost 移植到ARM EP9315
    armlinuxgcc 安装和配置
    小算法 : 水仙花数
    C语言标准库 文件操作
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3859061.html
Copyright © 2011-2022 走看看