algorithm002 / algorithm

44 stars 91 forks source link

【037-week4】算法训练营第四周学习总结 #221

Open jackystayfoolish opened 5 years ago

jackystayfoolish commented 5 years ago

学习笔记

分配饼干的学习笔记

给一个孩子的饼干应当尽量小又能满足该孩子,这样大饼干就能拿来给满足度比较大的孩子。因为最小的孩子最容易得到满足,所以先满足最小的孩子。

证明:假设在某次选择中,贪心策略选择给当前满足度最小的孩子分配第 m 个饼干,第 m 个饼干为可以满足该孩子的最小饼干。假设存在一种最优策略,给该孩子分配第 n 个饼干,并且 m < n。我们可以发现,经过这一轮分配,贪心策略分配后剩下的饼干一定有一个比最优策略来得大。因此在后续的分配中,贪心策略一定能满足更多的孩子。也就是说不存在比贪心策略更优的策略,即贪心策略就是最优策略。

N-Queens问题笔记

一行一行地摆放,在确定一行中的那个皇后应该摆在哪一列时,需要用三个标记数组来确定某一列是否合法,这三个标记数组分别为:列标记数组、45 度对角线标记数组和 135 度对角线标记数组。

45 度对角线标记数组的长度为 2 n - 1,(r, c) 的位置所在的数组下标为 r + c。 135 度对角线标记数组的长度也是 2 n - 1,(r, c) 的位置所在的数组下标为 n - 1 - (r - c)。