/
Week 4 @ 2025 算法周记【差分数组 + 双指针数组 + 复习】
  • In progress
  • Week 4 @ 2025 算法周记【差分数组 + 双指针数组 + 复习】

    差分数组

    LC 370. Range Addition 范围加法 [Premium]

    https://leetcode.com/problems/range-addition/ https://www.lintcode.com/problem/903/

    /** * @param length: the length of the array * @param updates: update operations * @return: the modified array after all k operations were executed */ func GetModifiedArray(length int, updates [][]int) []int { diff := make([]int, length) for _, update := range updates { startIndex, endIndex, inc := update[0], update[1], update[2] diff[startIndex] += inc if endIndex+1 < length { diff[endIndex+1] -= inc } } result := make([]int, length) result[0] = diff[0] for i := 1; i < length; i++ { result[i] = result[i-1] + diff[i] } return result }

    LC 1109. Corporate Flight Bookings 航班预订统计

    https://leetcode.com/problems/corporate-flight-bookings/description/

    func corpFlightBookings(bookings [][]int, n int) []int { diff := make([]int, n) for _, booking := range bookings { first, last, seats := booking[0], booking[1], booking[2] // NOTE: first & last is 1-based diff[first-1] += seats if last < n { diff[last] -= seats } } result := make([]int, n) result[0] = diff[0] for i := 1; i < n; i++ { result[i] = result[i-1] + diff[i] } return result }

    LC 1094. Car Pooling 拼车

    https://leetcode.com/problems/car-pooling/description/

    func carPooling(trips [][]int, capacity int) bool { diffCar := make([]int, 1005) for _, trip := range trips { numPassengers, from, to := trip[0], trip[1], trip[2] diffCar[from] += numPassengers diffCar[to] -= numPassengers current := 0 for _, d := range diffCar { current += d if current > capacity { return false } } } return true }

    双指针数组

    LC 867. Transpose Matrix 转置矩阵

    https://leetcode.com/problems/transpose-matrix/

    LC 14. Longest Common Prefix 最长公共前缀

    https://leetcode.com/problems/longest-common-prefix/description/

    复习

    LC 23. Merge k Sorted Lists 合并 K 个有序链表

    https://leetcode.com/problems/merge-k-sorted-lists/

    LC 378. Kth Smallest Element in a Sorted Matrix 有序矩阵中第 K 小的元素

    https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/description/

    合并 k 个有序列表 / 堆(只利用了单向递增)

    二分