尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

力扣 第473场周赛(A~D)

力扣   第473场周赛(A~D)
📅 发布时间:2026/6/26 13:01:38
力扣 第473场周赛(A~D)

A:3726. 移除十进制表示中的所有零
简单题,转str后去掉所有0。

1 class Solution:
2     def removeZeros(self, n: int) -> int:
3         s=str(n)
4         res=""
5         for c in s:
6             if c!='0':
7                 res+=c
8         return int(res)

B:100855. 最大交替平方和

简单题,按照平方排序,前n//2个为负,后面的为正。

1 class Solution:
2     def maxAlternatingSum(self, nums: List[int]) -> int:
3         n=len(nums)
4         for i in range(n):
5             nums[i]*=nums[i]
6         nums.sort()
7         print(nums)
8         res=-sum(nums[0:n//2])+sum(nums[(n//2):])
9         return res

 

C:3728. 边界与内部和相等的稳定子数组

image

 第一个条件即为r-l+1>=3。

第二个条件即为c[l]==c[r]==s[l+1~r-1],落实到代码即为c[l]==c[r] && c[l]+pre[l+1]==pre[r].

那么我们枚举右边,同时维护左边(c[l], c[l]+pre[l+1])的出现次数,即可在O(n)的时间复杂度内完成统计。

 1 class Solution:
 2     def countStableSubarrays(self, c: List[int]) -> int:
 3         n=len(c)
 4         pre=[0]*(n+1)
 5         for i in range(1,n+1):
 6             pre[i]=pre[i-1]+c[i-1]
 7         d=defaultdict(int)
 8         ans=0
 9         # r-l+1>=3
10         # c[l]==c[r]
11         # c[l]+pre[l+1]==pre[r]
12         for r in range(2, n):
13             l = r - 2
14             d[(c[l], pre[l+1] + c[l])] += 1
15             ans += d[(c[r], pre[r])]
16         return ans

D:3729. 统计有序数组中可被 K 整除的子数组数量

如果可重复的话,就是一个前缀和+哈希就搞定了,我们先做这一步,然后来考虑去重。

因为原数组是非降序的,那么就只有段内可能会导致重复计数。因为跨段比如2 2 2 3这么一个子数组,只可能有一个。

所以问题就变成了问长为L的段x,x,x,x,x,...,x有多少重复计数。

段内长为1的子数组有L个,长为2的子数组有L-1个,长为3的子数组有L-2个=>长为t的子数组有L-t+1个,我们应该记一次,所以我们就多记了L-t次。

此外,我们还需要满足(t*x)%k==0,令g=gcd(x,k),x=x' * g,k=k' * g,x'和k'互质 => t*x'*g 是 k'*g的倍数(因为x'和k'互质),t是k’的倍数,令base=k/gcd(x,k)。

我们枚举t从base到q=L//base.每个加上L-t,可以用等差数列公式计算得q*L-base*(q+1)*q//2为多算的,减去即可。

 1 class Solution:
 2     def numGoodSubarrays(self, nums: List[int], k: int) -> int:
 3         #可重复
 4         total=0
 5         d=defaultdict(int)
 6         s=0
 7         d[s]+=1
 8         for x in nums:
 9             s=(s+x)%k
10             total+=d[s]
11             d[s]+=1
12 
13         #去重
14         cnt=Counter(nums)
15         minus=0
16         for [x,L] in cnt.items():
17             g=gcd(k,x)
18             base=k//g
19             q=L//base
20             minus+=q*L-base*(q+1)*q//2
21         return total-minus

 

相关新闻

  • Java学习与工作汇报总结
  • Alibaba Cloud Linux 4 镜像备份到自己的 OSS 中,并同时使用该镜像部署
  • Function Calling

最新新闻

  • 番茄小说下载器:三步构建你的个人数字图书馆
  • 如何高效使用Deceive实现游戏状态伪装:终极隐私保护指南
  • QMC音频解密终极指南:3步快速解锁加密音乐文件
  • LPC314x嵌入式系统时钟与看门狗配置实战:从原理到稳定运行
  • 终极指南:如何彻底修复Steam Achievement Manager成就显示异常问题
  • 【信息科学与工程学】计算机科学与自动化——应用上云的需求及对应方案 01

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号