第 124 场 LeetCode 双周赛题解

A 相同分数的最大操作数目 I

在这里插入图片描述

模拟

class Solution {
public:int maxOperations(vector<int> &nums) {int n = nums.size();int s = nums[0] + nums[1];int res = 1;for (int i = 2; i + 1 < n; i += 2)if (nums[i] + nums[i + 1] == s)res++;elsebreak;return res;}
};

B 进行操作使字符串为空

在这里插入图片描述

计数:记录各字符的出现次数,出现次数最大的各字符的最右位置形成最后一次操作之前的 s s s

class Solution {
public:string lastNonEmptyString(string s) {vector<int> cnt(26);for (auto c: s)cnt[c - 'a']++;int mx = *max_element(cnt.begin(), cnt.end());string res;for (int i = s.size() - 1; i >= 0; i--)if (cnt[s[i] - 'a'] == mx) {cnt[s[i] - 'a'] = 0;res.push_back(s[i]);}reverse(res.begin(), res.end());return res;}
};

C 相同分数的最大操作数目 II

在这里插入图片描述
在这里插入图片描述

动态规划:设 p [ l ] [ r ] [ t a g ] p[l][r][tag] p[l][r][tag] 为数组 n u m s [ l , r ] nums[l,r] nums[l,r] 在之前各次操作分数都为 s [ t a g ] s[tag] s[tag] 的情况下,最多可以进行的操作次数,实现通过记忆化搜素进行状态转移

class Solution {
public:int maxOperations(vector<int> &nums) {int n = nums.size();int p[n][n][3];memset(p, -1, sizeof(p));//初始化标志vector<int> s(3);s[0] = nums[0] + nums[1];s[1] = nums[n - 2] + nums[n - 1];s[2] = nums[0] + nums[n - 1];function<int(int, int, int)> dfs = [&](int l, int r, int tag) {//记忆化搜素if (l > r)return 0;if (p[l][r][tag] != -1)return p[l][r][tag];if (r - l + 1 < 2)return p[l][r][tag] = 0;int tar = s[tag];//一次操作的分数p[l][r][tag] = 0;if (nums[l] + nums[l + 1] == tar)//删除最前面两个元素p[l][r][tag] = max(p[l][r][tag], 1 + dfs(l + 2, r, tag));if (nums[r - 1] + nums[r] == tar)//删除最后面两个元素p[l][r][tag] = max(p[l][r][tag], 1 + dfs(l, r - 2, tag));if (nums[l] + nums[r] == tar)//删除第一个和最后一个元素p[l][r][tag] = max(p[l][r][tag], 1 + dfs(l + 1, r - 1, tag));return p[l][r][tag];};int res = 0;for (int k = 0; k < 3; k++)//第一次操作时可以进行三种删除res = max(res, dfs(0, n - 1, k));return res;}
};

D 修改数组后最大化数组中的连续元素数目

在这里插入图片描述

排序 + 哈希:先对 n u m s nums nums 排序,然后逆序遍历 n u m s [ i ] nums[i] nums[i],设 p [ x ] p[x] p[x] 为数组 n u m s [ i + 1 , n u m s . s i z e ( ) − 1 ] nums[i+1,nums.size()-1] nums[i+1,nums.size()1] 中起始元素为 x x x (包括通过 +1 得到 x x x 的情况)的最大连续元素数目,遍历过程中更新哈希表 p p p

class Solution {
public:int maxSelectedElements(vector<int> &nums) {sort(nums.begin(), nums.end());int n = nums.size();int res = 1;unordered_map<int, int> p;for (int i = n - 1; i >= 0; i--) {p[nums[i]] = p.count(nums[i] + 1) ? p[nums[i] + 1] + 1 : 1;//nums[i]不变的情况res = max(res, p[nums[i]]);p[nums[i] + 1] = p.count(nums[i] + 2) ? p[nums[i] + 2] + 1 : 1;//nums[i]+1的情况res = max(res, p[nums[i] + 1]);}return res;}
};

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

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

相关文章

JVM-JVM中对象的生命周期

申明&#xff1a;文章内容是本人学习极客时间课程所写&#xff0c;文字和图片基本来源于课程资料&#xff0c;在某些地方会插入一点自己的理解&#xff0c;未用于商业用途&#xff0c;侵删。 原资料地址&#xff1a;课程资料 对象的创建 常量池检查:检查new指令是否能在常量池…

专业140+总410+合工大合肥工业大学833信号分析与处理综合考研经验电子信息与通信工程,真题,大纲,参考书。

经过一年努力奋战&#xff0c;今年初试总分410&#xff0c;其中专业课833信号分析与处理综合&#xff08;ss和dsp&#xff09;140&#xff08;感谢信息通信Jenny老师去年的悉心指导&#xff09;&#xff0c;数一130&#xff0c;顺利上岸&#xff0c;被合工大录取&#xff0c;看…

Oracle 基础入门指南

一、什么是Oracle&#xff1f; Oracle是一款由美国Oracle公司开发的关系型数据库管理系统。它支持SQL查询语言&#xff0c;并提供了丰富的功能和工具&#xff0c;用于管理大规模数据存储、处理和访问。Oracle被广泛应用于企业级应用中&#xff0c;包括金融、电信、零售等各行各…

vue3 Element Plus 基于webstorm练习

提要 vue是前端框架&#xff0c;Elemen是组件库。前端框架和组件库的区别与联系 nodejs 脚本语言需要一个解析器才能运行&#xff0c;JavaScript是脚本语言&#xff0c;在不同的位置有不一样的解析器&#xff0c;如写入html的js语言&#xff0c;浏览器是它的解析器角色。而对…

java集合类框架的基本接口有哪些

java集合类框架的基本接口有哪些&#xff1f; 答&#xff1a;Collection&#xff1a;代表一组对象&#xff0c;每一个对象都是它的子元素 Set&#xff1a;不包括重复元素的Collection List&#xff1a;有顺序的Collection&#xff0c;并且可以包含重复元素 Map&#xff1a;…

【Pygame手册02/20】pygame模块display控制窗口和屏幕

目录 一、说明二、pygame.display接口函数2.1 函数表格2.2 pygame.display的功能 三、详细的函数调用3.1 pygame.display.init()3.2 pygame.display.quit()3.3 pygame.display.get_init()3.4 pygame.display.set_mode()3.5 pygame.display.get_surface()3.6 pygame.display.fl…

每日五道java面试题之java基础篇(十一)

目录: 第一题. Java死锁如何避免&#xff1f;第二题. 为什么⽤线程池&#xff1f;解释下线程池参数&#xff1f;第三题. 线程池的底层⼯作原理第四题. ReentrantLock中tryLock()和lock()⽅法的区别第五题. Sychronized和ReentrantLock的区别? 第一题. Java死锁如何避免&#x…

anaconda安装路径默认在D盘,但安装环境的envs路径跑到C盘,修改为D盘

安装的anaconda环境&#xff0c;路径是在anaconda安装目录下的envs中&#xff08;D:\APPFile\Anaconda3\envs&#xff09;&#xff0c;然而&#xff0c;这次创建的却是在 C:\Users\xxx.conda\envs 中。 首先&#xff0c;找到用户目录下的.condarc文件&#xff08;C:\Users\use…

AD高速板常见问题和过流自锁

可以使用电机减速器来增大电机的扭矩&#xff0c;低速运行的步进电机更要加上减速机 减速电机就是普通电机加上了减速箱&#xff0c;这样便降低了转速增大了扭矩 HDMI布线要求&#xff1a; 如要蛇形使其等长&#xff0c;不要在HDMI的一端绕线。 HDMI走线时两边拉线&#xff0…

【STM32 CubeMX】SPI层次结构SPI协议与SPI控制器结构

文章目录 前言一、SPI 程序层次1.1 硬件原理图1.2 硬件框图1.3 软件层次 二、SPI协议2.1 硬件连线2.2 如何访问SPI设备2.3 SPI 框图 总结 前言 随着嵌入式系统的迅猛发展&#xff0c;STM32系列微控制器在各种应用中得到广泛应用。在嵌入式系统设计中&#xff0c;串行外设接口&…

最简单绕过ring3 hook的方式(bypass bitdefender)

ntdll.dll常常是被挂钩的主要模块&#xff0c;当程序完全加载完毕后&#xff0c;我们可以尝试从system32目录下加载一个干净的ntdll.dll。 将 ntdll.dll 的新副本从磁盘映射到进程内存 查找挂钩的 ntdll.dll 的 .text 部分的虚拟地址 获取 ntdll.dll 基地址 模块基址 模块的…

【JavaSE篇】——异常(一万字让你了解异常的全方位知识)

目录 &#x1f388;什么是异常 &#x1f6a9;算术异常 &#x1f6a9;数组越界异常 &#x1f6a9;空指针异常 &#x1f6a9;输入不匹配异常 &#x1f388;异常的体系结构 &#x1f388;异常的分类 &#x1f6a9;运行时异常(非受查异常) &#x1f6a9;编译时异常(受查异常…

解锁Spring Boot中的设计模式—05.策略模式:探索【策略模式】的奥秘与应用实践!

1.策略者工厂模式&#xff08;Map版本&#xff09; 1.需求背景 假设有一个销售系统&#xff0c;需要根据不同的促销活动对商品进行打折或者其他形式的优惠。这些促销活动可以是针对不同商品类别的&#xff0c;比如男装、女装等。 2.需求实现 活动策略接口&#xff1a;定义了…

iPhone 16 组件泄露 揭示了新的相机设计

iPhone 16 的发布似乎已经等了很长一段时间&#xff0c;但下一个苹果旗舰系列可能会在短短 7 个月内与我们见面——而新的组件泄漏让我们对可能即将到来的重新设计有了一些了解。后置摄像头模块。 爆料者 Majin Bu&#xff08;来自 MacRumors&#xff09;获得的示意图显示&…

迅为3A5000_7A2000开发板龙芯自主指令系统支持PCIE3.0、USB3.0、SATA3.0、HDMI、VGA等

性能强 采用全国产龙芯3A5000处理器&#xff0c;基于龙芯自主指令系统 (LoongArch)的LA464微结构&#xff0c;并进一步提升频率&#xff0c;降低功耗&#xff0c;优化性能。 桥片 采用龙芯 7A2000&#xff0c;支持PCIE 3.0、USB 3.0和 SATA 3.0.显示接口2 路、HDMI 和1路 VGA…

Doris ——SQL原理解析

目录 前言 一、Doris简介 二、SQL解析简介 2.1 词法分析 2.2 语法分析 2.3 逻辑计划 2.4 物理计划 三、Doris SQL解析的总体架构 四、Parse阶段 五、Analyze阶段 六、SinglePlan阶段&#xff08;生成单机逻辑Plan阶段&#xff09; 七、DistributedPlan计划&#xf…

【大厂AI课学习笔记】【2.1 人工智能项目开发规划与目标】(5)数据管理

今天学习了数据管理&#xff0c;以及数据管理和数据治理的区别和联系。 数据管理&#xff1a;利用计算机硬件和软件技术对数据进行有效的收集、存储、处理和应用的过程其目的在于充分有效地发挥数据的作用。 实现数据有效管理的关键是数据组织。 数据管理和数据治理的区别&am…

【开源】SpringBoot框架开发智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…

微服务—DSL基础语法与RestClient操作

本博客为个人学习笔记&#xff0c;学习网站&#xff1a;黑马程序员SpringCloud 2021教程 目录 DSL语法 索引库操作 mapping属性 创建索引库 字段拷贝 查询、删除、修改索引库 文档操作 新增文档 查询、删除文档 修改文档 全量修改 增量修改 DSL文档语法小结 Rest…

服务流控(Sentinel)

引入依赖 <!-- 必须的 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><!-- sentinel 核心库 --> <dependency><groupId>com.ali…