package anmo func Search(nums []int32, target int32) int { size := len(nums) index := size / 2 for index >= 0 && index < size { num := nums[index] if num > target { index-- } if num < target { index++ } if num == target { return index } } return -1 } func Find(nums1 []int32, nums2 []int32) []int32 { data := make(map[int32]int32) for _, num := range nums1 { data[num] = num } var ret []int32 for _, num := range nums2 { s, ok := data[num] if ok { ret = append(ret, s) } } return ret } func FindSum(nums []int32, target int32) []int32 { data := make(map[int32]int32) for i, num := range nums { data[num] = int32(i) } tr := make(map[int32]int32) for i := int32(1); i <= target/2; i++ { tr[i] = target - i } var ret []int32 for head, tail := range tr { index1, ok := data[head] if !ok { continue } index2, ok := data[tail] if !ok { continue } ret = append(ret, index1, index2) } return ret }