第 367 场 LeetCode 周赛题解

A 找出满足差值条件的下标 I

在这里插入图片描述

模拟

class Solution {
public:vector<int> findIndices(vector<int> &nums, int indexDifference, int valueDifference) {int n = nums.size();for (int i = 0; i < n; i++)for (int j = 0; j <= i; j++)if (i - j >= indexDifference && abs(nums[i] - nums[j]) >= valueDifference)return {i, j};return {-1, -1};}
};

B 最短且字典序最小的美丽子字符串

在这里插入图片描述

枚举:先枚举美丽子字符串的长度以求其最短长度 l e n len len ,然后遍历求长为 l e n len len 的字典序最小的美丽子字符串。

class Solution {
public:string shortestBeautifulSubstring(string s, int k) {int n = s.size();vector<int> ps(n + 1);//前缀和for (int i = 0; i < n; i++)ps[i + 1] = ps[i] + (s[i] == '1' ? 1 : 0);for (int len = k; len <= n; len++) {int find = 0;for (int i = 0, j = i + len - 1; j < n; i++, j++) {if (ps[j + 1] - ps[i] == k)//子字符串s[i,j]中1的个数恰好等于 kfind = 1;}string res = "";if (find) {for (int i = 0, j = i + len - 1; j < n; i++, j++) {if (ps[j + 1] - ps[i] == k) {if (res.empty() || s.substr(i, len) < res)res = s.substr(i, len);}}return res;}}return "";}
};

C 找出满足差值条件的下标 II

在这里插入图片描述

前缀极值:设 j ≤ i j\le i ji ,且 i − j ≥ i n d e x D i f f e r e n c e i-j\ge indexDifference ijindexDifference,为了使 a b s ( n u m s [ i ] − n u m s [ j ] ) abs(nums[i]-nums[j]) abs(nums[i]nums[j]) 尽量大, n u m s [ i ] nums[i] nums[i] 应该尽量小或尽量大,所以预处理求出前缀极小值数组 m n mn mn m n [ i ] = a r g m i n 0 ≤ k ≤ i { n u m s [ k ] } mn[i]=argmin_{0\le k\le i} \{nums[k]\} mn[i]=argmin0ki{nums[k]} )和前缀极大值数组 m x mx mx m x [ i ] = a r g m a x 0 ≤ k ≤ i { n u m s [ k ] } mx[i]=argmax_{0\le k\le i} \{nums[k]\} mx[i]=argmax0ki{nums[k]} ),然后枚举 i i i

class Solution {
public:vector<int> findIndices(vector<int> &nums, int indexDifference, int valueDifference) {int n = nums.size();int mx[n], mn[n];mx[0] = 0;mn[0] = 0;for (int i = 1; i < n; i++) {mx[i] = nums[mx[i - 1]] > nums[i] ? mx[i - 1] : i;mn[i] = nums[mn[i - 1]] < nums[i] ? mn[i - 1] : i;}for (int i = 0; i < n; i++) {if (i - indexDifference >= 0) {if (abs(nums[i] - nums[mx[i - indexDifference]]) >= valueDifference)return {i, mx[i - indexDifference]};if (abs(nums[i] - nums[mn[i - indexDifference]]) >= valueDifference)return {i, mn[i - indexDifference]};}}return {-1, -1};}
};

D 构造乘积矩阵

在这里插入图片描述

前后缀处理:设 p r e [ i ] pre[i] pre[i] 为前 i + 1 i+1 i+1 行元素之积,设 s u f [ i ] suf[i] suf[i] 为后 g r i d . s i z e ( ) − i grid.size()-i grid.size()i 行元素之积,设 l e f t [ i ] [ j ] left[i][j] left[i][j] 为第 i i i 行前 j + 1 j+1 j+1
元素之积,设 r i g h t [ i ] [ j ] right[i][j] right[i][j] 为第 i i i 行后 g r i d [ 0 ] . s i z e ( ) − j grid[0].size()-j grid[0].size()j 个元素之积,则 p [ i ] [ j ] = p r e [ i − 1 ] × s u f [ i + 1 ] × l e f t [ i ] [ j − 1 ] × r i g h t [ i ] [ j + 1 ] p[i][j]=pre[i-1]\times suf[i+1] \times left[i][j-1]\times right[i][j+1] p[i][j]=pre[i1]×suf[i+1]×left[i][j1]×right[i][j+1]

class Solution {
public:using ll = long long;vector<vector<int>> constructProductMatrix(vector<vector<int>> &grid) {int m = grid.size(), n = grid[0].size();int mod = 12345;vector<vector<int>> res(m, vector<int>(n));vector<ll> row(m, 1), pre(m, 1), suf(m, 1);for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++)row[i] = row[i] * grid[i][j] % mod;pre[i] = i != 0 ? pre[i - 1] * row[i] % mod : row[i];}for (int i = m - 1; i >= 0; i--)suf[i] = i != m - 1 ? suf[i + 1] * row[i] % mod : row[i];vector<ll> left(n), right(n);for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++)left[j] = j != 0 ? left[j - 1] * grid[i][j] % mod : grid[i][j];for (int j = n - 1; j >= 0; j--)right[j] = j != n - 1 ? right[j + 1] * grid[i][j] % mod : grid[i][j];int other = (i != 0 ? pre[i - 1] : 1) * (i != m - 1 ? suf[i + 1] : 1) % mod;for (int j = 0; j < n; j++)res[i][j] = other * (j != 0 ? left[j - 1] : 1) % mod * (j != n - 1 ? right[j + 1] : 1) % mod;}return res;}
};

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

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

相关文章

软件测试的调用接口怎么调用,逻辑是什么?

一、什么是接口测试&#xff1f; 接口测试是测试系统组件之间接口的测试。接口主要用于检测外部系统和内部子系统之间的交互点。测试的重点是检查数据交换、传输、控制和管理过程&#xff0c;以及系统之间的相互逻辑依赖。 二、为什么要做接口测试&#xff1f; 在淘宝系统的历…

Go编程:使用 Colly 库下载Reddit网站的图像

概述 Reddit是一个社交新闻网站&#xff0c;用户可以发布各种主题的内容&#xff0c;包括图片。本文将介绍如何使用Go语言和Colly库编写一个简单的爬虫程序&#xff0c;从Reddit网站上下载指定主题的图片&#xff0c;并保存到本地文件夹中。为了避免被目标网站反爬&#xff0c…

C++入门篇(3)---引用

1.引用 你有没有被人起过外号?比如身边的朋友,喊他的时候不会叫他的全名,像我很好的朋友,我一般都喜欢叫他"阿威",而不会去称呼全名.我叫他"阿威",他还是他没有什么问题. 这里新登场的引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&am…

数据结构---二叉树

树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 树形结构中&#xff0c;子树之间不能有交集&#xff0c;…

1.Vue-在独立页面实现Vue的增删改查

题记 在独立页面实现Vue的增删改查&#xff0c;以下是具体的代码&#xff0c;和操作流程。 编写index.html页面 index.html文件如下&#xff1a; <!DOCTYPE html> <html> <head><title>Vue CRUD Example</title><!--在线导入vue文件-->&l…

如何在自动化测试中使用MitmProxy获取数据返回?

背景介绍 当我们在接口或UI自动化项目中&#xff0c;常常会出现这种现象——明明是正常请求&#xff0c;却无法获取到想要的数据返回。 比如&#xff1a; 场景A&#xff1a;页面是动态数据&#xff0c;第一次进入页面获取到的数据&#xff0c;和下次进入页面获取到的数据完全…

ASEMI整流桥GBJ2510参数:拆析其关键性能特点

编辑-Z 在众多的电力电子元件中&#xff0c;GBJ2510整流桥以其高效能和可靠性赢得了工业领域的广泛认可。这款设备是在电力系统、直流电源等一系列设备中不可或缺的组件。本文将详细反析GBJ2510整流桥参数的关键性能特点&#xff0c;以帮助用户更加全面地理解和使用这种电子设…

Blender:制作一个变形动画

就是一个球逐渐地变为一个立方体 首先创建一个球和一个立方体 然后把两个物体放在一起&#xff0c;放缩球&#xff0c;让球包含立方体 之后选中球&#xff0c;为其添加修改器&#xff0c;缩裹 在这里选择缩裹对象为立方体 然后在应用下拉箭头中选择“应用为形态键” 下一步选中…

尚硅谷Flink(二)DStream API

目录 &#x1f320;不会点 &#x1fa90;DataStream API ​编辑 &#x1f320; 执行环境 创建执行环境 执行模式 触发程序执行 &#x1f320;源算子 准备基础类型 从集合中读取数据 从文件读取数据 从 Socket 读取数据 从 Kafka 读取数据 &#xff08;没学过&#xff09; …

【MATLAB-Retinex图像增强算法的去雾技术】

续&#xff1a;【MATLAB-基于直方图优化的图像去雾技术】 【MATLAB-Retinex图像增强算法的去雾技术】 1 原图2 MATLAB实现代码3 结果图示 参考书籍&#xff1a;计算机视觉与深度学习实战:以MATLAB、Python为工具&#xff0c; 主编&#xff1a;刘衍琦, 詹福宇&#xff0c; 王德建…

【ElasticSearch】使用 Java 客户端 RestClient 实现对文档的查询操作,以及对搜索结果的排序、分页、高亮处理

文章目录 前言&#xff1a;RestClient 查询文档的 RestAPI一、全文检索查询1.1 match_all 查询1.2 match 查询1.3 multi_match 查询 二、精确查询2.1 term 查询2.2 range 查询 三、复合查询&#xff1a;Boolean 查询与 function score 查询的综合案例四、对查询结果的处理4.1 将…

ArcGIS笔记5_生成栅格文件时保存报错怎么办

本文目录 前言Step 1 直接保存到指定文件夹会报错Step 2 先保存到默认位置再数据导出到指定文件夹 前言 有时生成栅格文件时&#xff0c;保存在自定义指定的文件夹内会提示出错&#xff0c;而保存到默认位置则没有问题。因此可以通过先保存到默认位置&#xff0c;再数据导出到…

【Eclipse】设置自动提示

前言&#xff1a; eclipse默认有个快捷键&#xff1a;alt /就可以弹出自动提示&#xff0c;但是这样也太麻烦啦&#xff01;每次都需要手动按这个快捷键&#xff0c;下面给大家介绍的是&#xff1a;如何设置敲的过程中就会出现自动提示的教程&#xff01; 先按路线找到需要的页…

来入门一下C语言打印Hello World

&#x1f4da;目录 安装程序官网下载软件启动程序运行代码解决乱码 安装环境&#xff08;必看&#xff09;IntelliJ Clion 环境执行运行的exe出问题了安装MinGW官网&#xff08;太慢了跳过&#xff09;Clion软件的MinGW 在这里插入图片描述 ![在这里插入图片描述](https://img-…

OpenAI开放gpt-3.5turbo微调fine-tuning测试教程

文章目录 openai微调 fine-tuning介绍openai微调地址jsonl格式数据集准备点击上传文件 openai微调 fine-tuning介绍 openai微调地址 网址&#xff1a;https://platform.openai.com/finetune jsonl格式数据集准备 使用Chinese-medical-dialogue-data数据集git clone进行下载 …

18.(开发工具篇Gitlab)Git如何回退到指定版本

首先: 使用git log命令查看提交历史,找到想要回退的版本的commit id. 使用git reset命令 第一步:git reset --hard 命令是强制回到某一个版本。执行后本地工程回退到该版本。 第二步:利用git push -f命令强制推到远程 如下所示: 优点:干净利落,回滚后完全回到最初状态…

C# 图解教程 第5版 —— 第4章 类型、存储和变量

文章目录 4.1 C# 程序是一组类型声明4.2 类型是一种模板&#xff08;*&#xff09;4.3 实例化类型4.4 数据成员和函数成员4.5 预定义类型4.6 用户定义类型4.7 堆和栈&#xff08;*&#xff09;4.8 值类型和引用类型4.9 变量4.9.1 变量声明4.9.2 多变量声明&#xff08;*&#x…

【LeetCode】每日一题两数之和寻找正序数组的中位数找出字符串中第一个匹配项的下标在排序数组中查找元素的第一个和最后一个位置

主页点击直达&#xff1a;个人主页 我的小仓库&#xff1a;代码仓库 C语言偷着笑&#xff1a;C语言专栏 数据结构挨打小记&#xff1a;初阶数据结构专栏 Linux被操作记&#xff1a;Linux专栏 LeetCode刷题掉发记&#xff1a;LeetCode刷题 算法&#xff1a;算法专栏 C头…

iCloud涨价不用慌!学会使用群晖生态将本地SSD“上云”

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是想使用群晖生态软件&#xff0c;就必须要在服务端安装群晖系统&#xff0c;具体如何安装群晖虚拟机请参考&#xff1a; 1. 安装并配置synology drive1.1 安装群辉drive套件1.2 在局域…

【node】nodemailer配置163、qq等邮件服务指南

上一章 【node】发送邮件及附件简要使用说明 邮箱配置 参数配置参考如下&#xff1a; let transporter nodemailer.createTransport({host: smtp.qq.com,port: 465,secure: true,auth: {user: **********,pass: your-password} });邮箱服务提供商的要求&#xff0c;配置SM…