第 394 场 LeetCode 周赛题解

A 统计特殊字母的数量 I

在这里插入图片描述

哈希:遍历然后枚举

class Solution {public:int numberOfSpecialChars(string word) {unordered_map<char, int> m;for (auto ch : word)m[ch] = 1;int res = 0;for (char ch = 'a'; ch <= 'z'; ch++)if (m.count(ch) && m.count('A' + ch - 'a'))res++;return res;}
};

B count-the-number-of-special-characters-ii/

在这里插入图片描述

哈希:遍历记录各小写字母的最后出现下标,及各大写字母的第一次出现的下标,然后枚举

class Solution {public:int numberOfSpecialChars(string word) {unordered_map<char, int> m;for (int i = 0; i < word.size(); i++)if (word[i] >= 'a' && word[i] <= 'z' || m.find(word[i]) == m.end())m[word[i]] = i;int res = 0;for (char ch = 'a'; ch <= 'z'; ch++)if (m.count(ch) && m.count('A' + ch - 'a') && m[ch] < m['A' + ch - 'a'])res++;return res;}
};

C 使矩阵满足条件的最少操作次数

在这里插入图片描述

动态规划:设 p [ i ] [ j ] p[i][j] p[i][j] 为使 g r i d grid grid 的前 i + 1 i+1 i+1 列行成的子矩阵满足条件的且最后一列都为 j j j 的最少操作数,最终答案为 m i n { p [ n − 1 ] [ j ] ∣ 0 ≤ j ≤ 9 } min\{ p[n-1][j] \;|\; 0\le j\le 9 \} min{p[n1][j]0j9}

class Solution {public:int minimumOperations(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();vector<vector<int>> col(n, vector<int>(10));//col[i][j]: 第i列中j的数目for (int i = 0; i < m; i++)for (int j = 0; j < n; j++)col[j][grid[i][j]]++;vector<vector<int>> p(n, vector<int>(10));for (int j = 0; j < 10; j++)p[0][j] = m - col[0][j];for (int j = 1; j < n; j++) {for (int cur = 0; cur < 10; cur++) {p[j][cur] = INT32_MAX;for (int last = 0; last < 10; last++)//枚举前一行if (last != cur)p[j][cur] = min(p[j][cur], p[j - 1][last] + m - col[j][cur]);}}int res = INT32_MAX;for (int v = 0; v < 10; v++)res = min(res, p[n - 1][v]);return res;}
};

D 最短路径中的边

在这里插入图片描述

最短路 + b f s bfs bfs:设 d [ i ] d[i] d[i] 0 0 0 i i i 的最短路的长度,先用最 d i j k s t r a dijkstra dijkstra 0 0 0 n − 1 n-1 n1 的最短路。如果 0 0 0 n − 1 n-1 n1 连通,则从 n − 1 n-1 n1 开始 b f s bfs bfs:设 b f s bfs bfs 当前遍历到的节点为 i i i,若 i i i 的邻接点 j j j 满足 d [ j ] + w { j , i } = d [ i ] d[j]+w_{\{j,i\}}=d[i] d[j]+w{j,i}=d[i] ,则将 a n s w e r answer answer 数组中 ( j , i ) (j,i) (j,i) 边对应的下标位置置为 t r u e true true ,同时将 j j j 加入 b f s bfs bfs 队列。

class Solution {public:using ll = long long;vector<bool> findAnswer(int n, vector<vector<int>>& edges) {vector<vector<pair<int, int>>> e(n);map<pair<int, int>, int> id;//记录各表在edges中的下标for (int i = 0; i < edges.size(); i++) {//建图auto& edge = edges[i];e[edge[0]].push_back({edge[1], edge[2]});e[edge[1]].push_back({edge[0], edge[2]});id[{min(edge[0], edge[1]), max(edge[0], edge[1])}] = i;}vector<ll> d(n, INT64_MAX);d[0] = 0;priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<pair<ll, int>>> q;//最小堆q.emplace(0, 0);while (!q.empty()) {//求最短路auto [di, i] = q.top();q.pop();for (auto [j, w] : e[i]) {if (d[j] > di + w) {d[j] = di + w;q.emplace(d[j], j);}}}vector<int> vis(n);queue<int> qu;vector<bool> res(edges.size());if (d[n - 1] != INT64_MAX)qu.push(n - 1);while (!qu.empty()) {//bfsauto i = qu.front();qu.pop();for (auto [j, w] : e[i]) {if (d[j] != INT64_MAX && d[j] + w == d[i]) {res[id[make_pair(min(i, j), max(i, j))]] = true;if (!vis[j]) {vis[j] = 1;//入队标记qu.push(j);}}}}return res;}
};

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

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

相关文章

【SpringCloud】OpenFeign高级特性

【SpringCloud】OpenFeign高级特性 文章目录 【SpringCloud】OpenFeign高级特性1. 超时控制1.1 全局配置1.2 指定配置 2. 重试机制3. 替换Http客户端3.1 引入依赖3.2 配置 4. 请求/响应压缩5. 日志打印6. 综合配置 1. 超时控制 默认OpenFeign客户端等待60秒钟&#xff0c;但是服…

8.4.1 实验1:创建 VLAN 和划分端口

1、实验目的 通过本实验可以掌握&#xff1a; VLAN的概念。创建VLAN的方法。把交换机端口划分到VLAN中的方法。 2、实验拓扑 创建 VLAN 和划分端口的实验拓扑如下图所示。 图8-5 创建 VLAN 和划分端口的实验拓扑 3、实验步骤 &#xff08;1&#xff09;实验准备 S1#eras…

创建一个空的maven项目,整合SpringBoot和Redis

创建一个空的maven项目&#xff0c;整合SpringBoot和Redis 创建空的maven项目 在最新版的idea中创建maven项目的时候会让选择模板 如下图&#xff1a; 我们选择quickstart快速开始模板&#xff0c;quickstart快速开始模板创建的maven项目里面什么都不带&#xff0c;只有一个…

苹果手机里的HEIC图片可以转换成普通的JPG格式吗?什么是HEIC图片格式?

在现代社会中&#xff0c;随着智能手机技术的不断发展&#xff0c;我们越来越依赖于手机来记录生活的点滴。其中&#xff0c;拍照成为了人们记录生活的重要手段之一。苹果手机作为市场上的热门品牌&#xff0c;其拍摄的照片质量自然也是备受赞誉。然而&#xff0c;苹果手机默认…

Java面试八股之Java中==和equals()的区别

Java中和equals()的区别 操作符&#xff1a; 对于基本数据类型&#xff08;如int、char、boolean等&#xff09;&#xff0c;比较的是它们的值是否相等。 对于对象引用类型&#xff0c;比较的是两个对象的内存地址&#xff08;即是否指向同一个对象实例&#xff09;。也就是…

4.25日学习记录

[HZNUCTF 2023 preliminary]ppppop 对于php反序列化&#xff0c;在之前的学习中有过了解&#xff0c;但是对于序列化字符串的格式不是很了解&#xff0c;刚好接触这题&#xff0c;可以了解一下 序列化字符串的格式&#xff1a; 布尔型&#xff08;bool&#xff09;b&#xf…

ubuntu20.04开机运行java的sh脚本

用到了 rc.local 1、修改 /usr/lib/systemd/system/rc-local.service 在最下面添加 [Install] WantedBymulti-user.target 2、 系统没有 rc.local&#xff0c;需要手动创建 cd /etc vi rc.local在里面写入 /opt/start.sh chmod x /etc/rc.local # 添加可执行权限 chmod x…

基于小程序实现的惠农小店系统设计与开发

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

队列的实现(c语言实现)

队列的定义 队列&#xff08;Queue&#xff09;是一种特殊的线性数据结构&#xff0c;它遵循先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则。这意味着最早被添加到队列中的元素将是最先被移除的元素。队列的主要操作包括入队&#xff08;enqueue…

【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)

牛客对应链接&#xff1a;数组中的最长连续子序列_牛客题霸_牛客网 (nowcoder.com) 一、分析题目 排序 模拟。 注意&#xff1a;值连续&#xff0c;位置可以不连续&#xff01;小心处理数字相同的情况。 二、代码 //值得学习的代码 class Solution { public:int MLS(vecto…

数字藏品:重塑艺术与科技的新媒介

数字藏品&#xff0c;这个新兴的词汇&#xff0c;正在逐渐渗透到我们的日常生活中。它不仅是一种新的艺术表达方式&#xff0c;更是一种科技与艺术相结合的全新媒介。那么&#xff0c;数字藏品究竟是什么呢&#xff1f; 首先&#xff0c;我们需要明确一点&#xff0c;数字藏品并…

LeetCode53. 最大子数组和

LeetCode53. 最大子数组和 解题思路dp 代码 /* 数组长度n 9,连续的区间 那区间长度为1的区间数量是&#xff0c;9个 区间长度为2的区间数量是8个 区间长度为3的连续的区间数量为7个 .... 区间长度为9的区间数量为1个 */ class Solution { public:int maxSubArray(vector<…

游戏工作室为什么要使用海外住宅IP防封?

当谈到游戏工作室时&#xff0c;它们通常以多开游戏账号来获取收益为主要目标。这种商业模式在游戏产业中已经成为一个独特而且颇具潜力的领域。然而&#xff0c;随之而来的是防封问题&#xff0c;特别是当游戏工作室试图通过多开账号来赚取更多收益时。因此&#xff0c;我们有…

13(第十二章,元数据管理)

目录 概述 业务驱动因素 目标和原则 基本概念 元数据与数据 元数据的类型 业务元数据 技术元数据 操作元数据 元数据注册标准 元数据来源 元数据架构类型 集中式元数据架构 分布式元数据架构 混合式元数据架构 双向元数据架构 方法 数据血缘和影响分析 度量…

Java操作 elasticsearch 8.1,如何实现索引的重建?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

U盘无法正常格式化?教你一个强力的办法

前言 电脑格式化U盘或者移动硬盘的操作&#xff0c;相信各位小伙伴都是有一定经历的。 如果设备正常&#xff0c;那么进入到【此电脑】&#xff0c;在对应的分区点击【鼠标右键】-【格式化】就可以把对应的存储设备恢复到初始状态。 但凡事都会有例外&#xff0c;比如在格式化…

【openLooKeng-1.10.0集群环境安装部署】

openLooKeng-1.10.0集群环境安装部署 一、摘要二、正文1. 环境说明2. 集群拓扑图3. 安装过程(以root用户安装)3.1 在Coordinator和Worker两个节点都需要安装jdk1.8+3.2 在Coordinator上安装配置openLooKeng3.3 在Worker节点上进行配置openLooKeng3.4 在Coordinator节点上先启…

施耐德EOCR-2CT-300/5电流互感器 50HZ 5VA

EOCR主要产品有电子式电动机保护继电器&#xff0c;电子式过电流继电器&#xff0c;电子式欠电流继电器&#xff0c;电子式欠电压继电器&#xff0c;其它保护和监视装置&#xff0c;电流互感器。 施耐德EOCR-2CT-300/5电流互感器 EOCR-2CT系列型号&#xff1a; EOCR 2CT 100…

本地安装mysql并用python访问它

数据还是放在数据库中比较好&#xff0c;于是决定在本机安装个mysql服务。 环境&#xff1a;windows 10&#xff0c;python3.8.10 安装前首先要注意一点&#xff1a; 设置-系统-关于-设备&#xff08;电脑&#xff09;名称&#xff1a;为英文 一、进入mysql官网下载GPL免费版…

C++概念、头文件与c区别、变量、const关键字以及enum枚举

C概念 C最主要的就是&#xff1a;C是面向对象的编程思想&#xff0c;而C是面向过程的编程思想。C编写出来的效率比其他语言高的多。 C思想&#xff1a;万物皆对象 C语言的主要特点表现在两个方面&#xff0c;一是尽量兼容C,二是支持面向对象的方法。首先&#xff0c;C的确是一…