0%

背包问题(Knapsack problem)是一种组合优化NP完全问题。问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。问题的名称来源于如何选择最合适的物品放置于给定背包中。

Read more »

二分查找

Go的sort包提供了一个二分查找的方法:sort.Search

1
func Search(n int, f func(int) bool) int

最初第一次看到这个函数的参数和返回值,有点疑惑,在我的印象中,二分查找是在一个有序数组中查找某一个特定的元素,返回其在数组中的位置。但接受一个整型的n和一个返回布尔值的闭包函数是为哪般?

看了文档,用了几次之后,越来越发觉这个函数设计的很妙。

Read more »