LeetCode -- 第 392 场周赛

链接 : 

竞赛 - 力扣 (LeetCode)

3105. 最长的严格递增或递减子数组

. - 力扣(LeetCode)

用两个分组循环(本质就是双指针),分别求出最长的递增和递减子数组的长度,然后取max ;

class Solution {
public:int longestMonotonicSubarray(vector<int>& nums) {int ans = 1 ;int n = nums.size() ;for(int i=0;i<n;i++){int j = i + 1 ;while(j<n && nums[j]>nums[j-1]) j++ ;ans = max(ans , j - i) ;i = j - 1 ;}for(int i=0;i<n;i++){int j = i + 1 ;while(j<n && nums[j]<nums[j-1]) j++ ;ans = max(ans , j - i) ;i = j - 1 ;}return ans ;}
};

 3106. 满足距离约束且字典序最小的字符串

. - 力扣(LeetCode)

模拟即可,详细请看代码 : 

class Solution {
public:string getSmallestString(string s, int k) {int n = s.size()  ;string ans = "" ;vector<char> a(n) ;int idx = 0 ;bool tag = true ;for(int i=0;i<n;i++){int d = min(s[i]-'a','a'-s[i]+26) ;if(d<=k) a[i] = 'a' , k -= d ;else{int z = k ;a[i] = s[i] - k ;idx = i ;tag = false ;break ;}}if(!tag)for(int t=idx+1;t<n;t++){a[t] = s[t] ;}for(int i=0;i<n;i++){ans.push_back(a[i]) ;}return ans ;}
};

3107. 使数组中位数等于 K 的最少操作数

. - 力扣(LeetCode)

也是模拟,赛时代码写的很繁琐 : 

typedef long long LL ;
class Solution {
public:long long minOperationsToMakeMedianK(vector<int>& nums, int k) {long long ans = 2e18 ;int n = nums.size() ;if(n==1){return abs(nums[0]-k);}sort(nums.begin(),nums.end()) ;if(n&1){//奇数// 前面不用管int t = n / 2 ;int x = nums[t] ;if(x==k){return 0 ;}else if(x>k){// 全部减小到k以下long long res = x - k ;for(int i=0;i<t;i++){if(nums[i]>k){res += nums[i]-k ;}}ans = min(ans,res) ;}else{//x < klong long res = k - x ;for(int i=t+1;i<n;i++){if(nums[i]<k) res += k - nums[i] ;}ans = min(ans,res) ;}}else{int x=n/2-1,y = n/2 ;long long z = nums[y] ;LL f = 1LL * k ;if(z==f){return 0LL ;}else if(z>f){// 前面不用管LL res = 0 ;for(int i=0;i<=y;i++){if(nums[i]>f) res += nums[i] - f ;}ans = min(ans,res) ;}else{LL res = 0 ;for(int i=y;i<n;i++){if(nums[i]<f) res += f - nums[i] ;}ans = min(res,ans) ;}}return ans ;}
};

3108 . 权图里旅途的最小代价

联通块问题 ,首先对于每一个查询:
如果两个值在同一个连通块内 , 那么ans = 连通块中所有变的的与值和;

不在,直接返回-1,如果是同一个点的话,直接返回0;

class Solution {
public:vector<vector<pair<int,int>>> g ;vector<int> cc_and ;// 存放每个连通块的and和vector<int> ids ;// 存放每个结点到连通块号的映射int dfs(int x){ids[x] = cc_and.size() ;// 记录每个点所在连通块编号int and_ = -1 ; // -1 & x = x for(auto &[y,w] : g[x]){and_ &= w ;if(ids[y] < 0){ // 没有访问过and_ &= dfs(y) ;}}return and_ ;}vector<int> minimumCost(int n, vector<vector<int>>& edges, vector<vector<int>>& query) {// and越多,值只会越小// s和t在同一连通块 : 连通块and和// 不在 : -1// 建图 : g.resize(n) ;for(auto& e : edges){int x = e[0] , y = e[1] ,w = e[2] ;g[x].emplace_back(y,w) ;g[y].emplace_back(x,w) ; }ids.resize(n,-1) ;for(int i=0;i<n;i++){if(ids[i]<0){//没有访问过cc_and.push_back(dfs(i)) ;}}vector<int> ans ;ans.reserve(query.size()) ;// 预分配空间for(auto &q : query){int s = q[0] , t = q[1] ;ans.push_back(s==t?0:ids[s]!=ids[t]?-1:cc_and[ids[s]]) ;}return ans ;}
};

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

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

相关文章

客户现场服务器故障处理建议携带的设备

WIFI路由器&#xff0c;带 SIM卡的&#xff0c;带多个千兆网口的&#xff0c;网线 USB硬盘&#xff08;TB计算&#xff09; U盘启动盘 便携的KVM&#xff08;另外带 键盘/鼠标/VGA线&#xff0c;方便现场多个服务器切换显示和控制&#xff09; USB Hub&#xff08;万一客户服…

图形化界面使用MQ!!!

一、docker安装 1、拉去镜像 docker pull rabbitmq:3.10-management 2、Docker运行&#xff0c;并设置开机自启动&#xff08;第一个-p是MQ默认配置的端口&#xff0c;第二个-p是图形化界面配置的端口&#xff09; docker run -d --restartalways --name rabbitmq -p 5672:5672…

直播系统的短视频直播源码,带有多功能后台系统的直播短视频平台 APP 源码。

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 此源码是一个直播系统&#xff0c;集直播、短视频等功能&#xff0c;根据市场趋势开发并推出思乐直播APP&#xff0c;APP功能丰富且可在后台管理系统进行配置&#xff0c;做到按需求来…

《QT实用小工具·二十二》多种样式导航按钮控件

1、概述 源码放在文章末尾 该项目实现了多种样式的导航按钮控件 可设置文字的左侧、右侧、顶部、底部间隔。 可设置文字对齐方式。 可设置显示倒三角、倒三角边长、倒三角位置、倒三角颜色。 可设置显示图标、图标间隔、图标尺寸、正常状态图标、悬停状态图标、选中状态图标…

字节面经之碰上了活菩萨

rt, 楼主碰上了活菩萨. 简单做了个自我介绍, 然后项目没怎么问, 说问我一些计算机基础知识. 然后让我说说我都会什么. 然后从数据结构开始. 让我讲一讲自己熟悉的数据结构, 比如树什么的. 然后我就把二叉树, 二叉搜索树, 二叉平衡树, 红黑树. DFS/BFS还有对应的场景讲了一遍.…

ctfshow web入门 文件上传web162--web167

web162 session文件包含条件竞争 直接包含不传马了 我们上传的文件如果不符合要求&#xff0c;就会被删除&#xff0c;导致成功上传无法访问&#xff0c;没有用。但是如果我们上传的速度比服务器删的速度快&#xff0c;就可以了。 上传.user.ini GIF89a auto_append_file/tmp/…

四、书城开发--3、书城图书部分的开发

书城图书部分 首先我们做书城首页搜索栏下面的图片展示 我们在书城首页组件中通过home请求方法中获取回来的数据中&#xff0c;打印出来可以看到那个banner就是我们现在要的图片 我们在data中定义一个变量banner用来存放获取回来的数据中的banner 然后把它展示出来就可以了&a…

LeetCode-84. 柱状图中最大的矩形【栈 数组 单调栈】

LeetCode-84. 柱状图中最大的矩形【栈 数组 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;单调栈解题思路二&#xff1a;解题思路三&#xff1a; 题目描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且…

阿赵UE学习笔记——26、动画混合空间

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。之前学习了通过蓝图直接控制动画播放&#xff0c;或者通过动画状态机去控制播放。这次来学习一种比较细致的动画控制播放方式&#xff0c;叫做动画混合空间。 一、使用的情景 假设我们现在需…

ssm035基于JavaWeb的家居商城系统的设计与实现+jsp

家居商城系统 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff1b;对于家居商城系统当然也不能排除在外&#xff0c;随着网络技术的不断成熟&#xff0c;带动了家居商城系统&#xff0c;它彻底改…

Linux操作系统安装注意事项(新手简易版)

Linux操作系统安装注意事项&#xff08;新手简易版&#xff09; 目录&#xff1a; 1、字符集安装 2、磁盘分区 3、关闭KDUMP防火墙 4、时区选择 注&#xff1a;事例截图是centos8的安装&#xff0c;其他版本是一样的 1、字符集安装 ecology运行需要用到GBK和UTF8字符…

设计模式-结构型-装饰器模式-decorator

发票基本类 public class Invoice {public void printInvoice() {System.out.println("打印发票正文");} } 发票正文类 public class Decorator extends Invoice {protected Invoice ticket;public Decorator(Invoice ticket) {this.ticket ticket;}Overridepubl…

python复习 之 列表

遍历、增加、删除 list01 [1,2,3,4,5,6] for i in list01:print(i) # 遍历 切片 print(list01[3],----) print(list01[len(list01)-1],----) print(list01[3:],----) print(list01[:4],----) print(list01[:],----) print(list01[0:6:2],----) print(list01[::-1],----)# 增加…

Android获取连接到手机热点上的设备信息

主题&#xff1a;在手机开启热点网络的情况下&#xff0c;想要获取是哪个设备已经连接上了当前开启的热点。 实现思路&#xff1a;Android通过读取 /proc/net/arp 文件可以得到连接当前热点的设备信息&#xff0c;包括Mac地址、IP地址等信息。 一. 方法逻辑&#xff1a; /*** …

访问控制的三要素是______ 、 ________ 、 ________。

主体、客体、访问策略。 访问控制是计算机安全领域的一个重要概念&#xff0c;它确保只有经过授权的用户才能访问系统资源。访问控制通常涉及以下三个主要要素&#xff1a; 主体&#xff08;Subject&#xff09; &#xff1a;主体是可以对对象进行操作的实体&#xff0c;通常…

C# WinForm —— 05 控件简介

简介 窗体中用于输入或操作的对象&#xff0c;有自己的属性、方法、事件 属性&#xff1a;外观方法&#xff1a;功能事件&#xff1a;行为控制特征 可视化&#xff0c;与用户进行交互&#xff0c;属性&#xff0c;方法&#xff0c;事件&#xff0c;可供开发人员使用&#xff0…

vue 双向绑定

双向绑定&#xff1a;双方其中一方改变&#xff0c;另外一方也会跟着改变。 data() { return {inputValue: ,list: [],message: hello,checked: true,radio: ,select: [],options: [{text: A, value:{value: A}},{text: B, value:{value: B}},{text: C, value:{value: C}}], }…

ruoyi-vue-pro 前端vue js直接import导入本地文件使用方法

我的xml文件名称叫w2101.xml 第一步&#xff0c;删除所有依赖&#xff0c;否则配置以后就会启动报错&#xff1a; 第二步配置对应的文件格式&#xff0c;我当前使用的是xml文件 config.module.rule(xml).test(/\.xml$/).use(xml-loader).loader(xml-loader).end();第三步…

你应该知道的21个html小技巧

本文翻译自 21 HTML Tips You Must Know About&#xff0c;作者&#xff1a;Shefali&#xff0c; 略有删改。 在这篇文章中&#xff0c;我将分享21个HTML技巧和代码片段&#xff0c;可以提高你的编码技能。 链接联系人 使用HTML创建可点击的电子邮件、电话和短信链接&#xf…

转圈游戏——快速幂

目录 题目 思路 代码 题目 思路 每个小朋友移动一次的位置为&#xff0c;移动 q 次的位置则为。那么题目要求移动 &#xff0c;最后的位置为 。 但 的范围是&#xff0c;而总的移动次数是 。时间复杂度是在&#xff0c;因此是一定不能硬算的&#xff0c;肯定会超时。那么该…