说明

  • 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是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的使用]求最大和谐子序列相关推荐

  1. 算法(69)----最长和谐子序列

    一.题目:最长和谐子序列: 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3 ...

  2. LeetCode 594. 最长和谐子序列(map)

    文章目录 1. 题目 2. 解题 2.1 map+两次扫描 2.2 map+一次扫描 1. 题目 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可 ...

  3. 11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装

    11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装    昨天休息的时候一直在想应该学习哪种语言,我想这也是好多人发愁无法下手的原因之一 ...

  4. C#LeetCode刷题之#594-最长和谐子序列​​​​​​​​​​​​​​(Longest Harmonious Subsequence)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3800 访问. 和谐数组是指一个数组里元素的最大值和最小值之间的差 ...

  5. leetcode 594 最长和谐子序列

    https://leetcode-cn.com/problems/longest-harmonious-subsequence/ 题目 和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1 . ...

  6. 两个字符串的最长公共子序列长度_算法学习笔记(58): 最长公共子序列

    (为什么都更了这么多篇笔记了,这时候才讲这么基础的内容呢?因为我本来以为LCS这种简单的DP不用讲的,结果CF不久前考了LCS的变式,然后我发现由于自己对LCS一点都不熟,居然写不出来 ,于是决定还是 ...

  7. Leetcode 594. 最长和谐子序列

    和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1:输入: [1,3,2,2,5,2,3,7] 输 ...

  8. 594. 最长和谐子序列

    和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] ...

  9. 【LeetCode】594. 最长和谐子序列(js 实现)

    1.题目 594. 最长和谐子序列 - 力扣(LeetCode) (leetcode-cn.com) 2.实现 (1)方法一:哈希表(个人感觉这个更好理解,可能我对滑动窗口的做法不太熟悉吧) 代码 / ...

最新文章

  1. 对方不想和你说话 php,对方不想和你聊天的表现,遇到后赶紧放弃
  2. Spark的Transformations算子(理解+实例)
  3. 为什么switch里的case没有break不行
  4. MyBatis由浅入深学习总结之一:MyBatis入门案例
  5. 音乐计算机锦鲤抄,锦鲤抄 (feat. 银临)
  6. ESL-chapter8-EM算法介绍1-混合高斯的例子
  7. 80老翁谈人生(284):沃森参与打击网络犯罪
  8. 在制品和成本故障排除常用脚本
  9. 百度VR智拍再升级,3D环物拍摄一站生成
  10. 【计算机图形学】基础 - Colorization using Optimization
  11. 记录vultr搭建https爬虫代理
  12. 一文读懂MEMS技术4大主要分类及应用领域
  13. 【网络安全】什么是蜜罐和蜜网
  14. cmd命令行用copy和xcopy实现文件拷贝/目录复制
  15. zedboard第九课(LWIP standalone)
  16. h3c交换机限制端口访问_H3C交换机限制局域网端口网限方法
  17. js设置canvas的宽高(动态设置canvas的宽高)
  18. 为什么说“低估值买入,买到即赚到”?| 佛系理财
  19. 属于HTML注释,html注释与css注释的区别是什么?
  20. 《金融学》笔记 第八章 中央银行

热门文章

  1. Android中Log信息的输出方法
  2. zynq中mgtx应用_基于ZYNQ的UCOS移植(TCP通讯)
  3. python括号的区别_Python中类-带括号与不带括号的区别
  4. java connection 共享_java 使用HttpURLConnection发送数据简单实例
  5. mysql rename table_Mysql: RENAME TABLE IF EXISTS
  6. 怎么做手机的上下滑动_手机视频恢复怎么做?删除时间较久的找回方法
  7. tensorboard的可视化及模型可视化
  8. salesforce lightning零基础学习(三) 表达式的!(绑定表达式)与 #(非绑定表达式)
  9. 点击跳转到QQ聊天界面
  10. 2015 UESTC 数据结构专题G题 秋实大哥去打工 单调栈