当前位置: 首页 > 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…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

算法刷题-回溯

今天给大家分享的还是一道关于dfs回溯的问题&#xff0c;对于这类问题大家还是要多刷和总结&#xff0c;总体难度还是偏大。 对于回溯问题有几个关键点&#xff1a; 1.首先对于这类回溯可以节点可以随机选择的问题&#xff0c;要做mian函数中循环调用dfs&#xff08;i&#x…...

项目进度管理软件是什么?项目进度管理软件有哪些核心功能?

无论是建筑施工、软件开发&#xff0c;还是市场营销活动&#xff0c;项目往往涉及多个团队、大量资源和严格的时间表。如果没有一个系统化的工具来跟踪和管理这些元素&#xff0c;项目很容易陷入混乱&#xff0c;导致进度延误、成本超支&#xff0c;甚至失败。 项目进度管理软…...

SQLSERVER-DB操作记录

在SQL Server中&#xff0c;将查询结果放入一张新表可以通过几种方法实现。 方法1&#xff1a;使用SELECT INTO语句 SELECT INTO 语句可以直接将查询结果作为一个新表创建出来。这个新表的结构&#xff08;包括列名和数据类型&#xff09;将与查询结果匹配。 SELECT * INTO 新…...