算法题经验
dragonzlcsu
这个作者很懒,什么都没留下…
展开
-
leetcode 53 最大子序和
用pre来保存数字num前的那一段(并不是整个数组的)最大子数组和,如果把num加入子数组能使和更大,就把num加进去,如果不会更大,就用num开启一个新的子数组,用另一个参数res来保存整个数组的最大的子数组和class Solution(object): def maxSubArray(self, nums): res = nums[0] pre = 0 for num in nums: pre = max(...原创 2020-09-24 19:57:54 · 113 阅读 · 0 评论 -
leetcode 458 可怜的小猪
解题思路:有点类似于多维空间确定一个点的位置import mathclass Solution(object): def poorPigs(self, buckets, minutesToDie, minutesToTest): times = minutesToTest // minutesToDie base = times + 1 ans = int(math.ceil(math.log(buckets, base)))...转载 2020-09-22 09:18:31 · 144 阅读 · 0 评论 -
leetcode 39 组合总数(回溯+剪枝)
def combinationSum(self, candidates, target): res = [] n = len(candidates) candidates.sort() def back(ans, start, tmp): # 将”出口“放在递归函数的最开始 if ans == target: res.append(tmp) return True elif...原创 2020-09-20 13:47:28 · 104 阅读 · 0 评论 -
POJ 2234 博弈论 nim游戏
博弈论 nim游戏Nim取子游戏是由两个人面对若干堆硬币(或石子)进行的游戏。设有k>=1堆硬币,各堆分别含有枚硬币。游戏的目的就是选择最后剩下的硬币。游戏法则如下:1.两个游戏人交替进行游戏(游戏人I和游戏人II);2.当轮到每个游戏人取子时,选择这些堆中的一堆,并从所选的堆中取走至少一枚硬币(游戏人可以取走他所选堆中的全部硬币);3.当所有的堆都变成空堆时,最后取子的游戏人即为胜者。定义P-position和N-position,其中P代表Previous,N代表Next.原创 2020-08-08 21:10:59 · 267 阅读 · 0 评论