Leetcode - 131双周赛

一,3158. 求出出现两次数字的 XOR 值

 本题是一道纯模拟题,直接暴力。

代码如下: 

class Solution {public int duplicateNumbersXOR(int[] nums) {int ans = 0;long t = 0;for(int x : nums){if(((t>>x)&1) == 1){ans ^= x;}else{t |= (1L<<x);}}return ans;}
}

二,3159. 查询数组中元素的出现位置

本题也是一道模拟题,可以先用一个集合记录nums数组中 x 出现的下标,再枚举queries数组,如果queries[i]大于集合的大小(即数组中x出现的次数小于queries[i]),返回-1;否则放回下标。

代码如下: 

class Solution {public int[] occurrencesOfElement(int[] nums, int[] queries, int x) {List<Integer> lst = new ArrayList<>();for(int i=0; i<nums.length; i++){if(nums[i] == x){lst.add(i);}}int[] ans = new int[queries.length];int i = 0;for(int q : queries){ans[i++] = lst.size() >= q ? lst.get(q-1) : -1; }return ans;}
}

三,3160. 所有球里面不同颜色的数目

本题求每次操作后,不同颜色的数目,可以使用两个哈希表m1、m2,m1存储<i,i 的颜色>,m2存储<i 的颜色,该颜色的出现次数>。

接下来就是分情况讨论,当把球 x 的颜色改成 y 时:

  • 如果 x 没有在之前出现过(即 m1.containsKey(x) == false),直接将<x,y>放入m1,将m2中的 y 颜色加1
  • 如果 x 在之前出现过(即 m1.containsKey(x) == true),我们需要先将之前 x 对应的  z 颜色(即m1.get(x))的数目减一,如果减完之后 z 颜色的数量为 0,需要去除 z 颜色;如果不为0,就不去除。最后将<x,y>放入m1,将m2中的 y 颜色加1
  • 完成一次上述操作后,ans[i] = m2.size()

 代码如下:

class Solution {public int[] queryResults(int limit, int[][] queries) {int[] ans = new int[queries.length];Map<Integer, Integer> m1 = new HashMap<>();//<i,i的颜色>Map<Integer, Integer> m2 = new HashMap<>();//<i的颜色,该颜色出现次数>for(int i=0; i<queries.length; i++){int[] x = queries[i];if(m1.containsKey(x[0]) && m2.merge(m1.get(x[0]), -1, Integer::sum)==0){m2.remove(m1.get(x[0]));}m1.put(x[0], x[1]);m2.merge(x[1], 1, Integer::sum);ans[i] = m2.size();}return ans;}
}

四,3161. 物块放置查询

由题目可知,我们需要一个数据结构来动态维护一个区域内的最大可放置的物块大小。满足以上条件的数据结构就是线段树:

  • 如何进行点更新(update)?
  • 假设我们要在 x 处放一个障碍物,pre 是 x 前一个障碍物,就需要更新以 x 为右端点时可以放置的最大物块,更新为 x - pre;nxt 是 x 后一个障碍物,同时我们还需要更新以 nxt 为右端点时可以放置的最大物块,更新为 nxt - x。
  • 如何查询(query)?
  • 我们查询的右端点有两种情况:1、刚好在障碍物上,直接查询[0,q[1]] 这块区域的最大值;2、不在障碍物上,那么就需要分成两段来求:一段是[0,pre]的最大值,另一段直接求就是 x - pre
class Solution {int[] t;//[l, r]表示当前的范围,i表示数组t存储[l,r]的最大值的下标//jobr表示要更新端点,val表示更新的值void update(int l, int r, int i, int jobr, int val){if(l == r){t[i] = val;return;} int mid = (l + r) / 2;if(jobr <= mid){update(l, mid, i<<1, jobr, val);}else{update(mid+1, r, i<<1|1, jobr, val);}t[i] = Math.max(t[i<<1], t[i<<1|1]);}//[l, r]表示当前的范围,i表示数组t存储[l,r]的最大值的下标//[0, jobr]表示要查询的区域public int query(int l, int r, int i, int jobr){if( r <= jobr){return t[i];}int mid = (l + r) / 2;if(jobr <= mid) return query(l, mid, i<<1, jobr);elsereturn Math.max(t[i<<1],query(mid+1, r, i<<1|1, jobr));}public List<Boolean> getResults(int[][] queries) {int m = 0;for(int[] q : queries) m = Math.max(m, q[1]);m++;t = new int[m << 2];TreeSet<Integer> set = new TreeSet<>();//求相邻的障碍物的位置set.add(0);set.add(m);List<Boolean> ans = new ArrayList<>();for(int[] q : queries){int x = q[1];int pre = set.floor(x-1);//求x前的障碍物if(q[0] == 1){int nxt = set.ceiling(x);//求x后的障碍物set.add(x);update(0, m, 1, x, x-pre);//更新[0,x]的最大可放置的物品大小update(0, m, 1, nxt, nxt-x);//更新[0,nxt]的最大可放置的物品大小}else{int mx = Math.max(query(0, m, 1, pre), x - pre);//分成两段求最大值ans.add(mx >= q[2]);}   }return ans;}
}

 

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

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

相关文章

U-Net网络

U-Net网络 一、基本架构 各个箭头的解释&#xff1a; conv 3 * 3, ReLU&#xff1a;表示通过一个3 * 3的卷积层&#xff0c;并且该层自动附带一个非线性激活层&#xff08;ReLu&#xff09;copy and crop&#xff1a;表示进行裁剪然后再进行拼接&#xff08;在channel的维度上…

【CALayer-时钟练习-CADisplayLink Objective-C语言】

一、我们接着来看,这个CADisplayLink啊, 1.刚才我们说那个时间呢,差上1秒钟的样子,然后呢,我们现在呢,用这个叫做CADisplayLink的东西,来解决,用这个类,来解决啊, 我们说,NSTimer,是跑到这儿了以后,一秒钟以后, 它才会执行,这个timeChange方法,真正的时间,不…

AWS 高防和阿里云高防深度对比

随着网络攻击的不断增加&#xff0c;企业对于网络安全的需求也越来越高。在这种情况下&#xff0c;高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商&#xff0c;都提供了高防护服务&#xff0c;但它们之间存在着一些差异。我们九河云一…

基于PTP实现主机与相机系统时钟同步功能

基于PTP实现主机与相机系统时钟同步功能 一、PTP简介二、工业相机PTP功能支持三、工业相机时间戳介绍3.1基本概念3.2海康工业相机时间戳介绍3.2.1相机参数时间戳3.2.2图像嵌入式时间戳3.2.3相机event事件时间戳3.2.4各种时间戳的时序关系3.2.5通过工业相机SDK获取相机时间戳 四…

JS实现彩色图片转换为黑白图片

1. 使用 Canvas 研究 canvas 时发现一个有趣的现象——将彩色图片巧妙地转换为黑白图片。以下是实现这一功能的简洁代码示例&#xff1a; <div style"display: flex"><img src"./panda.jpeg" /><button onclick"change()">转…

香港Web3媒体:Techub News

Techub News&#xff1a;香港领先&#xff0c;世界一流的科技媒体平台 在数字化时代&#xff0c;Web3技术的崛起为媒体行业注入了新的活力。作为香港领先的Web3媒体平台&#xff0c;Techub News凭借其专业的团队、丰富的资源和创新的业务模式&#xff0c;成为了行业内的佼佼者。…

Idea java.lang.RuntimeException: java.lang.OutOfMemoryError: Java heap space 解决

咱们平时的开发过程中一定会进行本地调试&#xff0c;今天我也是安装了新的idea之后拉了一个比较大的项目进行本地调试的时候报错。报错信息如下&#xff1a; java: java.lang.OutOfMemoryError: Java heap space java.lang.RuntimeException: java.lang.OutOfMemoryError: Ja…

浅谈网络安全态势感知

前言 网络空间环境日趋复杂&#xff0c;随着网络攻击种类和频次的增加&#xff0c;自建强有力的网络安全防御系统成为一个国家发展战略的一部分&#xff0c;而网络态势感知是实现网络安全主动防御的重要基础和前提。 什么是网络安全态势感知&#xff1f; 态势感知一词来源于对…

【NumPy】全面解析mean函数:高效计算数组平均值的方法

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

【class19】人工智能初步---语音识别(5)

【class19】 上节课&#xff0c;我们学习了&#xff1a;语音识别模型的结构和原理&#xff0c;同时调用创建好的AipSpeech客户端实现了语音转文字功能。 本节课&#xff0c;我们将初识字幕&#xff0c;学习这些知识点&#xff1a;1. srt字幕 2. 获取时间数据 …

Java开发-面试题-0001-String、StringBuilder、StringBuffer的区别

Java开发-面试题-0001-String、StringBuilder、StringBuffer的区别 更多内容欢迎关注我&#xff08;持续更新中&#xff0c;欢迎Star✨&#xff09; Github&#xff1a;CodeZeng1998/Java-Developer-Work-Note 技术公众号&#xff1a;CodeZeng1998&#xff08;纯纯技术文&am…

【2024.5.29数据库MYSQL史上最详细基础学习汇总】

初识数据库 什么是数据库: DB的全称是database,即数据库的意思。数据库实际上就是一个文件集合,是一个存储数据的仓库,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作; 什么是关系型数据库(SQL)? 关系型数据库是依据关系模型来创建的…

如何恢复被盗的加密货币?

本世纪&#xff0c;网络犯罪的首要目标是加密货币。 这要归功于加密货币的日益普及和价值&#xff0c;网络犯罪分子已经认识到经济收益的潜力&#xff0c;并将重点转向利用这种数字资产中的漏洞。 在今天的文章中&#xff0c;我们将讨论加密货币恢复和被盗加密货币恢复。 我们…

IPFoxy Tips:海外代理IP适用的8个跨境出海业务

在当今数字化时代&#xff0c;互联网已经成为商业和个人生活不可或缺的一部分。IP代理作为出海业务的神器之一&#xff0c;备受跨境出海业务人员关注。IPFoxy动态、静态纯净代理IP也根据业务需求的不同&#xff0c;分为静态住宅、动态住宅、静态IPv4、静态IPv6四种类型代理。那…

【软件测试】LoadRunner参数化属性设置_单个参数

目录 为什么使用参数化属性详解Select next rowSequential&#xff08;顺序&#xff09;Random&#xff08;随机&#xff09;Unique&#xff08;唯一&#xff09;Same line as XXX&#xff08;和XXX属性的取值方式一样&#xff09; Update value onEach iteration&#xff08;每…

HDTune和CrystalDiskInfo硬盘检测S.M.A.R.T.参数当前值最差值阈值

高亮颜色说明&#xff1a;突出重点 个人觉得&#xff0c;&#xff1a;待核准个人观点是否有误 高亮颜色超链接 文章目录 S.M.A.R.T.监控技术磁盘健康状态监测,硬盘检测硬盘检测工具 HD Tune硬盘检测工具 CrystalDiskInfo 当前值最差值阈值原始值的含义二级标题待补充待补充 开头…

RedHat9 | 配置与管理DNS服务器

一、 知识预备 1、DNS服务器的分类 主DNS服务器 主DNS服务器复制维护所管辖域的域名服务信息&#xff0c;它从域管理员构造的本地磁盘文件中的加载域信息。该文件包含服务器具有管理权的的一部分域结构的精确信息&#xff0c;配置主域服务器需要一整套配置文件&#xff1a; …

《QT实用小工具·六十八》基于QMenu开发的炫酷菜单栏

1、概述 源码放在文章末尾 该项目基于QMenu实现了炫酷的菜单栏效果&#xff0c;包含了如下功能&#xff1a; 1、实现了类似word菜单栏的效果&#xff0c;可以在菜单栏中横向添加不同的菜单 2、鼠标点击菜单可以展开菜单栏&#xff0c;再次点击菜单可以收起菜单栏 3、鼠标点击笑…

Chromium源码学习(1)—— 拉取源码,编译

阅读建议&#xff1a;先简单过一下整个文章目录结构&#xff0c;大致了解一下各个步骤在干什么&#xff0c;然后在上手操作可能会事半功倍。也许你遇到的有些问题文章中已经提及到了&#xff0c;但是由于你没有往下看导致卡进度。 Chromium简介 Chromium项目于2008年发布&…

postman教程-7-文件上传接口

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了postman发送get请求的方法&#xff0c;本小节我们讲解一下postman文件上传接口的请求方法。 postman文件上传的方式大概有两种&#xff0c;一种是form-data类型上传文件&#xff0c;一种是bin…