贪心
模板代码
// 贪心算法函数
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)