第 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.hqwc.cn/news/194001.html

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

相关文章

数据挖掘复盘——apriori

read_csv函数返回的数据类型是Dataframe类型 对于Dataframe类型使用条件表达式 dfdf.loc[df.loc[:,0]2]df: 这是一个DataFrame对象的变量名&#xff0c;表示一个二维的表格型数据结构&#xff0c;类似于电子表格或SQL表。 df.loc[:, 0]: 这是使用DataFrame的.loc属性来进行…

牛客网刷题笔记三 寻找第K大+两数之和+合并两个排序的链表+用两个栈实现队列

算法题牛客网NC88 寻找第K大 题目&#xff1a; 思路就是做个排序&#xff0c;要求时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)&#xff0c;因此选用快排。代码&#xff1a; class Solution:def quickSort(self, a, start, end):if start > end:returnval a[start]…

《向量数据库指南》——亚马逊云科技向量数据库揭秘:点亮数据未来!

在我们讨论亚马逊云科技向量数据库之前,我们必须先搞懂向量数据库。 那么,向量数据库是什么呢?简单来说,向量数据库就是一种专门用于处理和查询向量数据的数据库。与传统数据库以表格形式组织和存储数据不同,向量数据库采用多维数值数组的形式处理和存储数据。它的主要目标…

和解电话(匿名电话)/情侣拉黑联系电话/虚拟号/虚拟中间号/拉黑联系项目代码

和解电话&#xff0c;又名匿名电话 使用中间号转接到被叫人&#xff0c;不显示呼叫人号码&#xff0c;类似美团隐私号 呼叫人A->中间号B->被叫人C 演示地址&#xff1a;微信打开(http://sms.test.4php.top/sms/phone) 实现代码如下 <section class"section&q…

CICD 持续集成与持续交付(2)

目录 gitlab 部署 jenkins 部署 配置 实时触发 自动化构建docker镜像 通过ssh插件交付任务 添加jenkins节点 RBAC pipeline jenkins结合ansible参数化构建 安装ansible 新建gitlab项目 jenkins新建项目playbook gitlab 部署 虚拟机最小需求&#xff1a;4G内存 4核cpu 下载&…

【HarmonyOS开发】配置开发工具DevEco Studio

1、下载 注意&#xff1a; 1、安装过程中&#xff0c;一定要自定义安装位置&#xff0c;包比较大&#xff0c;包比较大&#xff0c;包比较大&#xff01;&#xff01;&#xff01; 2、可以将该工具添加到右键中&#xff0c;否则&#xff0c;如果你的项目不是HarmonyOS&#xff…

Java工具包Hutool框架

Hutool是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML 等 JDK 方法进行封装,组成各种 Util 工具类。官网地址:https://www.hutool.cn/。 添加依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artif…

漂亮的pyqt6皮肤 PyOneDark_Qt_Widgets_Modern_GUIPublic

大家先看看界面图&#xff0c;真的很漂亮&#xff1a; github地址&#xff1a;GitHub - Wanderson-Magalhaes/PyOneDark_Qt_Widgets_Modern_GUI 作者还录了教程&#xff1a; TUTORIALS: Tutorial 01: https://youtu.be/QQGlTGYCMg0 Tutorial 02: https://youtu.be/LwKre2proDk…

遥感数据

在研究中&#xff0c;我们常需要遥感数据。在下面的网站中&#xff0c;可以得到遥感数据。 EarthExplorer (usgs.gov)https://earthexplorer.usgs.gov/登陆网站&#xff1a; 通常&#xff0c;在Additional Criteria中&#xff0c;可以下载遥感数据。 不过&#xff0c;这个选项…

SpringCloud微服务注册中心:Nacos介绍,微服务注册,Ribbon通信,Ribbon负载均衡,Nacos配置管理详细介绍

微服务注册中心 注册中心可以说是微服务架构中的”通讯录“&#xff0c;它记录了服务和服务地址的映射关系。在分布式架构中&#xff0c;服务会注册到这里&#xff0c;当服务需要调用其它服务时&#xff0c;就这里找到服务的地址&#xff0c;进行调用。 微服务注册中心 服务注…

Argo Rollouts结合Service进行Blue-Green部署

删除03 部署04 rootk8s-master01:~/learning-jenkins-cicd/09-argocd-and-rollout/rollout-demos# kubectl delete -f 03-rollouts-with-prometheus-analysis.yaml rootk8s-master01:~/learning-jenkins-cicd/09-argocd-and-rollout/rollout-demos# kubectl apply -f 04-rol…

【具身智能评估2】具身视觉语言规划(EVLP)数据集基准汇总

参考论文&#xff1a;Core Challenges in Embodied Vision-Language Planning 论文作者&#xff1a;Jonathan Francis, Nariaki Kitamura, Felix Labelle, Xiaopeng Lu, Ingrid Navarro, Jean Oh 论文原文&#xff1a;https://arxiv.org/abs/2106.13948 论文出处&#xff1a;Jo…