算法 --- [map的使用]求最大和谐子序列
说明
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。
现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。
输入: [1,3,2,2,5,2,3,7]
输出: 5
原因: 最长的和谐数组是:[3,2,2,2,3].
思路
- 创建一个map用于统计数组中的值,及值出现的次数
- 创建一个max,用来保存出现的最大次数
- 遍历map,在map中寻找比当前值大1的值出现的次数
var findLHS = function (nums) {let map = new Map();for (let i = 0; i < nums.length; i++) {if (map.has(nums[i])) {map.set(nums[i], map.get(nums[i]) + 1)} else {map.set(nums[i], 1);}}let max = 0;for(let [key , value] of map){if(map.has(key +1)){max = Math.max(max, map.get(key +1) + map.get(key));}}return max
};
总结
- map的初始化
const map = new Map()
- 判断map中是否含有某个元素
map.has(xxx)
- 获取map的值
map.get(xxx)
- 设置map的值
map.set(xxx, yyy)
- map的遍历
for(let [key, value] of map) { xxx }
算法 --- [map的使用]求最大和谐子序列相关推荐
- 算法(69)----最长和谐子序列
一.题目:最长和谐子序列: 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3 ...
- LeetCode 594. 最长和谐子序列(map)
文章目录 1. 题目 2. 解题 2.1 map+两次扫描 2.2 map+一次扫描 1. 题目 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可 ...
- 11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装
11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装 昨天休息的时候一直在想应该学习哪种语言,我想这也是好多人发愁无法下手的原因之一 ...
- C#LeetCode刷题之#594-最长和谐子序列(Longest Harmonious Subsequence)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3800 访问. 和谐数组是指一个数组里元素的最大值和最小值之间的差 ...
- leetcode 594 最长和谐子序列
https://leetcode-cn.com/problems/longest-harmonious-subsequence/ 题目 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1 . ...
- 两个字符串的最长公共子序列长度_算法学习笔记(58): 最长公共子序列
(为什么都更了这么多篇笔记了,这时候才讲这么基础的内容呢?因为我本来以为LCS这种简单的DP不用讲的,结果CF不久前考了LCS的变式,然后我发现由于自己对LCS一点都不熟,居然写不出来 ,于是决定还是 ...
- Leetcode 594. 最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1:输入: [1,3,2,2,5,2,3,7] 输 ...
- 594. 最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] ...
- 【LeetCode】594. 最长和谐子序列(js 实现)
1.题目 594. 最长和谐子序列 - 力扣(LeetCode) (leetcode-cn.com) 2.实现 (1)方法一:哈希表(个人感觉这个更好理解,可能我对滑动窗口的做法不太熟悉吧) 代码 / ...
最新文章
- 对方不想和你说话 php,对方不想和你聊天的表现,遇到后赶紧放弃
- Spark的Transformations算子(理解+实例)
- 为什么switch里的case没有break不行
- MyBatis由浅入深学习总结之一:MyBatis入门案例
- 音乐计算机锦鲤抄,锦鲤抄 (feat. 银临)
- ESL-chapter8-EM算法介绍1-混合高斯的例子
- 80老翁谈人生(284):沃森参与打击网络犯罪
- 在制品和成本故障排除常用脚本
- 百度VR智拍再升级,3D环物拍摄一站生成
- 【计算机图形学】基础 - Colorization using Optimization
- 记录vultr搭建https爬虫代理
- 一文读懂MEMS技术4大主要分类及应用领域
- 【网络安全】什么是蜜罐和蜜网
- cmd命令行用copy和xcopy实现文件拷贝/目录复制
- zedboard第九课(LWIP standalone)
- h3c交换机限制端口访问_H3C交换机限制局域网端口网限方法
- js设置canvas的宽高(动态设置canvas的宽高)
- 为什么说“低估值买入,买到即赚到”?| 佛系理财
- 属于HTML注释,html注释与css注释的区别是什么?
- 《金融学》笔记 第八章 中央银行
热门文章
- Android中Log信息的输出方法
- zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)
- python括号的区别_Python中类-带括号与不带括号的区别
- java connection 共享_java 使用HttpURLConnection发送数据简单实例
- mysql rename table_Mysql: RENAME TABLE IF EXISTS
- 怎么做手机的上下滑动_手机视频恢复怎么做?删除时间较久的找回方法
- tensorboard的可视化及模型可视化
- salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)
- 点击跳转到QQ聊天界面
- 2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈