中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TwoSum之Java實現

發布時間:2020-06-29 10:32:44 來源:網絡 閱讀:205 作者:xiezh10 欄目:編程語言

一、題目

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, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

二、題目理解

給定一個整型數組以及一個目標值,求數組中兩個相加等于目標值的元素的索引。此題假設給定的數組中一定有兩個元素相加等于目標值。

三、實現代碼

1、第一種實現方式
使用暴力搜索的方式,用雙層for循環遍歷數組,拿數組的每一個元素與其他元素相加之后與目標值進行對比,找出符合要求的兩個元素。
實現代碼如下:

public int[] twoSum01(int[] nums, int target) {
    int[] result = new int[2];
    for (int i = 0; i < nums.length; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] == target) {
                result[0] = i;
                result[1] = j;
                break;
            }
        }
    }
    return result;
}

2、第二種實現方式
第一種實現方式在最壞的情況下的時間復雜度為O(n2),執行時間較長,不是一種比較好的實現方式,下面是第二種實現方法。
定義一個Map,遍歷數組,每次都用目標值減去數組當前值得到差值temp,并判斷temp是否存在于Map中,如不存在,則將數組當前值和索引存入Map中;如存在,則取出temp對應的索引值。
實現代碼如下:

public int[] twoSum02(int[] nums, int target) {
    HashMap<Integer, Integer> tempMap = new HashMap<Integer, Integer>();
    int[] resultArr = new int[2];
    for(int i = 0; i < nums.length; i++) {
        // 用target減去數組當前值
        int temp = target - nums[i];
        // 判斷HashMap中是否包含temp
        if(tempMap.get(temp) != null) {
            resultArr[0] = tempMap.get(temp);
            resultArr[1] = i;
            break;
        } else {
            tempMap.put(nums[i], i);        // 如不包含,就將當前值存入Map中
        }
    }
    return resultArr;
}
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大名县| 高平市| 崇仁县| 金乡县| 修武县| 喀什市| 虹口区| 乌鲁木齐县| 永顺县| 中宁县| 辽源市| 襄樊市| 南川市| 历史| 巴林左旗| 麟游县| 大埔区| 泾川县| 南华县| 沅陵县| 阳春市| 云和县| 珲春市| 延寿县| 南岸区| 安吉县| 甘泉县| 雷波县| 临漳县| 全州县| 福海县| 德兴市| 阆中市| 砀山县| 鲁甸县| 长治县| 锡林郭勒盟| 鹿邑县| 察哈| 滦南县| 五寨县|