当前位置: 首页 > 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…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...