https://leetcode.com/problems/fair-distribution-of-cookies/
回溯的题目,好久没有被卡住过,稳扎稳打啊,不要浮躁,这里就记一下一个没有优化的答案,提醒自己,一些题目本身自己应该会的。
个人解答
func distributeCookies(a []int, k int) int {curr := make([]int, k) // 每个人当前的分配情况res := 1000000var backtrack func(i int)backtrack = func(i int) {if i == len(a) {max := 0for _, x := range(curr) {if x > max {max = x}}if max < res {res = max}return}for j := 0; j < len(curr); j++ {curr[j] += a[i]backtrack(i + 1)curr[j] -= a[i]}}backtrack(0)return res}
题目分析
没什么好说的,就是一个标准回溯题的模板,复杂度就是O(m^k),也不想什么花里胡哨的优化了,先把最基本的写出来再说吧。
第一次用Go记录自己做的题目,不想Python这样的,Go语言没有很多现成的函数,或许是时候回归根本,编程的能力体现在解决问题的能力上,而不在一些现有工具的使用上。
