力扣 第 383 场周赛 解题报告 | KMP

力扣 第 383 场周赛 解题报告 | KMP

链接

前言

在这里插入图片描述
一个人能走的多远不在于他在顺境时能走的多快,而在于他在逆境时多久能找到曾经的自己。

T1 修改矩阵

思路:模拟
时间复杂度: O ( m n ) O(mn) O(mn)

class Solution:def modifiedMatrix(self, matrix: List[List[int]]) -> List[List[int]]:n, m = len(matrix), len(matrix[0])for j in range(m):mx = -inffor i in range(n):mx = max(mx, matrix[i][j])for i in range(n):if matrix[i][j] == -1:matrix[i][j] = mxans = matrixreturn ans

T2 T4 匹配模式数组的子数组数目

思路: KMP 匹配字符串

class Solution {int ne[1000010];
public:int countMatchingSubarrays(vector<int>& nums, vector<int>& pattern) {int n = nums.size(), m = pattern.size();ne[0] = -1;for (int i = 1, j = -1; i < m; i ++) {while (j != -1 and pattern[i] != pattern[j + 1])    j = ne[j];if (pattern[i] == pattern[j + 1])   j ++;ne[i] = j;}vector<int> v(n - 1);for (int i = 1; i < n; i ++) {if (nums[i] == nums[i-1])   v[i-1] = 0;else if (nums[i] > nums[i-1])   v[i-1] = 1;else    v[i-1] = -1;}int cnt = 0; for (int i = 0, j = -1; i < n - 1; i ++) {while (j != -1 and pattern[j+1] != v[i])    j = ne[j];if (pattern[j+1] == v[i])   j ++;if (j == m - 1) {cnt ++;j = ne[j];}}return cnt;}
};

T3 回文字符串的最大数量
思路: 贪心

class Solution {
public:int maxPalindromesAfterOperations(vector<string>& words) {int odd = 0, even = 0, cnt = 0;unordered_map<char, int> mp;vector<int>  v;for (auto &s: words) {           int n = s.size();v.emplace_back(n);for (char &c: s)    mp[c] ++;}sort(v.begin(), v.end());for (auto it: mp) {int x = it.second;if (x % 2)  {odd ++;even += x - 1;}else {even += x;}}for (auto x: v) {if (x % 2) {if (odd) {odd --;}else {even -= 2;odd ++;}x -= 1; }if (even < x)   break;else {even -= x;cnt ++;}}return cnt;}
}  ;

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

二、Mybatis相关概念

1.对象/关系数据库映射&#xff08;ORM) ORM全称Object/Relation Mapping&#xff1a;表示对象-关系映射的缩写ORM完成面向对象的编程语言到关系数据库的映射。当ORM框架完成映射后&#xff0c;程序员既可以利用面向对象程序设计语言的简单易用性&#xff0c;又可以利用关系数…

leetcode:131.分割回文串

树形结构&#xff1a; 切割到字符串的尾部&#xff0c;就是叶子节点。 回溯算法三部曲&#xff1a; 1.递归的参数和返回值&#xff1a; 参数字符串s和startIndex切割线 2.确定终止条件&#xff1a; 当分割线到字符串末尾时到叶子节点&#xff0c;一种方案出现 3.单层搜索…

290. Word Pattern(单词规律)

题目描述 给定一种规律 pattern 和一个字符串 s &#xff0c;判断 s 是否遵循相同的规律。 这里的 遵循 指完全匹配&#xff0c;例如&#xff0c; pattern 里的每个字母和字符串 s 中的每个非空单词之间存在着双向连接的对应规律。 提示: 1 < pattern.length < 300 pa…

036 冒泡排序

代码实践 // 冒泡排序 static void bubbleSort(Comparable[] elements) {// 临时容器&#xff0c;用于变量交换值时存储Object temp;// 标志位 用于减少无意义的循环次数boolean flag;for (int i 0; i < elements.length - 1; i) {flag false;for (int j 0; j < elem…

读取csv数据并转为二维数组

首先我csv文件中数据如上&#xff0c;是个25*4的数据。 现在需要读取&#xff0c;并将其转化为二维数组&#xff0c;方便后续操作。 import csv with open(q_table.csv, r) as file:csv_reader csv.reader(file)data_array []for row in csv_reader:data_array.append(row)…

【Effective Objective - C 2.0】——读书笔记(二)

文章目录 前言六、理解“属性”这一概念七、在对象内部尽量直接访问实例变量八、理解“对象等同性”这一概念九、以“类族模式”隐藏实现细节十、在既有类中使用关联对象存放自定义数据十一、理解objc_msgSend的作用十二、理解消息转发机制动态方法解析备援接受者完整的消息转发…

ElasticSearch快速开始

目录 全文检索 全文检索的原理 什么是倒排索引 ElasticSearch介绍 ElasticSearch应用场景 ElasticSearch下载安装&#xff08;windows&#xff09; 客户端Kibana安装 Elasticsearch安装分词插件 ElasticSearch快速开始 ElasticSearch索引操作 创建索引 查询索引 删…

模拟串口LV2,解决硬件串口资源不足问题!!!!

模拟串口通信 2.0 版本&#xff01;&#xff01; 我在前面的文章里面有写了 虚拟串口通信&#xff0c;虽然说能用&#xff0c;但是用过的小伙伴都说 “好!” 优缺点: 先说一点&#xff0c;2.0版本并不适用于同硬件串口的所有场合&#xff0c;仅仅针对自己开发的电子垃圾的主…

中年低端中产程序员从西安出发到海南三亚低成本吃喝万里行:西安-南宁-湛江-雷州-徐闻-博鳌-陵水-三亚-重庆-西安

文章大纲 旅途规划来回行程的确定南宁 - 北海 - 湛江轮渡成为了最终最大的不确定性&#xff01;感谢神州租车气温与游玩地点总体花费 游玩过程出发时间&#xff1a;Day1-1月25日星期四&#xff0c;西安飞南宁路途中&#xff1a;Day2-1月26日星期五&#xff0c;南宁-湛江-住雷州…

python coding with ChatGPT 打卡第19天| 二叉树:合并二叉树

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…

【C语言——打印乘法口诀表】

乘法表&#xff1a; 我们可以定义一个i控制行的变化&#xff0c;外加看上图的表得知我们需要用到循环结构&#xff0c;i是行需要不停的加加&#xff0c;因此&#xff0c;for循环比较好用&#xff0c;可以用两个嵌套的循环&#xff0c;外层循环即用到的i表示的是每一行的打印&am…

阿里云游戏服务器多少钱一年?

阿里云游戏服务器租用价格表&#xff1a;4核16G服务器26元1个月、146元半年&#xff0c;游戏专业服务器8核32G配置90元一个月、271元3个月&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云游戏专用服务器详细配置和精准报价&#xff1a; 阿里云游戏服务器租用价格表 阿…

《计算思维导论》笔记:10.4 关系模型-关系运算

《大学计算机—计算思维导论》&#xff08;战德臣 哈尔滨工业大学&#xff09; 《10.4 关系模型-关系运算》 一、引言 本章介绍数据库的基本数据模型&#xff1a;关系模型-关系运算。 二、什么是关系运算 在数据库理论中&#xff0c;关系运算&#xff08;Relational Operatio…

PKI - 借助Nginx 实现Https_使用CA签发证书

文章目录 Pre概述操作步骤1. 生成 CA 密钥对2. 生成自签名的 CA 证书3. 生成服务器密钥对和证书签名请求 (CSR)4. 使用 CA 签署服务器证书 Nginx Https 自签证书1. 生成自签名证书和私钥2. 配置 Nginx 使用 CA签发的 HTTPS 证书3. 重启 Nginx 服务4. 直接访问5. 不验证证书直接…

代码随想录算法训练营day15||二叉树part02、102.二叉树的层序遍历、 226.翻转二叉树(优先掌握递归)、101. 对称二叉树 (优先掌握递归)

102.二叉树的层序遍历 题目&#xff1a;给你一个二叉树&#xff0c;请你返回其按 层序遍历 得到的节点值。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 接下来我们再来介绍二叉树的另一种遍历方式&#xff1a;层序遍历。 层序遍历一个二叉树。就是…

Centos7之忘记Root用户密码的处理方式

Centos7之忘记Root用户密码的处理方式 文章目录 Centos7之忘记Root用户密码的处理方式1.场景描述2. 重置密码1. 重启系统进入编辑界面2. 按方向键下键↓&#xff0c;找到设置语言的地方3. 进入bash界面后&#xff0c;可以输入passwd命令重新设置root密码 1.场景描述 长时间未使…

前后端分离nodejs+vue流浪狗宠物领养公益网站

1.发现公益&#xff1a;主要是根据社会上的调研&#xff0c;来收集的社会上有关流浪狗的公益活动&#xff0c;发布在公益网站上能被更多人发现&#xff0c;主要让更多人能参与到公益活动中来&#xff0c;并调动群众的同情心和爱心&#xff0c;借此希望在养宠物的主人能避免自己…

vue3 之 商城项目—项目搭建起步

1.创建项目 1️⃣ npm init vuelatest2️⃣ npm install3️⃣ npm run dev4️⃣目录调整 2.git管理项目 基于creact-vue创建出来的项目默认没有初始化git仓库&#xff0c;需要我们手动初始化 执行命令 git init git add. git commit -m init3.项目起步—配置别名路径联…

前端开发_AJAX基本使用

AJAX概念 AJAX是异步的JavaScript和XML(Asynchronous JavaScript And XML)。 简单点说&#xff0c;就是使用XMLHttpRequest对象与服务器通信。 它可以使用JSON&#xff0c;XML&#xff0c;HTML和text文本等格式发送和接收数据。 AJAX最吸引人的就是它的“异步"特性&am…

顶级思维方式——对优秀人才的定义

目录 1、乔布斯对优秀人才的定义 2、 乔布斯对优秀人才的管理 3、感到压力焦虑的时候怎么办 注&#xff1a; 以下内容均来自乔布斯、贝索斯的采访视频摘录 1、乔布斯对优秀人才的定义 乔布斯&#xff1a; 公司规模变大之后&#xff0c;就会变得循规蹈矩。他们觉得只要遵守流…