數組編程重要知識(給定一個整數數組)
2023-07-31 02:41:13
2021-09-10:給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那兩個整數,並返回它們的數組下標。你可以假設每種輸入只會對應一個答案,但是數組中同一個元素在答案裡不能重複出現,你可以按任意順序返回答案。
福大大 答案2021-09-10:
使用map。
時間複雜度:O(N)。
空間複雜度:O(N)。
代碼用golang編寫。代碼如下:
package mainimport "fmt"func main { nums := []int{1, 3, 5} target := 6 ret := twoSum(nums, target) fmt.Println(ret)}func twoSum(nums []int, target int) []int { // key 某個之前的數 value 這個數出現的位置 map0 := make(map[int]int) for i := 0; i < len(nums); i { if _, ok := map0[target-nums[i]]; ok { return []int{map0[target-nums[i]], i} } map0[nums[i]] = i } return []int{-1, -1}}
執行結果如下:
***
[左神java代碼](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class27/Problem_0001_TwoSum.java)
,