/
Week 2 @ 2025 算法周记【nSum + 双指针数组】

Week 2 @ 2025 算法周记【nSum + 双指针数组】

nSum

LC 1. Two Sum 两数之和

Two Sum - LeetCode

func twoSum(nums []int, target int) []int { contains := make(map[int]int, len(nums)) for i, num := range nums { contains[num] = i } for j, num := range nums { if i, exist := contains[target-num]; i != j && exist { return []int{i, j} } } return nil }

LC 167. Two Sum II - Input Array Is Sorted 两数之和 II- 输入有序数组

Two Sum II - Input Array Is Sorted - LeetCode

func twoSum(nums []int, target int) []int { sort.Ints(nums) i, j := 0, len(nums)-1 for i < j { sum := nums[i] + nums[j] if sum = target { return []int{nums[i], nums[j]} } else if sum < target { i++ } else { j-- } } return nil }

LC 15. 3Sum 三数之和

3Sum - LeetCode

待复习

func threeSum(nums []int) (results [][]int) { sort.Ints(nums) k := 0 for k < len(nums) { partResults := twoSum(nums[k+1:], -nums[k]) for _, r := range partResults { results = append(results, append([]int{nums[k]}, r...), ) } for v := nums[k]; k < len(nums) && nums[k] == v; k++ {} } return } func twoSum(nums []int, target int) (results [][]int) { i, j := 0, len(nums)-1 for i < j { sum := nums[i] + nums[j] if sum == target { results = append(results, []int{nums[i], nums[j]}) for v := nums[i]; i < len(nums) && nums[i] == v; i++ {} for v := nums[j]; j >= 0 && nums[j] == v; j-- {} } else if sum < target { for v := nums[i]; i < len(nums) && nums[i] == v; i++ {} } else { for v := nums[j]; j >= 0 && nums[j] == v; j-- {} } } return }

LC 18. 4Sum 四数之和

4Sum - LeetCode

待复习

直接利用 3Sum

nSum

双指针数组

LC 75. Sort Colors 颜色分类

Sort Colors - LeetCode

待复习

遍历两次

先把所有 2 移动到最后、再把所有 0 移动到最后

遍历一次

Related content

Week 44 @ 2024 算法周记【二分查找】
Week 44 @ 2024 算法周记【二分查找】
More like this
Week 47 @ 2024 算法周记【回溯 - 排列/组合/子集】
Week 47 @ 2024 算法周记【回溯 - 排列/组合/子集】
More like this
Week 42 @ 2024 算法周记【双指针数组】
Week 42 @ 2024 算法周记【双指针数组】
More like this
Week 51 @ 2024 算法周记【双指针链表+丑数】
Week 51 @ 2024 算法周记【双指针链表+丑数】
More like this
Week 43 @ 2024 算法周记【滑动窗口】
Week 43 @ 2024 算法周记【滑动窗口】
More like this
Week 45 @ 2024 算法周记【动态规划+回溯】
Week 45 @ 2024 算法周记【动态规划+回溯】
More like this