当前位置: 首页 > news >正文

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;}
}

 

相关文章:

Leetcode - 131双周赛

一&#xff0c;3158. 求出出现两次数字的 XOR 值 本题是一道纯模拟题&#xff0c;直接暴力。 代码如下&#xff1a; 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 | (…...

【CSharp】判断目录以及文件是否存在

【CSharp】判断目录以及文件是否存在 1.背景2.判断目录3.判断文件1.背景 我们在进行磁盘IO的时候进行需要判断目录、文件是否存在,根据判断结果再做进一步的操作。 其中判断目录是否存在,涉及Directory.Exists(String) 方法; 命名空间:System.IO 方法功能:确定给定路径是…...

kali基本扫描工具(自带)

免责声明:本文仅做技术交流与学习...请勿非法破坏... 详细用法: 命令 -h/百度/翻译 fping 用法 hostlist 文件里面为ip fping -a -q -f hostlist -a 只看存活的 fping -g 202.100.1.1 202.100.1.255 -a -q > Ahost 输出到Ahost文件上 nping nping -c 1 201.100.2.155-244 …...

与MySQL的初相遇

&#x1f30e;初识MySQL 注&#xff1a;本文SQL语句只为了验证猜想&#xff0c;不会也不要紧。 文章目录&#xff1a; MySql开端 认识数据库       什么是数据库       主流数据库       MySQL的本质 MySQL基础使用       连接mysql服务器     …...

详解Spring IoCDI(一)

目录 1.什么是IoC 2.IoC应用场景&#xff08;案例分析&#xff09; 2.1传统程序开发 2.2问题分析 2.3解决方案 2.4IoC 优势 3. DI概念 4.IoC详解 4.1Bean的存储 4.2Controller&#xff08;控制器存储&#xff09; 4.3获取Bean 4.4Bean相关注解 1.什么是IoC Spring…...

Android 14 - 绘制体系 - 概览

从Android 12开始&#xff0c;Android的绘制系统有结构性变化&#xff0c; 在绘制的生产消费者模式中&#xff0c;新增BLASTBufferQueue&#xff0c;客户端进程自行进行queue的生产和消费&#xff0c;随后通过Transation提交到SurfaceFlinger&#xff0c;如此可以使得各进程将缓…...

【RAG论文】文档树:如何提升长上下文、非连续文档、跨文档主题时的检索效果

RAPTOR Recursive Abstractive Processing for Tree-Organized RetrievalICLR 2024 Stanfordhttps://arxiv.org/pdf/2401.18059 RAPTOR&#xff08;Recursive Abstractive Processing for Tree-Organized Retrieval&#xff09;是一种创建新的检索增强型语言模型&#xff0c;它…...

【前端每日基础】day27——小程序开发

小程序开发详细介绍 基本概念 小程序&#xff1a;小程序是一种无需下载安装即可使用的应用。用户通过微信搜索或扫描二维码即可打开小程序。小程序具有触手可及、用完即走、体验良好的特点。 组成部分&#xff1a; WXML&#xff1a;用于描述页面的结构。 WXSS&#xff1a;用于…...

【C语言】指针速览

指针速览 指针1.野指针与空指针2. 空类型指针 void *3. 指针常量4. 常量指针5. 指向常量的指针常量6. 指针操作数组6.1 数组名作为函数参数 7. 多级指针8. 函数指针8.1 函数指针数组 最后 指针 指针就是内存的字节单元编号地址&#xff0c;指针变量就是存放地址的变量。 1.野…...

Java基础学习:深入解析Java中的位运算符

在Java中&#xff0c;位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符&#xff1a; 位与(&)&#xff1a;两位都为1时&#xff0c;结果为1&#xff0c;否则为0。 位或(|)&#xff1a;两位中有1个为1&#xff0c;结果为1。 位非(~)&#xff1a;位的反&#…...

9.Redis之list类型

list相当于链表、数据表 1.list类型基本介绍 列表中的元素是有序的"有序"的含义,要根据上下文区分~~有的时候,谈到有序,指的是"升序","降序”有的时候,谈到的有序,指的是, 顺序很关键~~如果把元素位置颠倒,顺序调换.此时得到的新的 List 和之前的 Li…...

Git 的安装和使用

一、Git 的下载和安装 目录 一、Git 的下载和安装 1. git 的下载 2. 安装 二、Git 的基本使用-操作本地仓库 1 初始化仓库 1&#xff09;创建一个空目录 2&#xff09;git init 2 把文件添加到版本库 1&#xff09;创建文件 2&#xff09;git add . 3&#xff09;g…...

大模型时代的具身智能系列专题(五)

stanford宋舒然团队 宋舒然是斯坦福大学的助理教授。在此之前&#xff0c;他曾是哥伦比亚大学的助理教授&#xff0c;是Columbia Artificial Intelligence and Robotics Lab的负责人。他的研究聚焦于计算机视觉和机器人技术。本科毕业于香港科技大学。 主题相关作品 diffusio…...

基于springboot+vue的社区医院管理服务系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

车载电子电器架构 —— 智能座舱标准化意义

车载电子电器架构 —— 智能座舱标准化意义 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消…...

Compose在xml中使用滑动冲突处理

一、背景 在现有Android项目中使用Compose可能存在滑动冲突问题&#xff0c;例如 SmartRefreshLayoutCoordinatorLayoutComposeView(ComposeView这里又是一个LazyColumn) 二、解决方案 官方介绍&#xff1a;https://developer.android.google.cn/develop/ui/compose/touch-inp…...

微信网页版登录插件v1.1.1

说到如今的微信客户端&#xff0c;大家肯定会有很多提不完的意见或者建议。比如这几年体积越来越大&#xff0c;如果使用频率比较高&#xff0c;那占用空间就更离谱了。系统迷见过很多人电脑C盘空间爆满&#xff0c;都是由于微信PC版造成的。 而且&#xff0c;它还加了很多乱七…...

华为实训课笔记 2024

华为实训 5/205/215/225/235/275/28 5/20 5/21 5/22 5/23 5/27 5/28...

HTML静态网页成品作业(HTML+CSS)——宠物狗介绍网页(3个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有3个页面。 二、作品演示 三、代…...

网络模型-路由策略

一、路由策略 路由策略(Routing Policy)作用于路由&#xff0c;主要实现了路由过滤和路由属性设置等功能&#xff0c;它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。目的:设备在发布、接收和引入路由信息时&#xff0c;根据实际组网需要实施一些策略&#xff0c…...

【MySQL精通之路】InnoDB(7)-锁和事务模型

1.InnoDB锁 【MySQL精通之路】InnoDB(7)-锁和事务模型(1)-锁-CSDN博客 2.InnoDB事务模型 【MySQL精通之路】InnoDB(7)-锁和事务模型(2)-事务模型-CSDN博客 3.InnoDB中不同SQL语句设置的锁 4.幻影行 5.InnoDB中的死锁 5.1InnoDB死锁示例 5.2死锁检测 …...

深度学习创新点不大但有效果,可以发论文吗?

深度学习中创新点比较小&#xff0c;但有效果&#xff0c;可以发论文吗&#xff1f;当然可以发&#xff0c;但如果想让编辑和审稿人眼前一亮&#xff0c;投中更高区位的论文&#xff0c;写作永远都是重要的。 那么怎样“讲故事”才能让论文更有吸引力&#xff1f;我总结了三点…...

【ARM Cache 系列文章 7.1 – ARMv8/v9 MMU 页表配置详细介绍 02 】

文章目录 Translation table descriptorTable descriptor format页面粒度和地址长度粒度(Granules)48位和52位地址TCR_ELx.DSVTCR_EL2.DSFEAT_LPA块描述符|页描述符紧接上篇文章【ARM Cache 系列文章 7 – ARMv8/v9 MMU 页表配置 01 】 Translation table descriptor</...

Mysql搭建主从同步,docker方式(一主一从)

服务器&#xff1a;两台Centos9 用Docker搭建主从 使用Docker拉取MySQL镜像 确保两台服务器都安装好了docker 安装docker请查看&#xff1a;Centos安装docker 1.两台服务器都先拉取mysql镜像 docker pull mysql 2.我这里是在 /opt/docker/mysql 下创建mysql的文件夹用来存…...

【已解决】使用token登录机制,token获取不到,blog_list.html界面加载不出来

Bug产生 今天使用token完成用户登录信息的存储的时候被卡了大半天。 因为登录的功能写的已经很多了&#xff0c;所以今天就没有写一点验一点&#xff0c;而是在写完获取博客列表功功能&#xff0c;验证完它的后端后&#xff0c;了解完令牌的基本使用以及Jwt的基本使用方式——…...

【Linux 网络编程】网络的基础知识详解!

文章目录 1. 计算机网络背景2. 认识 "协议" 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; &#x1f34e;局域网&#xff08;LAN----Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接。 &#x1f34e; 广域网WAN: 将…...

Nacos 2.x 系列【12】配置加密插件

文章目录 1. 前言2. 安装插件2.1 编译2.2 客户端2.3 服务端 3. 测试 1. 前言 为保证用户敏感配置数据的安全&#xff0c;Nacos提供了配置加密的新特性。降低了用户使用的风险&#xff0c;也不需要再对配置进行单独的加密处理。 前提条件&#xff1a; 版本:老版本暂时不兼容&…...

Kubernetes和Docker对不同OS和CPU架构的适配关系

Docker Docker官网对操作系统和CPU架构的适配关系图 对于其他发行版本&#xff0c;Docker官方表示没有测试或验证在相应衍生发行版本上的安装&#xff0c;并建议针对例如Debian、Ubuntu等衍生发行版本上使用官方的对应版本。 Kubernetes X86-64 ARM64 Debian系 √ √ Re…...

LabVIEW机器设备的振动监测

振动监测是工业和机械维护中重要的一部分&#xff0c;通过检测和分析机械振动&#xff0c;提前发现潜在故障&#xff0c;确保设备的可靠运行。LabVIEW是一种强大的图形化编程环境&#xff0c;非常适合用于振动监测系统的开发和实施。以下从多个角度详细介绍LabVIEW在振动监测中…...

FreeRTOS学习笔记-基于stm32(7)任务状态查询与任务时间统计API函数

1、FreeRTOS任务相关API函数 函数描述uxTaskPriorityGet()查询某个任务的优先级vTaskPrioritySet()改变某个任务的任务优先级uxTaskGetSystemState()获取系统中任务状态vTaskGetInfo()获取某个任务信息xTaskGetApplicationTaskTag()获取某个任务的标签(Tag)值xTaskGetCurrentT…...