第 372 场 LeetCode 周赛题解

A 使三个字符串相等

在这里插入图片描述

求三个串的最长公共前缀

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

B 区分黑球与白球

在这里插入图片描述

双指针:一个指针 i i i 遍历字符串,一个指针 j j j 指向下一个 0 0 0 应该移动到位置, i i i 指向 0 0 0 时更新答案同时 j + 1 j+1 j+1

class Solution {
public:long long minimumSteps(string s) {long long res = 0;for (int j = 0, i = 0; i < s.size(); i++)if (s[i] == '0') {res += i - j;j++;}return res;}
};

C 最大异或乘积

在这里插入图片描述

贪心:从高到低枚举二进制每一位 i ∈ [ 0 , n ) i\in [0,n) i[0,n),有两种情况:
1) a a a b b b 这一位相同,则存在 x x x 使得 a ∧ x a\wedge x ax b ∧ x b\wedge x bx 这一位都为 1 1 1 ;
2) a a a b b b 这一位不同,则 a ∧ x a\wedge x ax b ∧ x b\wedge x bx 中只有一个数这一位为 1 1 1 ,若当前 a ∧ x a\wedge x ax 不考虑这一位的数大于 b ∧ x b\wedge x bx 不考虑这一位的数时,这一位 1 1 1 应该给 b ∧ x b\wedge x bx ,否则给 a ∧ x a\wedge x ax

class Solution {
public:using ll = long long;int maximumXorProduct(long long a, long long b, int n) {ll mod = 1e9 + 7;ll na = a, nb = b;for (ll i = n - 1; i >= 0; i--)if ((na >> i & 1LL) == (nb >> i & 1LL)) {na |= 1LL << i;nb |= 1LL << i;} else {if ((na & (~(1LL << i))) > (nb & (~(1LL << i)))) {nb |= 1LL << i;na &= ~(1LL << i);} else {na |= 1LL << i;nb &= ~(1LL << i);}}return (na % mod * (nb % mod) % mod + mod) % mod;}
};

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

在这里插入图片描述

二分+线段树:对于一个查询 [ a , b ] [a,b] [a,b] ( a ≤ b ) (a\le b) (ab) , 有三种情况:
1) a = = b a==b a==b,答案为 a a a
2) a ≠ b a\ne b a=b ,且 h e i g h t s [ a ] < h e i g h t s [ b ] heights[a] < heights[b] heights[a]<heights[b] ,答案为 b b b
3) a ≠ b a\ne b a=b ,且 h e i g h t s [ a ] ≥ h e i g h t s [ b ] heights[a] \ge heights[b] heights[a]heights[b],答案为满足 m a x { h e i g h t s [ k ] ∣ k ∈ [ b + 1 , i ] } > h e i g h t s [ a ] max\{heights[k]\;|\; k \in [b+1,i] \}\; >heights[a] max{heights[k]k[b+1,i]}>heights[a] 的最小的 i i i ,通过线段树来维护区间最大值,然后通过二分求 i i i

class SegmentTree {
public:typedef long long ll;inline void push_down(ll index) {st[index << 1].lazy = 1;st[index << 1 | 1].lazy = 1;st[index << 1].mark = max(st[index << 1].mark, st[index].mark);st[index << 1 | 1].mark = max(st[index << 1 | 1].mark, st[index].mark);st[index << 1].s = max(st[index << 1].s, st[index].mark);st[index << 1 | 1].s = max(st[index << 1 | 1].s, st[index].mark);st[index].lazy = 0;}inline void push_up(ll index) {st[index].s = max(st[index << 1].s, st[index << 1 | 1].s);}SegmentTree(vector<int> &init_list) {st = vector<SegmentTreeNode>(init_list.size() * 4 + 10);build(init_list, 1, init_list.size());}void build(vector<int> &init_list, ll l, ll r, ll index = 1) {st[index].tl = l;st[index].tr = r;st[index].lazy = 0;st[index].mark = 0;if (l == r) {st[index].s = init_list[l - 1];} else {ll mid = (l + r) >> 1;build(init_list, l, mid, index << 1);build(init_list, mid + 1, r, index << 1 | 1);push_up(index);}}ll query(ll l, ll r, ll index = 1) {if (l <= st[index].tl and st[index].tr <= r) {return st[index].s;} else {if (st[index].lazy)push_down(index);if (r <= st[index << 1].tr)return query(l, r, index << 1);else if (l > st[index << 1].tr)return query(l, r, index << 1 | 1);return max(query(l, r, index << 1), query(l, r, index << 1 | 1));}}private:struct SegmentTreeNode {ll tl;ll tr;ll s;ll mark;int lazy;};vector<SegmentTreeNode> st;
};class Solution {
public:vector<int> leftmostBuildingQueries(vector<int> &heights, vector<vector<int>> &queries) {int n = heights.size();SegmentTree stree(heights);vector<int> res;res.reserve(queries.size());for (auto &qi: queries) {int a = min(qi[0], qi[1]), b = max(qi[0], qi[1]);if (a == b)res.push_back(a);else if (heights[a] < heights[b])res.push_back(b);else {//ha>hbint l = b + 1, r = n;while (l < r) {int mid = (l + r) / 2;if (stree.query(b + 1 + 1, mid + 1) > heights[a])r = mid;elsel = mid + 1;}if (l < n)res.push_back(l);elseres.push_back(-1);}}return res;}
};

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

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

相关文章

阿里云ESSD云盘、高效云盘和SSD云盘介绍和IOPS性能参数表

阿里云服务器系统盘或数据盘支持多种云盘类型&#xff0c;如高效云盘、ESSD Entry云盘、SSD云盘、ESSD云盘、ESSD PL-X云盘及ESSD AutoPL云盘等&#xff0c;阿里云服务器网aliyunfuwuqi.com详细介绍不同云盘说明及单盘容量、最大/最小IOPS、最大/最小吞吐量、单路随机写平均时延…

腾讯混元模型

最近腾讯的混元大模型内测,我有幸申请到了一个名额。 身为一个程序员,我想大家最关注的一定是该模型的代码和类代码能力,因为这直接关系到这个模型能帮我们解决多少问题,节约多少时间,提高多少效率。 对此,我针对工作中可能会用到的几个点进行了详细的体验。 先说结论:腾讯混元…

2024年全网最全的Jmeter+ant+jenkins实现持续集成教程

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具&#xff0c;并配置好环境变量&#xff1b;参考&#xff1a;https://www.cnblogs.com/YouJeffrey/p/16029894.html jmeter默认保存的是.jtl格式的文件&#xff0c;要设置一下bin/jmeter.properties,文件内容…

【项目】云备份系统基础功能实现

目录 一.项目介绍1.云备份认识2.服务端程序负责功能与功能模块划分3.客户端程序负责功能与功能模块划分4.开发环境 二.环境搭建1.gcc升级7.3版本2.安装jsoncpp库3.下载bundle数据压缩库4.下载httplib库 三.第三方库认识1.json(1)json认识(2)jsoncpp认识(3)json实现序列化(4)jso…

广州华锐互动VRAR:利用VR开展刑事案件公安取证培训,沉浸式体验提升实战能力

随着科技的飞速发展&#xff0c;虚拟现实(VR)技术为我们的生活和工作带来了前所未有的便利。近年来&#xff0c;VR技术在刑事案件公安取证培训中的应用逐渐显现出其独特优势。通过模拟真实的犯罪现场&#xff0c;VR技术为学员提供了沉浸式的体验&#xff0c;使他们在安全的环境…

IDEA导入jar包

通过maven导入本地包 mvn install:install-file -DfileD:\WebProject\ERP\zhixing-heyue-erp-server\zxhy-service-api\src\main\java\com\zxhy\service\api\invoice\baiwang\lib\com_baiwang_bop_sdk_outer_3_4_393.jar -DgroupIdcom.baiwang -DartifactIdbaiwang.open -Dver…

纯JS,RSA,AES,公钥,私钥生成及加解密

通过网络找的JS源文件&#xff0c;修改后使用&#xff0c;包含RSA 密匙对生成 及AES 加解密 涉及的JS源文件 下载 GitHub - cgrlancer/RSA-AES: 纯js,RSA,AES前端加解密 前端引用 import {generateRsaKeyWithPKCS8,encryptByRSA,decryptByRSA,encrypt,decrypt,testRsa} fr…

基于SSM的“鲜花”电子商务平台设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

第二证券:知名私募美股持仓曝光 科技与消费板块成“心头好”

近来&#xff0c;美国证券交易委员会&#xff08;SEC&#xff09;网站闪现&#xff0c;高毅资产、HHLR&#xff08;高瓴旗下独立二级商场基金管理人&#xff09;、景林资产和千合本钱旗下对冲基金TOP ACE&#xff0c;陆续宣告了到三季度末的美股持仓。 据私募排排网核算&#…

unexpected end of stream on

SpringCloud使用FeignClient调用第三方接口报错unexpected end of stream on ; 解决方法&#xff1a; 1.检查服务器端口是否被占用 lsof -i:端口&#xff1b; 2.nacos添加超时配置&#xff1a;

(一)RISC-V 指令集及寄存器介绍

1. RISC-V指令集介绍 RISC-V 念作 “risk-five”&#xff0c;代表着 Berkeley 所研发的第五代精简指令集。 该项目 2010 年始于加州大学伯克利&#xff08;Berkeley&#xff09;分校&#xff0c;希望选择一款 ISA用于科研和教学。经过前期多年的研究和选型&#xff0c;最终决定…

SpringBoot-集成Kafka详解

SpringBoot集成Kafka 1、构建项目 1.1、引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version> </parent> <dependenci…

毅速丨嫁接打印在模具制造中应用广泛

在模具行业中&#xff0c;3D打印随形水路已经被广泛认可&#xff0c;它可以提高冷却效率&#xff0c;从而提高产品良率。然而&#xff0c;全打印模具制造的成本相对较高&#xff0c;因为需要使用金属3D打印机和专用材料。为了节省打印成本&#xff0c;同时利用3D打印的优势&…

【PyQt小知识 - 4】:QGroupBox分组框控件 - 边框和标题设置

QGroupBox QGroupBox 是 PyQt 中的一个小部件&#xff0c;用于创建一个带有标题的组框。 可以使用 QGroupBox 将相关控件分组并添加一个标题。 以下是一个使用 QGroupBox 的示例代码&#xff08;示例一&#xff09;&#xff1a; from PyQt5.QtWidgets import * import sysa…

Centos(Linux)服务器安装Dotnet8 及 常见问题解决

1. 下载dotnet8 sdk 下载 .NET 8.0 SDK (v8.0.100) - Linux x64 Binaries 拿到 dotnet-sdk-8.0.100-linux-x64.tar.gz 文件 2. 把文件上传到 /usr/local/software 目录 mkdir -p /usr/local/software/dotnet8 把文件拷贝过去 mv dotnet-sdk-8.0.100-linux-x64.tar.gz /usr/loc…

【LeetCode】每日一题 2023_11_20 最大子数组和(dp)

文章目录 刷题前唠嗑题目&#xff1a;最大子数组和题目描述代码与解题思路 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 今天是一道 LeetCode 的经典题目&#xff0c;如果是 LeetCode 老手&#xff0c;估计都刷过&#xff0c;话是这么说&#xff0c;但咱…

探索亚马逊大语言模型:开启人工智能时代的语言创作新篇章

文章目录 前言一、大语言模型是什么&#xff1f;应用范围 二、Amazon Bedrock总结 前言 想必大家在ChatGPT的突然兴起&#xff0c;大家多多少少都会有各种各样的问题&#xff0c;比如&#xff1a;大语言模型和生成式AI有什么关系呢&#xff1f;大语言模型为什么这么火&#xf…

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…

拼图小游戏

package li;import ui.tu; //启动类 public class 主 {public static void main(String[] args) {new tu(); //创建登陆界面} }package ui;import javax.swing.*; import javax.swing.border.BevelBorder; import java.awt.event.ActionEvent; import java.awt.event.ActionLi…

腾讯微服务平台TSF学习笔记(一)--如何使用TSF的Sidecar过滤器实现mesh应用的故障注入

Mesh应用的故障注入 故障注入前世今生Envoy设置故障注入-延迟类型设置故障注入-延迟类型并带有自定义状态码总结 故障注入前世今生 故障注入是一种系统测试方法&#xff0c;通过引入故障来找到系统的bug&#xff0c;验证系统的稳健性。istio支持延迟故障注入和异常故障注入。 …