Leetcode---361周赛

题目列表

2843. 统计对称整数的数目

2844. 生成特殊数字的最少操作

2845. 统计趣味子数组的数目

2846. 边权重均等查询

一、统计对称整数的数目

 这题看一眼数据范围,直接就可以开始暴力求解了,按照题目要求模拟就行,代码如下

class Solution {
public:int countSymmetricIntegers(int low, int high) {int ans=0;for(int i=low;i<=high;i++){string s=to_string(i);if(s.size()%2)continue;int m=s.size()/2;int diff=0;for(int j=0;j<m;j++)diff+=(s[j]-s[j+m]);if(diff==0)ans++;}return ans;}
};

二、生成特殊数字的最小操作数

这题其实也不难,只要知道25的倍数的特点就行,即末尾两位为00,25 ,50,75的数字,题目要求最小操作数,就是在这四种情况中找到操作数最小的,当然还要注意0也能被25的整除,所以当不满足前面四种情况时, 还要考虑数字中是否包含0,如果有返回n-1,如果没有返回n。

代码如下

class Solution {
public:int minimumOperations(string num) {int n=num.size();function<int(string)>f=[&](string s)->int{size_t pos=num.rfind(s[1]);if(pos==-1||pos==0)return n;pos=num.rfind(s[0],pos-1);if(pos==-1)return n;return n-pos-2;};int ret1=min(min(f("00"),f("25")),min(f("75"),f("50")));int ret2=n-(num.find('0')!=-1);return min(ret1,ret2);}
};

三、统计趣味子数组的数目

求满足条件的子数组的数量,一般都是用前缀和+哈希表,这题前缀和是求满足nums[i]%modulo=k的子数组的数量,这里有一些求余运算的数学知识,如下

假设s[ ]为前缀和数组,i<j,且(s[j]-s[i])%m=k,

那么s[j]%m-s[i]%m=k,即s[i]%m=s[j]%m-k,这里有一个细节要注意,s[j]%m-s[i]%m可能小于0,这样就需要+m之后再%m,才能得到正确的取模值,即s[j]%m-s[i]%m+m=k,s[i]%m=s[j]%m-k+m

综上所诉:无论s[j]%m-s[i]%m结果是正是负,s[i]%m=(s[j]%m-k+m)%m

 所以,哈希表只用记录s%m之后的值的数量即可

 代码如下

class Solution {
public:long long countInterestingSubarrays(vector<int>& nums, int m, int k) {long long ans=0;int s=0;unordered_map<int,int>hash;hash[0]=1;//这里要注意!!!,代表没有元素时,余数为0的情况for(auto x:nums){s+=(x%m==k);s%=m;ans+=hash[(s-k+m)%m];hash[s%m]++;}return ans;}
};

四、边权重均等查询

 思路如下:

代码如下 

class Solution {
public:vector<int> minOperationsQueries(int n, vector<vector<int>>& edges, vector<vector<int>>& queries) {//创建矩阵--记录每个点所连接的点和权值vector<vector<pair<int,int>>>g(n);for(auto& e:edges){int x=e[0],y=e[1],w=e[2]-1;g[x].push_back({y,w});g[y].push_back({x,w});}int m=32-__builtin_clz(n);//得到前导0的个数int cnt[n][m][26];memset(cnt,0,sizeof(cnt));int pa[n][m];memset(pa,-1,sizeof(pa));vector<int>depth(n);//记录每个点的深度function<void(int,int)> dfs=[&](int x,int father){pa[x][0]=father;for(auto [y,w]: g[x]){if(y!=father){cnt[y][0][w]=1;depth[y]=depth[x]+1;dfs(y,x);}}};dfs(0,-1);//倍增for(int i=1;i<m;i++){for(int j=0;j<n;j++){int p=pa[j][i-1];if(p!=-1){pa[j][i]=pa[p][i-1];for(int k=0;k<26;k++){cnt[j][i][k]=cnt[j][i-1][k]+cnt[p][i-1][k];}}}}vector<int> ans;for(auto&e:queries){int a=e[0],b=e[1];int len=depth[a]+depth[b];if(depth[a]>depth[b])swap(a,b);int cw[26]{};//让x和y在同一高度for(int k=depth[b]-depth[a];k;k&=k-1){int idx=__builtin_ctz(k);int p=pa[b][idx];for(int j=0;j<26;j++)cw[j]+=cnt[b][idx][j];b=p;}//同时向上跳if(a!=b){for(int i=m-1;i>=0;i--){int A=pa[a][i],B=pa[b][i];if(A!=B){for(int k=0;k<26;k++){cw[k]+=cnt[a][i][k]+cnt[b][i][k];}a=A,b=B;}}//跳完之后,还在LAC下面一层for(int k=0;k<26;k++){cw[k]+=cnt[a][0][k]+cnt[b][0][k];}a=pa[a][0];}int lca=a;len-=depth[lca]*2;ans.push_back(len-*max_element(cw,cw+26));}return ans;}
};

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

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

相关文章

安装K8s基础环境软件(二)

所有节点执行 1、安装docker sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin systemctl…

19 螺旋矩阵

螺旋矩阵 题解1 循环&#xff08;4个标志——根据顺时针&#xff09;题解2 方向 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 提示&#xff1a; - m matrix.length - n matrix[i].length - 1 < m, n <…

机器学习——boosting之提升树

提升树和adaboost基本流程是相似的 我看到提升树的时候&#xff0c;懵了 这…跟adaboost有啥区别&#xff1f;&#xff1f;&#xff1f; 直到看到有个up主说了&#xff0c;我才稍微懂 相当于&#xff0c;我在adaboost里的弱分类器&#xff0c;换成CART决策树就好了呗&#xff1…

欧科云链与HashKey Exchange达成合作,助力香港虚拟资产合规化

继8月10日 欧科云链 与 华为云 达成合作之后&#xff0c; 今天&#xff0c;欧科云链 又与 Hashkey Exchange 共同宣布正式达成合作&#xff01; 这次与Hashkey达成合作&#xff0c;双方又将在Web3行业中谱写怎样的故事&#xff1f; 9月6日&#xff0c;欧科云链控股有限公司&…

python关闭指定进程以excel为例

先说下环境&#xff1a; Excel版本&#xff1a; Python2.7.13和Python3.10.4并存。 2、打开两个excel工作簿 看进程是这样的&#xff1a; 3、用python编程kill进程 # -*- coding: utf-8 -*- import os proc_nameEXCEL.EXE if __name__ __main__:os.system(taskkill /im {} /…

CentOS 8 通过YUM方式升级最新内核

CentOS 8 通过YUM方式升级最新内核 查看当前内核 uname -r 4.18.0-193.6.3.el8_2.x86_64导入 ELRepo 仓库的公钥&#xff1a; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org安装升级内核相关的yum源仓库(安装 ELRepo 仓库的 yum 源) yum install https://www…

idea:java: Compilation failed: internal java compiler error

java: Compilation failed: internal java compiler error错误 检查下面2个即可&#xff1a;

bit、bin 、mcs文件区别

FPGA里面的可执行文件都涉及到 *.bit&#xff0c; *.mcs&#xff0c; *.bin 和 *.elf。 bit文件 bit 文件一般用于JTAG在线进行调试的时候&#xff0c;是把bit文件是烧写到FPGA中进行在线调试。 bin文件 bin 文件是二进制文件&#xff0c;按顺序只包含原始字节流&#xff0c…

基于云计算的区域LIS系统系统源码

在医疗机构内部&#xff0c;院内实验室主要负责本院临床科室的检验&#xff0c;院内LIS系统必须满足实验室日常的标本处理入库、仪器联机、检验结果处理、报告打印、报告发布、检验信息统计、检验信息报告发布、标本流程、外部医疗机构检验报告调阅等工作。 在医疗机构间&#…

Ab3d.DXEngine 6.0 Crack 2023

Ab3d.DXEngine 不是另一个游戏引擎&#xff08;如Unity&#xff09;&#xff0c;它强迫您使用其游戏编辑器、其架构&#xff0c;并且需要许多技巧和窍门才能在标准 .Net 应用程序中使用。Ab3d.DXEngine 是一个新的渲染引擎&#xff0c;它是从头开始构建的&#xff0c;旨在用于标…

antd-vue - - - - - select自定义渲染[封装select组件]

select自定义渲染[封装select组件] 1. 期望效果2. 代码展示 1. 期望效果 标签值和option展示不一致&#xff01; 2. 代码展示 官网地址:【antd-vue select】 封装的select组件&#xff1a; <template><a-form ref"refForm" :model"selectConfig&…

黑马JVM总结(三)

&#xff08;1&#xff09;栈内存溢出 方法的递归调用&#xff0c;没有设置正确的结束条件&#xff0c;栈会有用完的一天&#xff0c;导致栈内存溢出 可以修改栈的大小&#xff1a; 再次运行&#xff1a;减少了次数 案例二&#xff1a; 两个类的循环应用问题&#xff0c;导致Js…

【虹科案例】​使用虹科数字化仪测量遥远恒星的直径

加那利群岛拉帕尔马岛的 MAGIC 望远镜是为了观测发射高能伽马射线的宇宙物体&#xff08;即超新星或黑洞&#xff09;而建造的。天文学家使用双望远镜测量恒星的直径&#xff0c;以研究其整个生命周期的过程。对于地球上的望远镜来说&#xff0c;这是一项具有挑战性的任务&…

C++中多态的底层实现

1.先来看一波比较容易出错的题 会打印出来什么&#xff1f; 其实打印出来的是B->1;为什么呢&#xff1f;看我如何讲解的。 2.思考为什么只有引用或则指针才能触发多态 结论&#xff1a;子类赋值给父类对象切片&#xff0c;不会拷贝虚标 我听老师上面的解释是&#xff1a;如…

健康系统练习

健康系统 项目建构&#xff1a; 前后端分离&#xff0c;前端vue3&#xff0c;后端Java&#xff0c;springboot做跨域处理&#xff0c;前端将在vscode中 的tomcat下部署&#xff0c;后端将在ideal中集成的tomcat中部署 创建项目工程在ideal中直接选用springi…创建&#xff0c…

创邻科技Galaxybase助力SPG推动知识图谱应用落地

1. 知识图谱实践应用&#xff1a;从理论到落地的全景视角 知识图谱&#xff0c;作为一种先进的数据模型和信息表示策略&#xff0c;极大地提升了信息检索与分析的能力。该模型利用图结构&#xff0c;将不同领域、层次和类别的信息有机整合&#xff0c;令复杂的数据关系变得清晰…

《得帆云 AIGC+低代码PaaS平台系列白皮书》-主流OA集成应用

近年来&#xff0c;随着国内外的信息技术发展日益迅速&#xff0c;无论是企业的业务模式&#xff0c;还是企业的人员管理&#xff0c;都在不断发展变化&#xff0c;OA系统作为公司的核心协调系统&#xff0c;必须能够及时响应公司的发展&#xff0c;实现与企业内部各种业务系统…

LeetCode刷题笔记【27】:贪心算法专题-5(无重叠区间、划分字母区间、合并区间)

文章目录 前置知识435. 无重叠区间题目描述参考<452. 用最少数量的箭引爆气球>, 间接求解直接求"重叠区间数量" 763.划分字母区间题目描述贪心 - 建立"最后一个当前字母"数组优化marker创建的过程 56. 合并区间题目描述解题思路代码① 如果有重合就合…

PostGreSQL:时间戳时区问题

时间|日期类型 PostGreSQL数据库内置的时间类型如下&#xff0c;注意到&#xff1a;内置的时间类型被分为了with time zone-带时区、without time zone-不带时区两种类型&#xff0c; time、timestamp和interval都可以接受一个可选的精度值 p&#xff08;取值&#xff1a;0-6&a…

hadoop伪分布模式配置

1、修改/usr/local/hadoop/etc/hadoop/core-site.xml和/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件 core-site.xml内容 <configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><descr…