第 374 场 LeetCode 周赛题解

A 找出峰值

在这里插入图片描述

枚举

class Solution {
public:vector<int> findPeaks(vector<int> &mountain) {int n = mountain.size();vector<int> res;for (int i = 1; i < n - 1; i++)if (mountain[i] > mountain[i - 1] && mountain[i] > mountain[i + 1])res.push_back(i);return res;}
};

B 需要添加的硬币的最小数量

在这里插入图片描述

贪心:对 c o i n s coins coins 升序排序,枚举 c o i n s [ i ] coins[i] coins[i] ,设当前已经可获得 [ 0 , r e a c h ] [0,reach] [0,reach] 范围内的任意整数金额,若 c o i n s [ i ] ≤ r e a c h + 1 coins[i] \le reach + 1 coins[i]reach+1 ,则由 c o i n s [ 0 , i ] coins[0,i] coins[0,i] 的子序列可得到 [ 0 , r e a c h + c o i n s [ i ] ] [0,reach+coins[i]] [0,reach+coins[i]] 范围内的任意整数金额度,否则需要添加一个尽可能大的硬币 r e a c h + 1 reach + 1 reach+1

class Solution {
public:int minimumAddedCoins(vector<int> &coins, int target) {sort(coins.begin(), coins.end());int res = 0;int e, i, reach;for (e = 1, i = 0, reach = 0; reach < target && i < coins.size();) {if (coins[i] <= reach + 1) {reach += coins[i++];} else {res++;reach += reach + 1;}}for (; reach < target;) {res++;reach += reach + 1;}return res;}
};

C 统计完全子字符串

在这里插入图片描述

枚举 + 前缀和:首先用条件2将 w o r d word word 划分成若干满足子字符串,使得各子字符串内部任意相邻字符满足条件2,然后只需在各个子字符串中找满足条件1的子字符串,这样的字符串的长度只能是 k , 2 k , ⋯ , 26 k k,2k,\cdots,26k k,2k,,26k 其中之一,枚举子字符串可能的长度 l e n len len,然后滑动窗口枚举场长为 l e n len len 的子字符串,用前缀和判断在该子串中的字符数量是否为 k k k

class Solution {
public:int cmp(const string &s, int k) {int n = s.size();int pre[n + 1][26];//前缀和for (int j = 0; j < 26; j++)pre[0][j] = 0;for (int i = 0; i < n; i++)for (int j = 0; j < 26; j++)pre[i + 1][j] = pre[i][j] + (s[i] - 'a' == j ? 1 : 0);int res = 0;for (int len = k; len <= s.size() && len <= 26 * k; len += k) {for (int l = 0, r = len - 1; r < n; l++, r++) {//子串s[l,r]int can = 1;for (int i = 0; i < 26; i++) {if (pre[r + 1][i] - pre[l][i] != 0 && pre[r + 1][i] - pre[l][i] != k) {can = 0;break;}}if (can)res++;}}return res;}int countCompleteSubstrings(string word, int k) {int res = 0;for (int i = 0, j = 0, n = word.size(); i < n;) {while (j + 1 < n && abs(word[j + 1] - word[j]) <= 2)j++;res += cmp(word.substr(i, j - i + 1), k);i = ++j;}return res;}
};

D 统计感冒序列的数目

在这里插入图片描述
在这里插入图片描述

计数 + 逆元:设以感冒的人为间隔,未感冒的人可以划分成若干人数为 a i a_i ai 的组: a 1 , ⋯ , a k a_1,\cdots,a_k a1,,ak,总序列数为: ( ∑ a i ) ! ∏ a i ! × ∏ f ( a i ) \frac {(\sum a_i)!} {\prod a_i!} \times \prod f(a_i) ai!(ai)!×f(ai) ,其中当 a i a_i ai 不是与边界相邻的组时 f ( a i ) = 2 a i − 1 f(a_i)=2^{a_i-1} f(ai)=2ai1 ,否则 f ( a i ) = 1 f(a_i)=1 f(ai)=1

class Solution {
public:using ll = long long;ll mod = 1e9 + 7;ll fpow(ll x, ll n) {//快速幂 x^nll res = 1;for (ll e = x; n; e = e * e % mod, n >>= 1)if (n & 1)res = res * e % mod;return res;}ll inv(ll x) {//x 在 mod 下的匿元 return fpow(x, mod - 2);}int numberOfSequence(int n, vector<int> &sick) {vector<ll> fact(n + 1, 1), f2(n + 1, 1);for (int i = 1; i <= n; i++) {fact[i] = fact[i - 1] * i % mod;f2[i] = f2[i - 1] * 2 % mod;}int res = 1;int m = sick.size();int s = 0;if (sick[0] != 0) {//与左边界相邻的组s += sick[0];res = res * inv(fact[sick[0]]) % mod;}if (sick[m - 1] != n - 1) {//与右边界相邻的组s += n - 1 - sick[m - 1];res = res * inv(fact[n - 1 - sick[m - 1]]) % mod;}for (int i = 0; i < m - 1; i++)//枚举中间的各个分组if (sick[i + 1] != sick[i] + 1) {int t = sick[i + 1] - sick[i] - 1;s += t;res = res * inv(fact[t]) % mod;res = res * f2[t - 1] % mod;}res = res * fact[s] % mod;return (res + mod) % mod;}
};

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

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

相关文章

人工智能 - 人脸识别:发展历史、技术全解与实战

目录 一、人脸识别技术的发展历程早期探索&#xff1a;20世纪60至80年代技术价值点&#xff1a; 自动化与算法化&#xff1a;20世纪90年代技术价值点&#xff1a; 深度学习的革命&#xff1a;21世纪初至今技术价值点&#xff1a; 二、几何特征方法详解与实战几何特征方法的原理…

阅读笔记|A Survey of Large Language Models

阅读笔记 模型选择&#xff1a;是否一定要选择参数量巨大的模型&#xff1f;如果需要更好的泛化能力&#xff0c;用于处理非单一的任务&#xff0c;例如对话&#xff0c;则可用选更大的模型&#xff1b;而对于单一明确的任务&#xff0c;则不一定越大越好&#xff0c;参数小一…

C++11--右值引用

目录 基本概念 左值和右值 左值引用和右值引用 右值引用使用场景和意义 左值引用使用场景 左值引用的短板 右值引用和移动语义 右值引用引用左值 右值引用的其他使用场景 完美转发 万能引用 完美转发保持值得属性 完美转发使用得场景 基本概念 左值和右值 什么…

前端面试灵魂提问(1)

1.自我介绍 2.在实习中&#xff0c;你负责那一模块 3.any与unknow的异同 相同点&#xff1a;any和unkonwn 可以接受任何值 不同点&#xff1a;any会丢掉类型限制&#xff0c;可以用any 类型的变量随意做任何事情。unknown 变量会强制执行类型检查&#xff0c;所以在使用一个…

Linux线程安全,死锁,生产消费模型,线程池

目录 1.可重入和线程安全 2.死锁 死锁四个必要条件&#xff1a; 避免死锁 3. Linux线程同步 线程同步 生产消费模型的概念理解&#xff08;321原则&#xff09; 生产消费模型都有哪些好处。 串行、并发、并行 条件变量 4.信号量 5.线程池 人的一生为什么要坚持&#xff1…

【ArcGIS Pro微课1000例】0043:深度学习--框架库安装

ArcGIS Pro 中的所有深度学习地理处理工具都要求安装支持的深度学习框架库。 文章目录 深度学习框架库下载深度学习框架库安装注意事项深度学习框架库下载 由于是python开发,可以采用安装包与Pip两种方式安装,本文讲解采用安装包安装。 点击深度学习框架库下载,打开网站,…

大文件分片上传、分片进度以及整体进度、断点续传(一)

大文件分片上传 效果展示 前端 思路 前端的思路&#xff1a;将大文件切分成多个小文件&#xff0c;然后并发给后端。 页面构建 先在页面上写几个组件用来获取文件。 <body><input type"file" id"file" /><button id"uploadButton…

后端项目连接数据库-添加MyBatis依赖并检测是否成功

一.在pom.xml添加Mybatis相关依赖 在Spring Boot项目中&#xff0c;编译时会自动加载项目依赖&#xff0c;然后使用依赖包。 需要在根目录下pom.xml文件中添加Mybatis依赖项 <!-- Mybatis整合Spring Boot的依赖项 --> <dependency><groupId>org.mybatis.s…

解决git action发布失败报错:Error: Resource not accessible by integration

现象&#xff1a; 网上说的解决方法都是什么到github个人中心setting里面的action设置里面去找。 可这玩意根本就没有&#xff01; 正确解决办法&#xff1a; 在你的仓库页面&#xff0c;注意是仓库页面的setting里面&#xff1a; Actions> General>Workflow permisss…

每天一点python——day84

#每天一点Python——84 #异常处理机制try—except—else #异常处理机制try—except—else如果try块中没有抛出异常&#xff0c;则执行else块&#xff0c;如果try中抛出异常&#xff0c;则执行except块#示例&#xff1a; try:a int(input(请输入第一个整数&#xff1a;))b in…

PostgreSQL有意思的现象:支持不带列的表

1、前言 以前从没有试过建一张表&#xff0c;不带任何列。在PG中却支持这种语法。这是个什么鬼? 最近&#xff0c;把PG源码扒了下&#xff0c;简单浏览了下最近的一些merge。其中有一个fix&#xff1a; eeb0ebad79 ("Fix the initial sync tables with no columns.&qu…

计网Lesson3 - 计算机网络评价指标与封包解包

文章目录 计算机网络的性能指标1. 速率2. 带宽3. 吞吐量4. 时延5. 时延带宽积6. 往返时间7. 利用率8. 数据的解包和封包 计算机网络的术语实体![实体](https://img-blog.csdnimg.cn/direct/cbf4ca9ed5ab4df290b5a17b4642c6a1.png)协议服务 计算机网络的性能指标 1. 速率 数据…

c语言-结构体

文章目录 1. 结构体类型的声明2 . 结构体变量的创建和初始化(1)结构体变量的创建和初始化(2)结构的特殊声明&#xff08;3&#xff09;结构的自引用&#xff08;4&#xff09;typedef和结构体 3 . 结构成员访问操作符4. 结构体传参5. 结构体内存对齐&#xff08;1&#xff09;对…

解决ant-design-vue中Select组件v-model值为空字符串不显示placeholder的bug

方法一&#xff1a; 1.找到node_modules/ant-design-vue/es/vc-select/SingleSelector.js文件 搜索renderPlacehoder方法 将其修改为 const renderPlacehoder () > {const list props.values.filter(val > val.value ! );if (list[0]) {return null}... }2.在此文件中…

Vulhub-信息泄露

1.Jetty WEB-INF 敏感信息泄露漏洞&#xff08;CVE-2021-28164&#xff09; docker-compose up -d 启动环境&#xff0c;显示8080端口被占用 修改 docker-compose.yml 中的映射端口 curl 访问 http://192.168.48.129:8090/WEB-INF/web.xml 显示404&#xff1a; 通过 %2e 绕过…

分享84个节日PPT,总有一款适合您

分享84个节日PPT&#xff0c;总有一款适合您 84个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1TSIGR8ZIytnTKmQRa0rGnw?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

【Python百练——第3练】矩形类及操作

&#x1f490;作者&#xff1a;insist-- &#x1f490;个人主页&#xff1a;insist-- 的个人主页 理想主义的花&#xff0c;最终会盛开在浪漫主义的土壤里&#xff0c;我们的热情永远不会熄灭&#xff0c;在现实平凡中&#xff0c;我们终将上岸&#xff0c;阳光万里 ❤️欢迎点…

[蓝桥杯 2019 省 B] 特别数的和-C语言的解法

小明对数位中含有 2、0、1、9 的数字很感兴趣&#xff08;不包括前导 0&#xff09;&#xff0c;在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40&#xff0c;共 28 个&#xff0c;他们的和是 574。 请问&#xff0c;在 1 到 n 中&#xff0c;所有这样的数的和是多少&…

【ArcGIS Pro微课1000例】0044:深度学习--面部模糊(马赛克)

本文讲解ArcGIS Pro中通过深度学习工具实现人脸面部模糊,起到马赛克的作用。 文章目录 一、效果对比二、工具介绍三、案例实现一、效果对比 原始图片: 深度学习后的模糊照片: 二、工具介绍 本工具为ArcGIS Pro工具箱中的深度学习工具中的:使用深度学习分类像素,如下所示…

基于单片机智能液位水位监测控制系统

**单片机设计介绍&#xff0c; 基于单片机智能液位水位监测控制系统 文章目录 一 概要特点应用场景工作原理实现方式 系统功能实时监测控制调节报警功能数据记录与分析 总结 二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 ## 系统介绍 基于单片机…