力扣 第 169 场双周赛(A~D)

news/2025/11/14 13:18:40/文章来源:https://www.cnblogs.com/greenofyu/p/19219715
力扣 第 169 场双周赛(A~D)

A:3736. 最小操作次数使数组元素相等 III
签到题。

1 class Solution:
2     def minMoves(self, nums: List[int]) -> int:
3         return max(nums)*len(nums)-sum(nums)

B:3737. 统计主要元素子数组数目 I

数据范围小,枚举左端点和右端点就能过,注意这里有一个技巧,我之前这种都是写三重循环的。

但是其实可以枚举左端点之后,从左端点扫到尾,然后右端点从右往左枚举,同时维护一下外层循环的数据。

 1 class Solution:
 2     def countMajoritySubarrays(self, nums: List[int], target: int) -> int:
 3         n=len(nums)
 4         res=0
 5         for i in range(n):
 6             cnt=Counter(nums[:i+1])
 7             for j in range(i+1):
 8                 if cnt[target]>(i-j+1)//2:
 9                     res+=1
10                 cnt[nums[j]]-=1
11         return res

C:3738. 替换至多一个元素后最长非递减子数组

可以修改一个元素,要求nums数组最长不下降子数组最长为多少。

如果对于i,有nums[i-1]<=nums[i+1],那么这个点最长的不下降子数组长度为1+左边+右边。

那么我们可以预处理好left和right数组,left[i]表示以nums[i]结尾的不下降子数组的最大长度,right同理。

此外,我们还需要考虑一下特殊情况,首先是不改,那么就是max(left),这和max(right)是一样的。

其次,改首元素和尾元素ans=max(ans,1+right[1],1+left[n-2])。

之后枚举改元素nums[i]的情况。

 1 class Solution:
 2     def longestSubarray(self, nums: List[int]) -> int:
 3         n=len(nums)
 4         left=[0]*n
 5         right=[0]*n
 6         left[0]=1
 7         for i in range(1,n):
 8             if nums[i]>=nums[i-1]:
 9                 left[i]=left[i-1]+1
10             else:
11                 left[i]=1
12         right[n-1]=1
13         for i in range(n-2,-1,-1):
14             if nums[i]<=nums[i+1]:
15                 right[i]=right[i+1]+1
16             else:
17                 right[i]=1
18         ans=max(left)
19         if n>1:
20             ans=max(ans,1+right[1],1+left[n-2])
21         for i in range(1,n-1):
22             l_part=left[i-1]+1
23             r_part=right[i+1]+1
24             ans=max(ans,l_part,r_part)
25             if nums[i+1]>=nums[i-1]:
26                 ans=max(ans,left[i-1]+right[i+1]+1)
27         return ans

D:3739. 统计主要元素子数组数目 II
接B,数据范围到1e5,不能用双重循环做。

假设将nums[i]==target置为1,nums[i]!=target置为-1,那么要求的就是对于pre[i],前面有多少个小于pre[i]的,注意pre[0]=1

可以用树状数组维护前面的每个pre的值有多少个,注意原数据的范围为[-n,n],总共2*n+1个数据,树状数组必须保证数据大于1,所以映射到[1,2n+1]范围。

 1 const int N = 2e5+10;
 2 int tr[N];
 3 int n;
 4 int lowbit(int x){
 5     return x&-x;
 6 }
 7 void add(int x,int c){
 8     for(int i=x;i<=2*n;i+=lowbit(i))
 9         tr[i]+=c;
10 }
11 int query(int x){
12     int ans=0;
13     for(int i=x;i;i-=lowbit(i)){
14         ans+=tr[i];
15     }
16     return ans;
17 }
18 class Solution {
19 public:
20     long long countMajoritySubarrays(vector<int>& nums, int target) {
21         n=nums.size();
22         for(int i=0;i<=n*2;i++)
23             tr[i]=0;
24         vector<int> pre(n+1,0);
25         for(int i=1;i<=n;i++){
26             pre[i]=pre[i-1]+(nums[i-1]==target?1:-1);
27         }
28         long long ans=0;
29         add(n+1,1);
30         for(int i=1;i<=n;i++){
31             if(pre[i]+n>0)
32                 ans+=query(pre[i]+n);
33             add(pre[i]+n+1,1);
34         }
35         return ans;
36     }
37 };

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试基础理论

软件测试的定义、目的、原则 一、软件测试的定义 软件测试是一个系统性的过程,旨在通过自动或手动的手段来评估软件系统的特性,目的是为了验证它是否满足规定的需求,并发现实际结果与预期结果之间的差异。 简单来说…

用 CloudFront + Lambda@Edge 实现“可回滚、可观测”的灰度发布

用 CloudFront + Lambda@Edge 实现“可回滚、可观测”的灰度发布关键词:灰度发布 / canary / CloudFront / Lambda@Edge / 一致性分桶 / 粘性 Cookie / 结构化日志 / CloudWatch → 阿里云 SLS1. 背景与目标 多前端版…

2025年北京搬家公司联系电话推荐:吉时达搬家准时守约口碑佳

在北京这座节奏飞快的城市,搬家既是新生活的起点,也常常让人头疼:楼层高、电梯窄、停车难、物品多、时间紧,稍不留神就可能遭遇临时加价、磕碰损坏、迟到爽约等糟心事。为了让每一次搬迁都变成轻松旅程,我们根据2…

如何查看Windows快捷键被占用

经常在设置软件快捷健的时候发现被占用,但又不知道被谁占用了解决方案 使用 OpenArk 下载地址:https://pan.baidu.com/s/1DFzSb5XMSAk2BHLK4wvY7A?pwd=6261 Github地址:https://github.com/BlackINT3/OpenArk/rele…

2025年企业人工智能解决方案最新top5推荐:智能体平台全场景覆盖,助力企业数字化转型

随着人工智能技术在企业服务领域的深度渗透,企业数字化转型已从“选择题”变为“生存题”。本榜单基于技术实力、行业适配性、服务效能、本地化服务能力四大核心维度,结合广东省人工智能产业协会2025年度报告及100+企…

领嵌iLeadE-588边缘计算网关设备支持4路摄像头4路网口连接云平台

多通道视频接入与AI分析支持4路摄像头同时接入,实时视频流处理。 内置高性能AI算力,支持人脸识别、行为分析、车牌识别等算法,自动匹配场景需求,无需手动编程。 智能算法一键部署,自动优化计算资源分配。工业级网…

2025 年 11 月液压扳手厂家推荐排行榜,拉伸器,中空扳手,液压扭矩扳手,液压螺栓拉伸器公司推荐

2025 年 11 月液压扳手厂家推荐排行榜,拉伸器,中空扳手,液压扭矩扳手,液压螺栓拉伸器公司推荐 液压工具作为现代工业装备的重要组成部分,在冶金、矿山、电力、桥梁、造船、机械安装等行业中发挥着关键作用。随着工…

Ubuntu 20.04.1 LTS 安装 Emqx-5.8.8

Ubuntu 20.04.1 LTS 安装 Emqx-5.8.82025-11-14 12:59 猎手家园 阅读(0) 评论(0) 收藏 举报EMQX4.x和5.x版本安装和使用方式不同,下面写一个5.x的安装方式 一、下载安装包 下载地址:https://www.emqx.com/zh/dow…

2025年北京搬家公司联系电话推荐:利康鸿运领衔精选榜

在北京这座节奏飞快的城市,搬家既是新生活的起点,也常被视为“最累的一天”。2025年,随着租房换房、公司搬迁、跨城通勤需求同步上升,越来越多市民希望用一通电话就把“打包、搬运、复原”全部搞定。为了帮您在鱼龙…

【完结10章】n8n+AI工作流:从入门到企业级AI应用实战

【完结10章】n8n+AI工作流:从入门到企业级AI应用实战 学习地址:……/s/1D9a_zIgZc530lgt1GxuaMw 提取码:x72h 在数字时代的浪潮中,我们正站在工作方式革命的前夜。当传统的自动化工具遇到爆发式增长的人工智能,一…

2025企业数字人展厅企业TOP5推荐:从技术落地到场景价值的实力标杆

随着AI交互技术与企业数字化转型的深度融合,企业数字人展厅已从概念演示进化为驱动获客转化的核心载体。本榜单基于技术适配度、场景落地能力、服务覆盖广度三大维度,结合行业案例反馈与技术白皮书数据,深度解析202…

鸿蒙应用开发之ArkUI框架

ArkUI框架 1.ArkUI 概述 ArkUI(即方舟UI框架),其本质就是开发用户界面的框架,ArkUI包含了丰富的UI组件,如下图所示:文本,图片,进度条,按钮等,这些你能看到的所有界面内容,通通称之为UI组件。 实际上ArkUI就…

如何敏捷建立能落地有效果的软件质量体系

如何敏捷建立能落地有效果的软件质量体系pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "M…

实用指南:Webpack 打包优化与骨架屏结合:双管齐下提升前端性能与用户体验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

数字通信 锁相环

数字通信 锁相环 1. 锁相环基本工作原理_哔哩哔哩_bilibili截图来自 《 数字通信同步技术的MATLAB与FPGA实现 》 杜勇

2025年GEO搜索优化服务商最新专业评测top5:源码搭建重构AI流量入口新生态

随着生成式引擎优化(GEO)成为企业抢占AI搜索流量的核心战略,市场对技术型服务商的需求持续井喷。本榜单基于技术壁垒、行业适配、服务口碑三大维度,结合DeepSeek、豆包等主流AI平台数据反馈,深度解析2025年五大GE…

Atcoder-ABC-431-E

ABC-431-E### TOYOTA SYSTEMS Programming Contest 2025(AtCoder Beginner Contest 431)DFS E - 网格反射问题陈述有一个带有行和列的网格。我们将顶部的第 - 行和左侧的第 - 列的单元格称为 单元格 。每个单元格上最…

空间线性的线段树分治

省流:下面有代码框架。先看一个朴素做法。 仍然是线段树,每个节点开一个 vector。 对于每个区间修改,我们维护 \(l, r\) 和需要进行的修改,全都扔到根节点的 vector 里面。 然后 dfs 整棵树,到达节点 \(i\) 时,将…

2025年石棉橡胶板厂家联系方式推荐:品质服务双保障

在工业密封材料领域,石棉橡胶板因其耐高温、耐油、耐酸碱及优异的压缩回弹性能,仍是电力、石化、冶金、造船等行业管道法兰、压力容器密封的首选。2025年,随着设备检修周期缩短、项目集中开工,用户对“靠谱厂家+快…

2025年石棉橡胶板厂家联系方式推荐:质量认证齐全厂商盘点

在工业密封材料采购中,石棉橡胶板因耐高温、耐油、耐酸碱等特性,仍是电力、石化、冶金、造船等行业的刚需。2025年,随着设备升级周期缩短,企业对板材的交货速度、环保指标、售后响应提出更高要求。如何快速锁定货源…