Leetcode---372周赛

题目列表

2937. 使三个字符串相等

2938. 区分黑球与白球

2939. 最大异或乘积

2940. 找到 Alice 和 Bob 可以相遇的建筑

一、使三个字符串相等

这题把题目意思读懂,正常模拟就行,简单来说就是看三个字符串的最长公共前缀有多长,

代码如下

class Solution {
public:int findMinimumOperations(string s1, string s2, string s3) {int n1=s1.size(),n2=s2.size(),n3=s3.size();int mn=min(n1,min(n2,n3));int i;for(i=0;i<mn;i++){if(s1[i]!=s2[i]||s1[i]!=s3[i]||s2[i]!=s3[i])break;}if(i==0) return -1;else return n1+n2+n3-3*i;}
};

二、区分黑球和白球

这题其实可以根据所给的示例,手玩一下,你就会发现最短的步数就是将黑球按照顺序从左往右依次排好需要的步数,

可能有人不太理解,我简单解释一下:假设有两个黑球分别在下标x、y (x<y)【下面用下标代替黑球】,按照我们的思路,把x放到0,y放到1,共有x-0+y-1步,如果我们把y放到0,x放到1,则会有y-0+(x+1-1)  【因为x在y前面,要想将y放到0,则x会被迫往后移动一位,所以需要多往前走一步】,其他情况同理,所以按照原本的顺序排列黑球的步数最少

代码如下

class Solution {
public:long long minimumSteps(string s) {long long ans=0;for(int i=0,j=0;i<s.size();i++){//j表示下一个黑球应该在的位置if(s[i]=='0'){ans+=i-j;//黑球移到对应位置需要的步数j++;}}return ans;}
};

三、最大异或乘积

这题跟位运算有关系,异或运算,相同为0,相异为1,思路如下

代码如下 

//法1:时间复杂度O(n)
class Solution {
public:const int MOD=1e9+7;int maximumXorProduct(long long a, long long b, int n) {long long ax=(a>>n)<<n,bx=(b>>n)<<n;for(int i=n-1;i>=0;i--){if(((a>>i)&1) == ((b>>i)&1)){//说明a和b的比特位相等ax^=(1LL<<i);bx^=(1LL<<i);}else if(ax>bx){//说明a和b的比特位不相等,且ax>bxbx^=(1LL<<i);}else{ax^=(1LL<<i);}}return (ax%MOD)*(bx%MOD)%MOD;}
};//法2:时间复杂度O(1)
class Solution {
public:const int MOD=1e9+7;int maximumXorProduct(long long a, long long b, int n) {if(a<b) swap(a,b);long long mask=(1LL<<n)-1;long long ax=a&(~mask),bx=b&(~mask);long long diff=(a^b)&mask;//diff二进制为1表示可以分配给a或b的1long long one=diff^mask;//将diff中的二进制为0的位置变成1ax|=one;bx|=one;if(diff>0&&ax==bx){long long high_bit=1LL<<(63-__builtin_clzll(diff));ax|=high_bit;diff^=high_bit;}bx|=diff;return (ax % MOD) * (bx % MOD) % MOD;}
};

四、找到Alice和Bob可以相遇的建筑

这个题目的题意就是要求我们找每次查询的两个位置(L,R)的右边有没有比他们都高的建筑,当然如果height[R]>height[L],那么直接返回R即可,如果L==R,直接返回当前位置,所以我们只要求当height[L]>height[R]时,右边高于heighs[L]的位置即可

class Solution {
public:vector<int> leftmostBuildingQueries(vector<int>& heights, vector<vector<int>>& queries) {int n=heights.size(),m=queries.size();vector<int>ans(m,-1);vector<vector<pair<int,int>>>left(n);//等待被查询的位置for(int i=0;i<m;i++){int l=queries[i][0],r=queries[i][1];if(l>r) swap(l,r);if(l==r||heights[r]>heights[l]){ans[i]=r;continue;}left[r].push_back({-heights[l],i});}priority_queue<pair<int,int>>q;for(int i=0;i<n;i++){while(q.size()&&-q.top().first<heights[i]){ans[q.top().second]=i;q.pop();}for(auto e:left[i]){q.push(e);}}return ans;}
};

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

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

相关文章

NoSql非关系型数据库

前言&#xff1a;Nosql not only sql&#xff0c;意即“不仅仅是sql”&#xff0c;泛指非关系型数据库。这些类型的数据存储不需要固定的模式&#xff08;当然也有固定的模式&#xff09;&#xff0c;无需多余的操作就可以横向扩展。NoSql数据库中的数据是使用聚合模型来进行处…

外汇天眼:CFTC修订了针对Logista Advisors的投诉

商品期货交易委员会&#xff08;CFTC&#xff09;修改了对Logista Advisors LLC及其首席执行官Andrew Harris Serotta的投诉。修改后的投诉于2023年11月28日提交给伊利诺伊州北区法院。 修改后的投诉声称&#xff0c;从至少2020年1月左右至少到2020年4月左右&#xff0c;Logis…

2023.11.29 深度学习框架理解

2023.11.29 深度学习框架理解 对深度学习框架进行复习&#xff0c;选最简单的“三好学生”问题的四个变化&#xff0c;简要总结其具体思路。 深度学习一开始就是为分类问题研究的&#xff0c;因此其框架的设计都是基于分类的问题&#xff0c;虽然现在也已经演变为可以执行多种…

YOLOv5独家原创改进: AKConv(可改变核卷积),即插即用的卷积,效果秒杀DSConv | 2023年11月最新发表

💡💡💡本文全网首发独家改进:可改变核卷积(AKConv),赋予卷积核任意数量的参数和任意采样形状,为网络开销和性能之间的权衡提供更丰富的选择,解决具有固定样本形状和正方形的卷积核不能很好地适应不断变化的目标的问题点,效果秒殺DSConv 1)AKConv替代标准卷积进行…

悠络客受邀出席2023上海区域零售(餐饮)数字化运营实战沙龙研讨会

11月23日&#xff0c;由中国零售&#xff08;餐饮&#xff09;CIO俱乐部、《智慧零售与餐饮》主办的2023上海区域零售&#xff08;餐饮&#xff09;数字化运营实战沙龙研讨会在上海召开&#xff0c;悠络客合伙人兼销售副总裁张勇作为演讲嘉宾受邀出席了本次大会。 本次研讨会汇…

SQL server 基线安全加固操作

账号管理、认证授权 ELK-Mssql-01-01-01 编号 ELK-Mssql-01-01-01 名称 为不同的管理员分配不同的账号 实施目的 应按照用户分配账号&#xff0c;避免不同用户间共享账号,提高安全性。 问题影响 账号混淆&#xff0c;权限不明确&#xff0c;存在用户越权使用的可能。 …

指针数组以及利用函数指针来实现简易计算器及typedef关键字(指针终篇)

文章目录 &#x1f680;前言&#x1f680;两段有趣的代码✈️typedef关键字 &#x1f680;指针数组&#x1f680;简易计算器的实现 &#x1f680;前言 基于阿辉前两篇博客指针的基础篇和进阶篇对于指针的了解&#xff0c;那么今天阿辉将为大家介绍C语言的指针剩下的部分&#…

BUUCTF [ACTF新生赛2020]swp 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;得到一个.tar文件。 解题思路&#xff1a; 1、使用WinRAR解压.tar文件&#xff0c;得到两个.zip文件。 解压wget.zip文件&#xff0c;得…

【计算机毕业设计】springboot+java高校实验室器材耗材料借用管理系统94l73

实验室耗材管理系统在Eclipse/idea环境中&#xff0c;使用Java语言进行编码&#xff0c;使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务&#xff0c;本系统教师和学生申请使用实验材料&#xff0c;管理员管理实验材料&#xff0c;审核实验材料的申请…

redis key

不管是&#xff1a;规则&#xff0c;还是其他规则&#xff0c;定义好就可以了。其实没有太多要求的。 1&#xff09;冒号分割类似那种yaml在客户端显示树结构 2&#xff09;其他分割类似那种properties在客户端显示列表结构

文件格式扩展名转换:将图片png扩展名批量改为jpg的方法

在处理大量图片文件时&#xff0c;可能会遇到需要将文件格式扩展名进行转换的情况。比如&#xff0c;将图片文件从PNG格式转换为JPG格式。这不仅可以节省存储空间&#xff0c;还可以提高图片加载速度&#xff0c;特别是在网页设计中。本文详解如何将PNG图片批量转换为JPG格式的…

普乐蛙绵阳科博会一场VR科普航天科学盛宴科普知识

普乐蛙绵阳科普展&#xff1a;一场科学盛宴&#xff0c;点燃孩子探索欲望的火花! 普乐蛙绵阳科普展正在如火如荼地进行中&#xff0c;吸引了无数孩子和家长的热情参与。这场科普盛宴以独特的内外视角&#xff0c;让人们感受到科学的魅力&#xff0c;激发了孩子们对知识的渴望和…