第 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.mzph.cn/news/193155.shtml

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

相关文章

登录界面(flex布局练习)

练习&#xff1a;登录界面在我们网页制作的过程中经常遇见&#xff0c;所以请你编写一个界面联系一下&#xff0c;这个可以增加一些动画或者是其他的效果&#xff0c;当然越帅越好。请使用flex或者其他布局练习 例如&#xff1a; 代码 <!DOCTYPE html> <html lang…

SLAM ORB-SLAM2(10)轨迹跟踪过程

SLAM ORB-SLAM2(10)轨迹跟踪过程 1. 总体过程2. ORB 特征点提取2.1. 相机数据处理2.1.1. 单目相机图像处理2.1.2. 双目相机图像处理2.1.3. RGBD相机图像处理2.2. ORB 特征点3. 地图初始化3.1. 坐标形式3.2. 坐标原点3.3. 地图尺度4. 相机位姿初始估计4.1. 关键帧4.2. 运动模型…

文件搜索神器—Everything,结合内网穿透秒变在线搜索神器!

Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问 文章目录 Everythingcpolar搭建在线资料库&#xff0c;实现随时随地访问前言1.软件安装完成后&#xff0c;打开Everything2.登录cpolar官网 设置空白数据隧道3.将空白数据隧道与本地Everything软件结合起来总结 前…

2 文本分类入门:TextCNN

论文链接&#xff1a;https://arxiv.org/pdf/1408.5882.pdf TextCNN 是一种用于文本分类的卷积神经网络模型。它在卷积神经网络的基础上进行了一些修改&#xff0c;以适应文本数据的特点。 TextCNN 的主要思想是使用一维卷积层来提取文本中的局部特征&#xff0c;并通过池化操…

2023.12.2 关于 Spring AOP 详解

目录 Spring AOP Spring AOP 常见使用场景 AOP 组成 切面&#xff08;类&#xff09; 切点&#xff08;方法&#xff09; 通知 ​编辑 前置通知&#xff08;Before&#xff09; 后置通知&#xff08;After&#xff09; 返回通知&#xff08;AfterReturning&#xff0…

龙芯loongarch64服务器编译安装maturin

前言 maturin 是一个构建和发布基于 Rust 的 Python 包的工具,但是在安装maturin的时候,会出现如下报错:error: cant find Rust compiler 这里记录问题解决过程中遇到的问题: 1、根据错误的提示需要安装Rust Compiler,首先去其官网按照官网给的解决办法提供进行安装 curl…

loguru的简单使用

详细使用&#xff1a;Table of contents — loguru documentation 【1】日志的级别 日志级别默认分为6种 1、NOTSET (0)2、DEBUG (1)3、INFO (2)4、WARNING (3)5、ERROR (4)6、CRITICAL (5) logging 执行时输出大于等于设置的日志级别的日志信息&#xff0c;如设置日…

阿里系列-淘宝接口抓取及相关问题

阿里系-淘宝接口抓取 一、安装charlse抓包工具 官方下载地址 安装证书 二、安装xposed hook框架 Xponsed简介 具体安装步骤 三、安装模块 关闭阿里系ssl验证 开启http模式 支持支付宝、淘宝、淘宝直播各个接口抓取 四、效果如下 接下去一段时间更新阿里系相关接口 文章目录 一、…

SmartSoftHelp8,代码版权保护

1.Html网页前端添加作者开发信息 2. Html网页添加版权信息 3. Css添加作者开发信息 4. JavaScript添加作者开发信息 5. C井后端代码添加作者开发信息 6. Dll内裤添加作者开发信息 7.应用程序添加开发作者信息&#xff0c;著作权&#xff0c;应用版权信息 下载地址&#…

函数柯里化

前端面试大全JavaScript函数柯里化 &#x1f31f;经典真题 &#x1f31f;什么是函数柯里化 &#x1f31f;柯里化快速入门 &#x1f31f;函数柯里化实际应用 &#x1f31f;封装通用柯里化函数 &#x1f31f;一道经典的柯里化面试题 &#x1f31f;真题详解 &#x1f31f;…

C语言结构体详解(二)(能看懂文字就能明白系列)文章很长,慢慢品尝

系列文章目录 第一章 结构体的介绍和基本使用 &#x1f31f; 个人主页&#xff1a;古德猫宁- &#x1f308; 信念如阳光&#xff0c;照亮前行的每一步 文章目录 系列文章目录&#x1f308; *信念如阳光&#xff0c;照亮前行的每一步* 前言前面一篇文章主要介绍了结构体的基础…

C语言-结构体

---------------------------- ------------------ 岁月漫长心怀热爱&#xff0c;携手共赴星辰大海 --------今天来到我们自定义类型 -----结构体的讲解 目录 结构体的类型声明和初始化 结构体的类型声明 结构体成员的直接访问 结构体成员的间接访问 嵌套结构体进行访问 使用…

基于搜索协议实现工业设备升级

目录 1、背景引入 2、技术分析 3、过程概述 4、服务器端流程 5、客户端流程 6、效果展示 7、源码 7.1 master&#xff08;主控&#xff09; 7.2 device&#xff08;设备&#xff09; 8、注意事项 1、背景引入 在工业生产中&#xff0c;设备的升级和维护是非常重要的…

一起学docker系列之十六使用Docker Compose简化容器编排

目录 1 前言2 Docker Compose是什么&#xff1f;3 Docker Compose安装步骤3.1 **下载Compose**3.2 **设置权限**3.3 **创建符号链接&#xff08;可选但建议以便使用&#xff09;** 4 Docker Compose的核心概念4.1 **YAML文件&#xff08;docker-compose.yml&#xff09;**4.2 *…

SpringBootCache缓存——j2cache

文章目录 缓存供应商变更&#xff1a;j2cache 缓存供应商变更&#xff1a;j2cache <!-- https://mvnrepository.com/artifact/net.oschina.j2cache/j2cache-core --><dependency><groupId>net.oschina.j2cache</groupId><artifactId>j2cache-cor…

【数据挖掘】国科大刘莹老师数据挖掘课程作业 —— 第三次作业

Written Part 1. 基于表 1 1 1 回答下列问题&#xff08;min_sup40%, min_conf75%&#xff09;&#xff1a; Transaction IDItems Bought0001{a, d, e}0024{a, b, c, e}0012{a, b, d, e}0031{a, c, d, e}0015{b, c, e}0022{b, d, e}0029{c, d}0040{a, b, c}0033{a, d, e}0038…

[原创]C++98升级到C++20的复习旅途-从汇编及逆向角度去分析“constexpr“关键字

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

机器视觉最全面试题总结

文章目录 1. 为什么需要做特征归一化、标准化&#xff1f;2. 常用常用的归一化和标准化的方法有哪些&#xff1f;3. 介绍一下空洞卷积的原理和作用4. 怎么判断模型是否过拟合&#xff0c;有哪些防止过拟合的策略&#xff1f;5. 除了SGD和Adam之外&#xff0c;你还知道哪些优化算…

uniapp 使用安卓模拟器运行

uniapp 启动方式有很多种,这里介绍使用模拟器启动uniapp 要使用模拟器启动uniapp肯定少不了安装模拟器(废话) 这里选着浏览器推荐的第一个模拟器mumu模拟器 下载好了mumu安装包后就是安装了,这个过于小白,就不介绍了 2. 查看模拟器的adb端口号, mumu的adb查看端口号与众不同…

6-48.日期类的设计与实现

使用重载运算符&#xff08;&#xff0c;&#xff0c;<<等&#xff09;实现日期类的操作。功能包括&#xff1a; 1&#xff09;设置日期&#xff0c;如果日期设置不符合实际&#xff0c;则设置为默认日期&#xff08;1900年1月1日&#xff09; 2&#xff09;在日期对象中…