算法題一(給定一個整數數組和一個目標值,請你在該數組中找出和為目標值的那兩個整數的索引)


之前朋友面試遇到的一道題,說是給定一個整數數組和一個目標值,請你在該數組中找出和為目標值的那兩個整數的索引,而且只能用一次循環。當時我就想在遍歷的時候保存它的差值,然后和后面的數字作比較。但是內會兒只是有思路,沒寫出來,今天抽時間用代碼實現了,話不多說,直接上代碼。

    public static int[] twoSum(int[] arrays, int target) {
        Map<Integer, Integer> map = new HashMap<>();//創建一個map
        for (int i = 0; i < arrays.length; i++) {
            int cha = target-arrays[i];
            if (map.containsKey(cha)){//拿插值和map中的鍵比較,會返回boolean值
                return new int [] {map.get(cha),i};//如果條件滿足,意味着找到數字了,通過get(key)方法獲得value。也就是該數字的下標
            }
            map.put(arrays[i],i);//保存到map中,數字作為鍵,下標作為值
        }

        throw new IllegalArgumentException("沒有找到!!!");
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 刷題之給定一個整數數組 nums 和一個目標值 taget,請你在該數組中找出和為目標值的那 兩個 整數 php 獲取兩個給定一個整數數組 nums 和一個目標值 target,請你在該數組中找出和為目標值的那 兩個 整數,並返回他們的數組下標。 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target  的那 兩個 整數,並返回它們的數組下標。 給定一個整數數組和一個目標值,找出數組中和為目標值的兩個數 例如給定nums = [2,7,11,15],target = 9 算法-找出數組中兩個元素之和等於給定的目標值 2020-07-18:給定一個無序數組和一個目標值,找出數組中兩個數之和等於目標值的所有組合,並指出其時間復雜度。 給出一個數組和一個目標值,如果數組中任意兩個數字的加和等於目標值,輸出這兩個位置 給定一個排序數組和一個目標值,在數組中找到目標值,並返回其索引。如果目標值不存在於數組中,返回它將會被按順序插入的位置。 給定一個整數數組 nums 和一個目標值 k,請實現一個方法判斷 nums 中是否存在某個片段(即若干個相連元素)之和等於 k。要求時間復雜度為 O(n)。 最接近的三數之和(給定一個包括 n 個整數的數組 nums 和 一個目標值 target。找出 nums 中的三個整數, 使得它們的和與 target 最接近。返回這三個數的和)
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM