力扣 1 兩數之和

2021-10-24 09:53:49 字數 814 閱讀 9148

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

示例:給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

---------------------解法------------------------------

解法一:單迴圈map解法,時間複雜度 o(n)

其實就是利用一重迴圈,定義乙個map,key為當前num[i],value 是 i,迴圈語句首先判斷當前map取值,通過

key取值,如果target - 當前num[i] 能取到value,就返回索引。如果為null,就將當前num[i]做key,i為value存進map中去

public static int twosum(int nums, int target)  else 

}return null;

}

解法二:暴力迴圈解法 時間複雜度o(n^2)

因為同乙個元素只使用一遍,所以j迴圈是i+1。

加油!

力扣1 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9...

力扣 1 兩數之和

方法一 暴力遍歷 時間複雜度o n 2 執行超時 for i in range len nums for j in range i 1,len nums res nums i nums j if res target return i,j 方法二 時間複雜度o n for i in range le...

力扣 1 兩數之和

在該題中 很容易想到用暴力法來解決 直接進行n 2次尋找 此時 時間複雜度很高 而要降低時間複雜度 即減少查詢次數 可以用hashmap 儲存num i i 降低了尋找可能存在的對應數字的次數 mapmap new hashmap for int i 0 i nums.length i for in...