Leet Code OJ 1. Two Sum [Difficulty: Easy]

題目:
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.

Example:
Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

翻譯:
給定一個整形數(shù)組和一個整數(shù)target,返回2個元素的下標,它們滿足相加的和為target。
你可以假定:每次輸入都會恰好有一個滿足條件的返回結(jié)果。

(參考別人的解法)
方法一:

    public static int[] twoSum(int[] nums, int target) {

        if(nums == null || nums.length == 0) return null;
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        for(int i = 0; i < nums.length; i++) {
            hashMap.put(nums[i], i);
        }
        int[] result = null;
        for(int j = 0; j < nums.length; j++) {
            int firstNum = nums[j];
            int secondNum = target - firstNum;
            if(hashMap.containsKey(secondNum) && hashMap.get(secondNum) != j) {
                result = new int[2];
                result[0] = j;
                result[1] = hashMap.get(secondNum);
                break;
            }
        }
        return result;      
    }

方法二:

    public static int[] twoSum2(int[] nums, int target) {

        if(nums == null || nums.length == 0) return null;
        int[] result = null;
        for(int i = 0; i < nums.length; i++) {
            for(int j = i+1; j<nums.length; j++) {
                if(nums[i] + nums[j] == target) {
                    result = new int[2];
                    result[0] = i;
                    result[1] = j;
                    break;
                }
            }
        }
        return result;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容