贪心

模板代码

// 贪心算法函数
func greedyAlgorithm(items []int, condition func(int) bool, selectItem func([]int) int) int {
    // 初始化
    result := 0

    // 排序
    sort.Slice(items, func(i, j int) bool {
        // 根据具体问题定义排序规则
        return items[i] < items[j]
    })

    // 贪心选择
    for _, item := range items {
        if condition(item) {
            // 做出选择
            result += selectItem(item)
            // 更新状态
            // 在一些问题中,你可能需要更新数据或状态
        }
    }

    return result
}

经典题目

  • 分发饼干/糖果(135,455)
  • 根据身高重建队列(406)
  • 买卖股票最佳时机(122,714)
  • 跳跃游戏(45,55)
  • 最大子序和(53)
  • 区间问题(56,763)