工业和信息化部icp网站备案系统,网站头部模板,app制作开发公司收费,婚恋网站排名前三LeetCode 每日一题 2025/1/1-2025/1/7 记录了初步解题思路 以及本地实现代码#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录12/8 1925. 统计平方和三元组的数目12/9 3583. 统计特殊三元组12/10 3577. 统计计算机解锁顺序排列数12/11 3531. 统计被覆盖的建筑12…LeetCode 每日一题 2025/1/1-2025/1/7记录了初步解题思路 以及本地实现代码并不一定为最优 也希望大家能一起探讨 一起进步目录12/8 1925. 统计平方和三元组的数目12/9 3583. 统计特殊三元组12/10 3577. 统计计算机解锁顺序排列数12/11 3531. 统计被覆盖的建筑12/12 3433. 统计用户被提及情况12/1312/1412/8 1925. 统计平方和三元组的数目遍历如果a2b2c^2a一定不等于b假设abc (a,b,c) (b,a,c)都满足所以找到一组ans2defcountTriples(n): :type n: int :rtype: int importmath ans0forainrange(1,n):forbinrange(a1,n):cint(math.sqrt(a**2b**2))ifcnandc**2a**2b**2:ans2returnans12/9 3583. 统计特殊三元组从右到左枚举j左侧每个数出现的次数放入left 右侧每个数出现次数放入right当前nums[j] 两边nums[j]*2 的个数相乘defspecialTriplets(nums): :type nums: List[int] :rtype: int fromcollectionsimportdefaultdict MOD10**97leftdefaultdict(int)rightdefaultdict(int)nlen(nums)foriinrange(n-1):left[nums[i]]1right[nums[-1]]1ans0fornuminnums[-2:0:-1]:left[num]-1ans(ansleft[num*2]*right[num*2])%MOD right[num]1returnans12/10 3577. 统计计算机解锁顺序排列数如果能够全部解锁那么complexity[0]必定最小即如果存在complexity[i]complexity[0] 这个i无法解锁 答案为0否则答案为(n-1)!defcountPermutations(complexity): :type complexity: List[int] :rtype: int MOD10**97nlen(complexity)foriinrange(1,n):ifcomplexity[i]complexity[0]:return0ans1foriinrange(2,n):ans(ans*i)%MODreturnans12/11 3531. 统计被覆盖的建筑记录每一行每一列出现建筑的最小位置和最大位置遍历半段当前x,y是否都在最小位置和最大位置之间defcountCoveredBuildings(n,buildings): :type n: int :type buildings: List[List[int]] :rtype: int rowmin[n1]*(n1)colmin[n1]*(n1)rowmax[0]*(n1)colmax[0]*(n1)forx,yinbuildings:rowmin[y]min(rowmin[y],x)rowmax[y]max(rowmax[y],x)colmin[x]min(colmin[x],y)colmax[x]max(colmax[x],y)ans0forx,yinbuildings:ifrowmin[y]xrowmax[y]andcolmin[x]ycolmax[x]:ans1returnans12/12 3433. 统计用户被提及情况按时间顺序先排序遍历每一个eventnxtonline[i]记录用户i下一次上线的时间分情况处理defcountMentions(numberOfUsers,events): :type numberOfUsers: int :type events: List[List[str]] :rtype: List[int] events.sort(keylambdax:(int(x[1]),x[0]MESSAGE))cnt[0]*numberOfUsers nxtonline[0]*numberOfUsersforevtinevents:curint(evt[1])ifevt[0]MESSAGE:ifevt[2]ALL:foriinrange(numberOfUsers):cnt[i]1elifevt[2]HERE:fori,tinenumerate(nxtonline):iftcur:cnt[i]1else:foriinevt[2].split():cnt[int(i[2:])]1else:nxtonline[int(evt[2])]cur60returncnt12/1312/14