当前位置: 首页 > news >正文

第 373 场 LeetCode 周赛题解

A 循环移位后的矩阵相似检查

模拟

class Solution {
public:bool areSimilar(vector<vector<int>> &mat, int k) {int m = mat.size(), n = mat[0].size();k %= n;auto g = mat;for (int i = 0; i < m; i++)if (i & 1)rotate(mat[i].begin(), mat[i].begin() + n - k, mat[i].end());elserotate(mat[i].begin(), mat[i].begin() + k, mat[i].end());return g == mat;}
};

B 统计美丽子字符串 I

在这里插入图片描述

前缀和:枚举子数组,用前缀和记录当前子数组的元音字符数

class Solution {
public:int beautifulSubstrings(string s, int k) {int n = s.size();unordered_set<char> vo{'a', 'e', 'i', 'o', 'u'};vector<int> sv(n + 1);for (int i = 0; i < n; i++)sv[i + 1] = vo.count(s[i]) ? sv[i] + 1 : sv[i];int res = 0;for (int l = 0; l < n; l++)for (int r = l; r < n; r++)if (auto v = sv[r + 1] - sv[l];v * 2 == r - l + 1 && v * v % k == 0)res++;return res;}
};

C 交换得到字典序最小的数组

在这里插入图片描述

排序: 排序后的 n u m s nums nums 可以划分成若干子数组,其中每个子数组中相邻元素之差不超过 l i m i t limit limit ,可以通过交换得到的字典序最小的数组即为:每个子数组在原数组所在位置上按非降序排序 得到的数组

class Solution {
public:vector<int> lexicographicallySmallestArray(vector<int> &nums, int limit) {int n = nums.size();vector<pair<int, int>> li(n);for (int i = 0; i < n; i++)li[i] = {i, nums[i]};sort(li.begin(), li.end(), [](pair<int, int> &x, pair<int, int> &y) { return x.second < y.second; });//按值排序for (int i = 0, j = 0; i < n; i = ++j) {while (j + 1 < n && li[j + 1].second - li[j].second <= limit)//找到当前分组的右边界j++;vector<pair<int, int>> t{li.begin() + i, li.begin() + j + 1};sort(li.begin() + i, li.begin() + j + 1);//按原数组中下标排序for (int k = i; k <= j; k++)nums[li[k].first] = t[k - i].second;}return nums;}
};

D 统计美丽子字符串 II

在这里插入图片描述

前缀和 + 哈希:设 v k v_{k} vk 表示 s s s 长为 k k k 的前缀中的元音字符数,设 c k c_{k} ck 表示 s s s 长为 k k k 的前缀中的非元音字符数,若 s [ l , r ] s[l,r] s[l,r] 为美丽子字符串,则有 v r + 1 − v l = c r + 1 − c l v_{r+1}-v_{l}=c_{r+1}-c_{l} vr+1vl=cr+1cl , 即 v r + 1 − c r + 1 = v l − c l v_{r+1}-c_{r+1}=v_{l}-c_{l} vr+1cr+1=vlcl ,且 ( v r + 1 − v l ) 2 % k = 0 (v_{r+1}-v_{l})^2\%k=0 (vr+1vl)2%k=0 ,不妨设 w = v r + 1 − v l w=v_{r+1}-v_{l} w=vr+1vl,则 v l ≡ v r + 1 − w ( m o d k ) v_l \equiv v_{r+1}-w (mod\;k) vlvr+1w(modk),所以前面出现过的满足 v l − c l v_{l}-c_{l} vlcl v l ≡ v r + 1 − w ( m o d k ) v_l \equiv v_{r+1}-w (mod\;k) vlvr+1w(modk) l l l 可以使 s [ l , r ] s[l,r] s[l,r] 为美丽子字符串

class Solution {
public:using ll = long long;long long beautifulSubstrings(string s, int k) {vector<int> li;for (int i = 0; i < k; i++)if (i * i % k == 0)li.push_back(i);map<pair<int, int>, int> cnt;unordered_set set_vo{'a', 'e', 'i', 'o', 'u'};cnt[{0, 0}] = 1;ll res = 0;for (int i = 0, v = 0, c = 0; i < s.size(); i++) {if (set_vo.count(s[i]))v++;elsec++;for (auto w: li) {auto vl = ((v - w) % k + k) % k;if (auto it = cnt.find({v - c, vl});it != cnt.end())res += it->second;}cnt[{v - c, v % k}]++;}return res;}
};

相关文章:

第 373 场 LeetCode 周赛题解

A 循环移位后的矩阵相似检查 模拟 class Solution { public:bool areSimilar(vector<vector<int>> &mat, int k) {int m mat.size(), n mat[0].size();k % n;auto g mat;for (int i 0; i < m; i)if (i & 1)rotate(mat[i].begin(), mat[i].begin() …...

C#,《小白学程序》第二十五课:大数乘法(BigInteger Multiply)的Karatsuba算法及源代码

1 文本格式 /// <summary> /// 《小白学程序》第二十五课&#xff1a;大数&#xff08;BigInteger&#xff09;的Karatsuba乘法 /// Multiplies two bit strings X and Y and returns result as long integer /// </summary> /// <param name"a">&…...

Redis的五大数据类型详细用法

我们说 Redis 相对于 Memcache 等其他的缓存产品&#xff0c;有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据&#xff0c;同时还提供list&#xff0c;set&#xff0c;zset&#xff0c;hash等数据结构的存储。本篇博客我们就将介绍这些数据类型的详细使用…...

C++类与对象(6)—初始化列表、explicit关键字、static成员

目录 一、初始化列表 1、定义 2、注意事项 3、尽量使用初始化列表初始化 4、初始化顺序 二、 explicit关键字 1、定义 2、特点 三、static成员 1、定义 2、特性 3、例题 一、初始化列表 下面这段代码可以正常编译&#xff1a; class A { private:int _a1;//成员…...

vue3+tsx的使用

<template><div><xiaoman on-click"getItem" name"似懂非懂"></xiaoman></div> </template><script setup langts>import xiaoman from "./App"const getItem(item:any)>{console.log(item,it…...

JMeter 设置请求头信息的详细步骤

在使用 JMeter 的过程中&#xff0c;我们会遇到需要设置请求头信息的场景。比如&#xff1a; POST 传过去的 Body 数据是 json 格式的。需要填添加头信息&#xff1a;Content-Type&#xff1a;application/json。 在 header 中用 token 来传用户的认证信息。 下面&#xff0c;…...

从零构建属于自己的GPT系列1:预处理模块

1 训练数据 在本任务的训练数据中&#xff0c;我选择了金庸的15本小说&#xff0c;全部都是txt文件 数据打开后的样子 2 数据预处理 数据预处理需要做的事情就是使用huggingface的transformers包的tokenizer模块&#xff0c;将文本转化为token 最后生成的文件就是train_n…...

002、ArkTS

之——开发语言 目录 之——开发语言 杂谈 正文 1.TypeScript基础 1.1 基础类型 1.2 条件语句 1.3 函数 1.4 类 1.5 模块 1.6 迭代器 2.ArkTS 2.1 JAVA SCRIPT 2.2 TS 2.3 ArkTS ​编辑 3.示例 3.1 概述性示例 3.2 自定义组件 3.3 渲染控制语法 3.4 状态管…...

如何通过nginx进行服务的负载均衡

简单介绍 随着互联网的发展&#xff0c;业务流量越来越大并且业务逻辑也越来越复杂&#xff0c;单台服务器的性能及单点故障问题就凸显出来了&#xff0c;因此需要多台服务器组成应用集群&#xff0c;进行性能的水平扩展以及避免单点故障的出现。应用集群是将同一应用部署到多台…...

FPGA程序前仿真和后仿真问题处理

参考链接&#xff1a;FPGA程序前仿真和后仿真问题处理 - 知乎...

C语言WFC绘制矩形

代码实现&#xff1a; void CCGDrawingView::Rectangle(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4, COLORREF color,CDC* pDC) {CPen redPen(PS_SOLID, 1, color);CBrush redBursh(color);CPen* pOldPen pDC->SelectObject(&redPen);CBrush* p…...

SpringCloud Alibaba集成 Gateway(自定义负载均衡器)、Nacos(配置中心、注册中心)、loadbalancer

文章目录 POM依赖环境准备配置配置文件配置类 案例展示 POM依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/></p…...

HarmonyOS应用开发者基础认证【题库答案】

HarmonyOS应用开发者高级认证【题库答案】 一、判断 首选项preferences是以Key-Value形式存储数据&#xff0c;其中Key是可以重复。&#xff08;错&#xff09;使用http模块发起网络请求时&#xff0c;必须要使用on(‘headersReceive’&#xff09;订阅请求头&#xff0c;请…...

[pyqt5]pyqt5设置窗口背景图片后上面所有图片都会变成和背景图片一样

pyqt5的控件所有都是集成widget&#xff0c;窗体设置背景图片后控件背景也会跟着改变&#xff0c;此时有2个办法。第一个办法显然我们可以换成其他方式设置窗口背景图片&#xff0c;而不是使用styleSheet样式表&#xff0c;网上有很多其他方法。还有个办法就是仍然用styleSheet…...

【Docker】从零开始:7.Docker命令:容器命令及参数详解

【Docker】从零开始&#xff1a;7.帮助启动类命令 一、帮助启动类命令启动Docker停止Docker重启Docker查看Docker状态开机启动查看docker概要信息查看docker总体帮助文档查看docker命令帮助文档 二、镜像命令列出本地主机上的镜像运行示例返回说明操作参数 搜索仓库里的某个镜像…...

Mysql 锁机制分析

整体业务代码精简逻辑如下&#xff1a; Transaction public void service(Integer id) {delete(id);insert(id); }数据库实例监控&#xff1a; 当时通过分析上游问题流量限流解决后&#xff0c;后续找时间又重新分析了下问题发生的根本原因&#xff0c;现将其总结如下&#xf…...

跟着chatgpt学习|1.spark入门

首先先让chatgpt帮我规划学习路径&#xff0c;使用Markdown格式返回&#xff0c;并转成思维导图的形式 目录 目录 1. 了解spark 1.1 Spark的概念 1.2 Spark的架构 1.3 Spark的基本功能 2.spark中的数据抽象和操作方式 2.1.RDD&#xff08;弹性分布式数据集&#xff09; 2…...

使用conan包 - 安装依赖项

使用conan包 - 安装依赖项 主目录 conan Using packages1 Requires2 Optional user/channel3 Overriding requirements4 Generators5 Options 本文是基于对conan官方文档Installing dependencies的翻译而来&#xff0c; 更详细的信息可以去查阅conan官方文档。 This section s…...

【数据库设计和SQL基础语法】--数据库设计基础--数据规范化和反规范化

一、 数据规范化 1.1 数据规范化的概念 定义 数据规范化是数据库设计中的一种方法&#xff0c;通过组织表结构&#xff0c;减少数据冗余&#xff0c;提高数据一致性和降低更新异常的过程。这一过程确保数据库中的数据结构遵循一定的标准和规范&#xff0c;使得数据存储更加高…...

复亚智能交通无人机:智慧交通解决方案大公开

城市的现代化发展离不开高效的交通管理规划。传统的交通管理系统庞大繁琐&#xff0c;交警在执行任务时存在安全隐患。在这一背景下&#xff0c;复亚智能交通无人机应运而生&#xff0c;成为智慧交通管理中的重要组成部分。交通无人机凭借其高灵活性、低成本、高安全性等特点&a…...

深度解析VeraGrid:电力系统开源仿真平台的架构革新与实践应用

深度解析VeraGrid&#xff1a;电力系统开源仿真平台的架构革新与实践应用 【免费下载链接】VeraGrid VeraGrid, a cross-platform power systems software written in Python with user interface, used in academia and industry. 项目地址: https://gitcode.com/gh_mirrors…...

佣金自动算、订单自动记,这才叫好系统

做推客、做分销、做私域小店&#xff0c;最磨人的从来不是拉新和卖货&#xff0c;而是没完没了的记账、对账、算佣金。人工统计订单、Excel 算佣金、靠截图核对业绩&#xff0c;不仅慢、容易错&#xff0c;还特别消耗信任。真正能让商家省心、让推客放心的好系统&#xff0c;标…...

跨场景事件:没人聊但人人踩的持久化问题

目录根本矛盾静态事件&#xff1a;幽灵订阅问题实例事件&#xff1a;随场景消亡DontDestroyOnLoad 创可贴Bootstrap 场景模式多场景编辑让情况更糟生命周期问题GES 如何解决这个问题ScriptableObject 事件存在于场景之外Behavior Window&#xff1a;自动生命周期管理Persistent…...

探索MacOS窗口管理新境界:3步掌握Easy Move+Resize高效操作

探索MacOS窗口管理新境界&#xff1a;3步掌握Easy MoveResize高效操作 【免费下载链接】easy-move-resize Adds "modifier key mouse drag" move and resize to OSX 项目地址: https://gitcode.com/gh_mirrors/ea/easy-move-resize Easy MoveResize是一款专为…...

桌游设计师的终极神器:CardEditor卡牌批量生成器完整指南

桌游设计师的终极神器&#xff1a;CardEditor卡牌批量生成器完整指南 【免费下载链接】CardEditor 一款专为桌游设计师开发的批处理数值填入卡牌生成器/A card batch generator specially developed for board game designers 项目地址: https://gitcode.com/gh_mirrors/ca/C…...

VSCode插件Console Ninja详解:把DevTools搬进编辑器,调试效率翻倍

作为前端/Node.js开发者&#xff0c;我们每天都会和console.log打交道——调试时写日志、看输出、找错误&#xff0c;却总被“切换窗口”困扰&#xff1a;一边是VSCode编辑器&#xff0c;一边是浏览器DevTools或终端&#xff0c;来回切换不仅打断思路&#xff0c;还浪费大量时间…...

音频格式解密实战:QMCDecode让加密音乐重获自由

音频格式解密实战&#xff1a;QMCDecode让加密音乐重获自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结果…...

STM32F407实战指南(十九) 红外避障传感器模块深度调试与CubeMX源码解析

1. 红外避障传感器模块的核心原理与硬件解析 红外避障传感器本质上是一个"主动探测反射接收"的系统。发射管会持续发射38kHz的红外信号&#xff08;这个频率能有效避免自然光干扰&#xff09;&#xff0c;当遇到障碍物时&#xff0c;红外线会被反射回来。接收管内部其…...

猫抓浏览器扩展:轻松获取网页媒体资源的终极指南

猫抓浏览器扩展&#xff1a;轻松获取网页媒体资源的终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法下载网页视频而烦恼吗&…...

如何通过CPUDoc智能调度技术提升CPU性能与能效比

如何通过CPUDoc智能调度技术提升CPU性能与能效比 【免费下载链接】CPUDoc 项目地址: https://gitcode.com/gh_mirrors/cp/CPUDoc 你是否曾因电脑运行卡顿、游戏帧率不稳或多任务处理缓慢而烦恼&#xff1f;现代CPU虽然拥有强大算力&#xff0c;但Windows系统的默认调度…...