LeetCode 第131场双周赛个人题解

100309. 求出出现两次数字的 XOR 值

原题链接

求出出现两次数字的 XOR 值 - 力扣 (LeetCode) 竞赛

思路分析

签到题,一次遍历

AC代码

class Solution:def duplicateNumbersXOR(self, nums: List[int]) -> int:cnt = Counter(nums)res = 0st = set(nums)for x in st:if cnt[x] == 2:res ^= xreturn res

100303. 查询数组中元素的出现位置

原题链接

  查询数组中元素的出现位置 - 力扣 (LeetCode) 竞赛

思路分析

  记录下每个次数的位置,然后遍历一下查询就行

时间复杂度O(n)

AC代码

class Solution:def occurrencesOfElement(self, nums: List[int], queries: List[int], x: int) -> List[int]:mp = defaultdict()s = 0for i, v in enumerate(nums):if v == x:s += 1mp[s] = ireturn [mp[v] if v in mp else -1 for v in queries]

100313. 所有球里面不同颜色的数目

原题链接

  所有球里面不同颜色的数目 - 力扣 (LeetCode) 竞赛

思路分析

  一开始敲了个莫队的板子,又看了下题看错题了。。。没那么复杂

边遍历边执行操作,边维护每个元素出现次数,然后记录下集合中的元素就行

时间复杂度O(n)

AC代码

class Solution:def queryResults(self, limit: int, queries: List[List[int]]) -> List[int]:cnt = Counter()mp = defaultdict(int)ret = []st = set()for x, y in queries:cnt[mp[x]] -= 1if cnt[mp[x]] == 0:st.remove(mp[x])mp[x] = ycnt[y] += 1st.add(y)ret.append(len(st))return ret

100314. 物块放置查询

原题链接

  物块放置查询 - 力扣 (LeetCode) 竞赛

思路分析

  思路就是线段树维护区间和,但是会卡常。

对原数轴重新编号

原数轴上的点i变为2 * i + 1,点与点之间的空隙也依次编号

然后空隙的权值为1,原数轴点的权值为0

在原数轴放障碍相当于将其赋值为负无穷

对于每个查询[0, x]等价于查询[1, 2 * x + 1]的最大连续子段和是否大于等于sz

我们只需要用线段树维护最大连续子段和即可

只涉及单点修改和区间查询,时间复杂度为O(nlogn)


由于拆点,区间长度为1e5量级,但是竟然被卡常了?

加个快读和吸氧才过

掉大分!!!

AC代码

#pragma GCC optimize(2)
const int N = 1e5 + 10;
#define lc p << 1
#define rc p << 1 | 1
struct node{int l, r;long long sum, lma, rma, ma;
}tr[N << 2];int n, m, a[N];void pushup(node& p, node& l, node& r){p.sum = l.sum + r.sum;p.lma = max(l.lma, l.sum + r.lma);p.rma = max(r.rma, r.sum + l.rma);p.ma = max(l.rma + r.lma, max(l.ma, r.ma));
}void build(int p, int l, int r){tr[p] = { l, r, 0, 0, 0, 0 };if(l == r){if (l % 2 == 0) tr[p] = { l, l, 1, 1, 1, 1 };return;}int mid = l + r >> 1;build(lc, l, mid), build(rc, mid + 1, r);pushup(tr[p], tr[lc], tr[rc]);
}node query(int p, int l, int r){if(l <= tr[p].l && tr[p].r <= r)return tr[p];int mid = tr[p].l + tr[p].r >> 1;if(r <= mid) return query(lc, l, r);else if(l > mid) return query(rc, l, r);node left = query(lc, l, r);node right = query(rc, l, r);node ret = { 0 };pushup(ret, left, right);return ret;
}void update(int p, int x, int k){ //点修if(tr[p].l == x && tr[p].r == x){tr[p] = { x, x, k, k, k, k };return;}int mid = tr[p].l + tr[p].r >> 1;if(x <= mid) update(lc, x, k);else update(rc, x, k);pushup(tr[p], tr[lc], tr[rc]);
}class Solution {
public:Solution() {ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);}vector<bool> getResults(vector<vector<int>>& queries) {memset(tr, 0, sizeof tr);build(1, 1, N);vector<bool> ret;for (auto& v : queries) {int op = v[0];if (op == 1) {update(1, v[1] * 2 + 1, -1e8);}else {auto t = query(1, 1, v[1] * 2 + 1);ret.push_back(t.ma >= v[2]);}}return ret;}
};

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

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

相关文章

【大模型】Spring AI对接ChatGpt使用详解

目录 一、前言 二、spring ai介绍 2.1 什么是Spring AI 2.2 Spring AI 特点 2.3 Spring AI 为开发带来的便利 2.4 Spring AI应用领域 2.4.1 聊天模型 2.4.2 文本到图像模型 2.4.3 音频转文本 2.4.4 嵌入大模型使用 2.4.5 矢量数据库支持 2.4.6 用于数据工程ETL框架 …

2024-05-22 VS2022使用modules

点击 <C 语言编程核心突破> 快速C语言入门 VS2022使用modules 前言一、准备二、使用其一, 用VS installer 安装模块:第二个选项就是, 与你的代码一同编译std模块, 这个非常简单, 但是也有坑. 总结 前言 要解决问题: 使用VS2022开启modules. 想到的思路: 跟着官方文档整…

Java进阶学习笔记19——内部类

1、 内部类&#xff1a; 是类中五大成分之一&#xff08;成员变量、方法、构造函数、内部类、代码块&#xff09;&#xff0c;如果一个类定义在另一个 类的内部&#xff0c;这个类就是内部类。 场景&#xff1a;当一个类的内部&#xff0c;包含了一个完整的事物&#xff0c;且…

Android ART 虚拟机简析

源码基于&#xff1a;Android U 1. prop 名称选项名称heap 变量名称功能 dalvik.vm.heapstartsize MemoryInitialSize initial_heap_size_ 虚拟机在启动时&#xff0c;向系统申请的起始内存 dalvik.vm.heapgrowthlimit HeapGrowthLimit growth_limit_ 应用可使用的 max…

Scikit-Learn朴素贝叶斯

Scikit-Learn朴素贝叶斯 1、朴素贝叶斯1.1、贝叶斯分类1.2、贝叶斯定理1.3、贝叶斯定理的推导1.4、朴素贝叶斯及原理1.5、朴素贝叶斯的优缺点2、Scikit-Learn朴素贝叶斯2.1、Sklearn中的贝叶斯分类器2.2、Scikit-Learn朴素贝叶斯API2.3、Scikit-Learn朴素贝叶斯实践(新闻分类与…

爬山算法的详细介绍

目录 &#x1f349;概述 &#x1f349; 步骤 &#x1f349; 优缺点 &#x1f348;优点 &#x1f348;缺点 &#x1f348;应对策略 &#x1f349;示例 &#x1f348;旅行商问题 &#x1f34d;步骤 &#x1f34d;分解代码 &#x1f34e;包含头文件 &#x1f34e;定义函…

Cortex-M3的SysTick 定时器

目录 概述 1 SysTick 定时器 1.1 SysTick 定时器功能介绍 1.2 SysTick 定时器功能实现 1.3 SysTick在系统中的作用 2 SysTick应用的实例 2.1 建立异常服务例程 2.2 使能异常 2.3 闹钟功能 2.4 重定位向量表 2.5 消灭二次触发 3 SysTick在FreeRTOS中的应用 3.1 STM…

在docker中运行SLAM十四讲程序

《十四讲》的示例程序依赖比较多&#xff0c;而且系统有点旧。可以在容器中运行。 拉取镜像 docker pull ddhogan/slambook:v0.1这个docker对应的github&#xff1a;HomeLH/slambook2-docker 拉下来之后&#xff0c;假如是Windows系统&#xff0c;需要使用XLaunch用于提供X11…

面试大杂烩之kafka

面试这个领域最近环境不行&#xff0c;所以卷起来流量挺大 关于K8s 其实看我之前的博客&#xff0c;k8s刚有点苗头的时候我就研究过&#xff0c;然后工作的时候间接接触 也自己玩过 但是用的不多就忘记了&#xff0c;正苦于不知道写什么&#xff0c;水一篇 用来面试应该是够了…

C++ | Leetcode C++题解之第111题二叉树的最小深度

题目&#xff1a; 题解&#xff1a; class Solution { public:int minDepth(TreeNode *root) {if (root nullptr) {return 0;}queue<pair<TreeNode *, int> > que;que.emplace(root, 1);while (!que.empty()) {TreeNode *node que.front().first;int depth que…

huggingface 笔记:PretrainModel

1 from_pretrained 从预训练模型配置中实例化一个 PyTorch 预训练模型默认情况下&#xff0c;模型使用 model.eval() 设置为评估模式&#xff08;Dropout 模块被禁用&#xff09; 要训练模型&#xff0c;应该首先使用 model.train() 将其设置回训练模式 1.1 主要参数 pretra…

java 子类继承父类

为什么需要继承 我现在要有两个类一个 一个是小学生&#xff0c;一个是大学生 代码 小学生 package b; public class encapsulatio{public String name;public int age;public double score;public void setscore (double score) {this.scorescore;}public void testing() {S…

(三)MySQL 索引

欢迎访问 什么是索引&#xff1f; 提高查询效率的一种数据结构&#xff0c;索引是数据的目录 索引的分类 按「数据结构」分类&#xff1a;Btree索引、Hash索引、Full-text索引。按「物理存储」分类&#xff1a;聚簇索引、二级索引。按「字段特性」分类&#xff1a;主键索引…

Spring6 对 集成MyBatis 开发运用(附有详细的操作步骤)

详细实现操作步骤 具体实现内容&#xff1a;我们运用 Spring6 和 MyBatis 实现一个转账操作(该转账操作&#xff0c;进行一个事务上的控制&#xff0c;运用 MyBatis 执行 SQL 语句)。 第一步&#xff1a;准备数据库表 使用t_act表&#xff08;账户表&#xff09; 连接数据库的…

三个有意思的链表面试题的完成

上一篇博客我们已经完成了链表的所有内容&#xff0c;那么这一篇博客我们来看一下三个特别有意思的链表题目。 **第一个题目如下&#xff1a;**相信不少朋友看到这题目就已经晕了&#xff0c;那就简单说明下这个题目&#xff0c;题目就是创建一个链表&#xff0c;其中每个节点…

Android14 - 绘制系统 - 概览

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

【vue3+elementuiplus】el-select下拉框会自动触发校验规则

场景&#xff1a;编辑弹框省份字段下拉框必填&#xff0c;触发方式change&#xff0c;有值第一次打开不会触发校验提示&#xff0c;关闭弹框再次打开触发必填校验提示&#xff0c;但是该字段有值 问题的原因是&#xff1a;在关闭弹层事件中&#xff0c;我做了resetfileds&…

SpringBoot + MybatisPlus

SpringBoot MybatisPlus 整合记录 1. 硬件软件基本信息2. 相关链接3. 通过idea快速生成一个Springboot项目4. 启动报错问题解决问题一&#xff1a;Springboot启动的时候报错提示 “没有符合条件的Bean关于Mapper类型”问题二&#xff1a;启动的时候提示需要一个Bean&#xff0…

电磁仿真--CST网格介绍

1. 简介 网格会影响仿真的准确性和速度&#xff0c;花时间理解网格化过程是很重要的。 CST 中可用的数值方法包括FIT、TLM、FEM、MoM&#xff0c;使用不同类型的网格&#xff1a; FIT和TLM&#xff1a;六面体 FEM&#xff1a;四面体、平面 MoM&#xff1a;表面 CFD&#…

深入理解与防御跨站脚本攻击(XSS):从搭建实验环境到实战演练的全面教程

跨站脚本攻击&#xff08;XSS&#xff09;是一种常见的网络攻击手段&#xff0c;它允许攻击者在受害者的浏览器中执行恶意脚本。以下是一个XSS攻击的实操教程&#xff0c;包括搭建实验环境、编写测试程序代码、挖掘和攻击XSS漏洞的步骤。 搭建实验环境 1. 安装DVWA&#xff…