leetcode演算法1.兩數之和

👏👏👏

哈嘍!大家好,我是【學無止境小奇】,一位熱愛分享各種技術的部落客!😍😍😍

⭐【學無止境小奇】的創作宗旨:每一條命令都親自執行過,每一行程式碼都實際運行過,每一種方法都真實實踐過,每一篇文章都良心製作過。✊✊✊

⭐【學無止境小奇】的部落格中所有涉及命令、程式碼的地方,除了提供圖片供大家參考,另外會在圖片下方提供一份純文本格式的命令或者程式碼方便大家粘貼複製直接執行命令或者運行程式碼。🤝🤝🤝

⭐如果你對技術有著濃厚的興趣,歡迎關注【學無止境小奇】,歡迎大家和我一起交流。😘😘😘

❤️❤️❤️感謝各位朋友接下來的閱讀❤️❤️❤️

@

一、leetcode演算法

1、兩數之和

1.1、題目

給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那 兩個 整數,並返回它們的數組下標。
你可以假設每種輸入只會對應一個答案。但是,數組中同一個元素在答案里不能重複出現。
你可以按任意順序返回答案。

1.2、思路

這裡最簡單的是可以用雙層for循環來解決問題,但是雙層for循環的時間複雜度為n^2,所以這樣解決時間複雜度太高,這時我們可以將數據放入一個map中來解決複雜度高的問題。.

1.3、答案

在這裡插入圖片描述

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> hashmap = new HashMap<Integer,Integer>();
        for(int i = 0; i < nums.length; i++){
            if(hashmap.containsKey(nums[i])){
                return new int[]{hashmap.get(nums[i]), i}; 
            }
            hashmap.put(target - nums[i], i);
        }
        return null;
    }
}