企业建站网站建站系统,logo设计软件app,12333社保查询网官网,wordpress密码忘记了怎么办记录了初步解题思路 以及本地实现代码#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/23 2678. 老人的数目10/24 1155. 掷骰子等于目标和的方法数10/25 2698. 求一个整数的惩罚数10/26 2520. 统计能整除数字的位数10/27 1465. 切割后面积最大的蛋糕10/28 2…记录了初步解题思路 以及本地实现代码并不一定为最优 也希望大家能一起探讨 一起进步 目录 10/23 2678. 老人的数目10/24 1155. 掷骰子等于目标和的方法数10/25 2698. 求一个整数的惩罚数10/26 2520. 统计能整除数字的位数10/27 1465. 切割后面积最大的蛋糕10/28 2558. 从数量最多的堆取走礼物10/29 10/23 2678. 老人的数目 取第12-13位数值 def countSeniors(details)::type details: List[str]:rtype: intans 0for d in details:age int(d[11:13])if age60:ans 1return ans 10/24 1155. 掷骰子等于目标和的方法数 递归 mem记录已有过的情况 def numRollsToTarget(n, k, target)::type n: int:type k: int:type target: int:rtype: intif ntarget or targetn*k:return 0MOD 10**97mem {(1,x):1 for x in range(1,k1)}def check(n,target):if target0:return 0if (n,target) in mem:return mem[(n,target)]ans 0if n0:ans target0else:for i in range(1,k1):ans check(n-1,target-i)mem[(n,target)] ansreturn ans%MODreturn check(n,target) 10/25 2698. 求一个整数的惩罚数 遍历每个数 判断是否满足条件 def punishmentNumber(n)::type n: int:rtype: intdef check(s,i,x):m len(s)if im:return x0y 0for j in range(i,m):y y*10int(s[j])if yx:breakif check(s,j1,x-y):return Truereturn Falseans 0for i in range(1,n1):if check(str(i*i),0,i):ansi*ireturn ans 10/26 2520. 统计能整除数字的位数 按每一位数字判断 def countDigits(num)::type num: int:rtype: intans 0n numwhile n:v n%10if v0 and num%v0:ans 1n//10return ans 10/27 1465. 切割后面积最大的蛋糕 将切口位置从小到大排序 计算两个切口间的距离 寻找最大距离 相乘 def maxArea(h, w, horizontalCuts, verticalCuts)::type h: int:type w: int:type horizontalCuts: List[int]:type verticalCuts: List[int]:rtype: inthorizontalCuts.sort()verticalCuts.sort()if len(horizontalCuts)0:maxh max(horizontalCuts[0],h-horizontalCuts[-1])else:maxh hif len(verticalCuts)0:maxv max(verticalCuts[0],w-verticalCuts[-1])else:maxv wfor i in range(1,len(horizontalCuts)):maxh max(maxh,horizontalCuts[i]-horizontalCuts[i-1])for i in range(1,len(verticalCuts)):maxv max(maxv,verticalCuts[i]-verticalCuts[i-1])return (maxv*maxh)%(10**97) 10/28 2558. 从数量最多的堆取走礼物 大顶堆 每次取最大的礼物 进行处理 def pickGifts(gifts, k)::type gifts: List[int]:type k: int:rtype: intimport heapq,mathans sum(gifts)l [-x for x in gifts]heapq.heapify(l)for i in range(k):print(l)v -heapq.heappop(l)num int(math.sqrt(v))ans - (v-num)heapq.heappush(l, -num)return ans 10/29