LintCode - 兩數之和(普通)

版權聲明:本文為博主原創文章,未經博主允許不得轉載。

難度:容易
要求:

給一個整數數組,找到兩個數使得他們的和等于一個給定的數 target。

你需要實現的函數twoSum需要返回這兩個數的下標, 并且第一個下標小于第二個下標。注意這里下標的范圍是 1 到 n,不是以 0 開頭。

注意事項
你可以假設只有一組答案。

樣例

給出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].

思路

public class Solution {
    /*
     * @param numbers : An array of Integer
     * @param target : target = numbers[index1] + numbers[index2]
     * @return : [index1 + 1, index2 + 1] (index1 < index2)
     */
    public int[] twoSum(int[] numbers, int target) {
        // write your code here
        Map<Integer,Integer> map = new HashMap<Integer,Integer>();
        
        for(int i = 0; i < numbers.length; i++){
            Integer result = map.get(numbers[i]);
            if(result != null){
                return new int[]{++result,++i};
            }
            map.put(target - numbers[i],i);
        }
        return new int[0];
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 給一個整數數組,找到兩個數使得他們的和等于一個給定的數 target。你需要實現的函數twoSum需要返回這兩個數...
    DayDayUpppppp閱讀 225評論 0 1
  • 題目 描述 給一個整數數組,找到兩個數使得他們的和等于一個給定的數 target。 你需要實現的函數twoSum需...
    悠揚前奏閱讀 498評論 0 0
  • 題目前的數字是對應的lintcode的題目序號 14.二分查找 給定一個排序的整數數組(升序)和一個要查找的整數t...
    mytac閱讀 698評論 1 2
  • 今天前輩跟自己分享了一個獲取用戶在線狀態的新方法,這是他在閱讀pomelo源碼時發現的。這也激起了自己閱讀源碼的好...
    抓不住的風閱讀 1,227評論 0 3
  • 昨天晚上按照慣例給媽媽打電話,一直沒人接起。跟哥哥的女兒視頻,我問你奶奶在家嗎?她說不知道呀(爸媽不跟哥嫂住一起)...
    izhuangzi閱讀 177評論 0 0