【LeetCode】594. 最长和谐子序列

594. 最长和谐子序列(简单)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

方法:哈希表计数

思路

  • 题目规定的「和谐子序列」中的最值差值正好为 1,因而子序列排序后必然符合[a,a,.., a +1,a+1]形式,即符合条件的和谐子序列长度为相邻两数(差值为 1)的出现次数之和
  • 因此,我们首先对 nums 各元素的出现次数计数,之后再次遍历,如果存在比该元素小 1 的元素,说明这两个元素会形成和谐子序列,此时将二者的出现次数相加,即为可能的答案之一。
  • 最后,将最佳答案与可能答案相比较,较大者更新为最佳答案。

代码

class Solution {
public:int findLHS(vector<int>& nums) {unordered_map<int, int> mp;int ans = 0;for (int n : nums){if(mp.find(n) == mp.end()){mp.insert({n, 1});}else mp[n]++;}for(auto m : mp){if(mp.find(m.first - 1) != mp.end()){ans = max(ans, m.second + mp[m.first - 1]);}}return ans;}
};

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

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

相关文章

国产单片机(沁恒微WCH)CH32V307评估板初探

国产单片机(沁恒微WCH)CH32V307评估板初探 关于沁恒微&#xff1a;国产芯厂家、官网链接 公司简介 - 南京沁恒微电子股份有限公司 (wch.cn) 开发板资源&#xff1a; 评估板应用于 CH32V307 芯片的开发&#xff0c;IDE 使用 MounRiver 编译器&#xff0c;可选择使用板载或独…

为何异地销号这么难?这些注意事项要熟记!

最近有不少小伙伴私信小编&#xff0c;他们在网上办理的大流量手机号卡&#xff0c;用了一段时间之后想换其他的卡&#xff0c;所以想注销当前用的卡&#xff0c;但是注销的时候确实屡屡碰壁&#xff0c;程序还比较繁琐&#xff0c;有的甚至申请注销了几个月还注销不掉&#xf…

面向对象Java基础

前言 看大话设计模式的时候&#xff0c;发现自己的基础不是很扎实&#xff0c;重新回顾一些存在有点点不确定的内容&#xff0c;并从书中截取下来&#xff0c;做成笔记快速复习。 1、字段和属性 字段&#xff1a;用private修饰&#xff0c;也叫私有变量。属性&#xff1a;字…

关于uniapp分享功能实现

创建一个混入 export default {data() {return {//设置默认的分享参数//如果页面不设置share&#xff0c;就触发这个默认的分享share: {title: 商会宝,//自定义标题path: /pages/home/home?appId${uni.getStorageSync("appid")}, //默认跳转首页imageUrl: , //可…

Microsoft Outlook 共享收发邮件的权限给其他人

点击File 点击Account Settings→DelegateAccess 点击Add

[java安全]CommonsCollections1(LazyMap)

文章目录 【java安全】CommonsCollections1(LazyMap)前言LazyMap如何创建LazyMap对象&#xff1f;如何调用LazyMap的get()方法&#xff1f;如何触发AnnotationInvocationHandler#invoke()方法&#xff1f;POC总结参考 【java安全】CommonsCollections1(LazyMap) 前言 前面我们…

菜单 三级检索的实现,可配置搜索是否包含标题

const asideTreeDataOrigin [ //? 原始的侧边栏数据&#xff0c;不可修改 ]; let asideTreeData JSON.parse(JSON.stringify(asideTreeDataOrigin)); //? 动态的实时展示的侧边栏数据const menuCheck (val, menuItem) > menuItem.name.indexOf(val) > -1 || menuIte…

Hadoop: High Available

序言 在Hadoop 2.X以前的版本&#xff0c;NameNode面临单点故障风险&#xff08;SPOF&#xff09;&#xff0c;也就是说&#xff0c;一旦NameNode节点挂了&#xff0c;整个集群就不可用了&#xff0c;而且需要借助辅助NameNode来手工干预重启集群&#xff0c;这将延长集群的停…

Python学习笔记-Windows下VirtualEnv+VSCode中虚拟环境配置

1 VirtualEnv简介 VirtualEnv是一个虚拟化环境&#xff0c;是独立开的开发环境&#xff0c;在一个文件夹中创建的独立虚拟环境&#xff0c;可以分隔开不同项目&#xff0c;开发互不影响。 优点如下&#xff1a; 使不同的应用开发环境独立&#xff0c;避免互相干扰环境升级不…

RxSwift 使用方式

背景 最近项目业务&#xff0c;所有模块已经支持Swift混编开发&#xff0c;正在逐步使用Swift 方式进行开发新业务&#xff0c;以及逐步替换老业务方式进行发展&#xff0c;所以使用一些较为成熟的Swift 的三方库&#xff0c;成为必要性&#xff0c;经过调研发现RxSwift 在使用…

lvs使用

1.前言 LVS&#xff08;Linux Virtual Server&#xff09;是一个基于 Linux 内核的负载均衡器&#xff0c;用于分发网络流量和将请求转发给后端服务器。LVS 提供了多种负载均衡算法和转发模式&#xff0c;以满足不同场景和需求的负载均衡需求&#xff0c;在LVS中定义虚拟服务的…

制作Visual Studio离线安装包

vs2015之后官网就不提供离线安装包了&#xff0c;使用离线安装包就需要自己手动制作一个&#xff1b; 以vs2019为例&#xff1a; 先去官网下载在线安装器 官网下载地址&#xff1a;Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com) 展开2019的标签…

#SQL常见错误信息表 mysql导入数据出错常见错误

mysql的出错代码表&#xff0c;根据mysql的头文件mysql/include/mysqld_error.h整理而成。错误之处&#xff0c;请大家指正。 1005&#xff1a;创建表失败 1006&#xff1a;创建数据库失败 1007&#xff1a;数据库已存在&#xff0c;创建数据库失败 1008&#xff1a;数据库不存…

【C语言】深剖数据在内存中的存储

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在回炉重造C语言&#xff08;2023暑假&#xff09; ✈️专栏&#xff1a;【C语言航路】 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你…

Qt面试题集合

Qt 中常用的五大模块是哪些&#xff1f; Qt 中常用的五大模块包括&#xff1a; QtCore&#xff1a;提供了 Qt 的核心功能&#xff0c;例如基本的非 GUI 类、线程和事件处理等。 QtGui&#xff1a;提供用户界面&#xff08;UI&#xff09;类&#xff0c;例如窗口部件、按钮、标…

免费热门的 OCR 识别类接口汇总

OCR 识别类 身份证识别OCR&#xff1a;传入身份证照片&#xff0c;识别照片文字信息并返回&#xff0c;包括姓名、身份证号码、性别、民族、出生年月日、地址、签发机关及有效期。 通用文字识别OCR&#xff1a;多场景、多语种、高精度的整图文字检测和识别服务&#xff0c;多…

MySQL—约束和分页(八)

1.NOT NULL约束 -- 1 NOT NULL 约束 -- 1.1 创建NOT NULL 约束 -- 1.1.2 为id添加非空约束&#xff0c;为name添加非空约束&#xff0c;并设置默认值 CREATE TABLE emp( id INT(10) NOT NULL, name VARCHAR(20) NOT NULL DEFAULT abc, sex CHAR NULL ); -- 1.2 增加NOT NULL 约…

初识react

初识react 第一步就给我出个问题版本太低 https://www.cnblogs.com/gslgb/p/16585233.html https://blog.csdn.net/xiangshiyufengzhong/article/details/124193898 第二个问题 便利生成dom 需要绑定key 不要总想着加冒号这不是vue 第三个问题 我p标签包裹 MapList组件 MapLis…

java代码实现二叉树的先序、中序、后序和层次遍历的递归和循环迭代方式

import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.LinkedList; import java.util.List; import java.util.Queue; import java.util.Stack;public class InorderTraversal {// 先序遍历// 递归实现/** public static void …

C++并发多线程--临时对象的使用

1--传递临时对象作为线程参数 当使用 detach() 分离线程时&#xff0c;传递参数应注意以下问题&#xff1a; &#xff08;1&#xff09;传递 int 等简单类型参数时&#xff0c;建议使用值传递&#xff0c;而不使用引用传递&#xff0c;避免参数回收的问题&#xff08;主线程首先…