一个sequence,里面都是整数,求最长的subsequence的长度,使得这个subsquence的最大值和最小值相差不超过1. 比如[1,3,2,2,5,2,3,7]最长的subsequence是[3,2,2,2,3],所以应该返回5.

分析:

这题可以先排序,然后找出两个相差1的相邻值的最大长度。第二种方法可以用HashMap,保存每个值出现的个数,然后从当前值往下找比当前值大1的数出现的个数。

   public int maxSequence(int[] arr) {
if (arr == null || arr.length == )
return ; Map<Integer, Integer> map = new HashMap<>();
for (int key : arr) {
map.put(key, map.getOrDefault(key, ) + );
}
int max = ;
for (int key : arr) {
max = Math.max(max, map.get(key) + map.getOrDefault(key + , ));
}
return max;
}

最新文章

  1. Red5 1.0.0RC1 集成到tomcat6.0.35中运行&amp;部署新的red5项目到tomcat中
  2. Public key for mysql....rpm is not installed
  3. Vitrualbox虚拟机网络设置
  4. JavaScript的eval函数
  5. 【转】Java之WeakReference与SoftReference使用讲解
  6. Activiti 学习资料收集
  7. 字符串核对之Boyer-Moore算法
  8. fseek ftell rewind
  9. Java collection 的一些介绍 集合
  10. WEB 安全之 SQL注入 &lt; 二 &gt; 暴库
  11. JqueryPagination 分页插件使用说明
  12. 学习ASP.NET MVC(十)——排序
  13. C#开发Windows窗体应用程序的步骤
  14. web 表单提交按钮的测试点
  15. IdentityServer4实战 - 必须使用HTTPS问题解析
  16. 具体CAS操作实现(无锁算法)
  17. Mvc_ActionResult返回值
  18. 安装包制作工具 SetupFactory 详解
  19. 第22章:MongoDB-聚合操作--聚合管道--$out
  20. 【设计模式】—— 桥接模式Bridge

热门文章

  1. SaltStack安装篇
  2. jQuery 根据城市时区,选择对应的即时时间
  3. Yii2.0 实现的短信发送
  4. 浅谈JavaScript中的事件
  5. Java多线程编程核心技术---Java多线程技能
  6. vim 树形目录插件NERDTree安装及简单用法
  7. iOS 8 牛刀小试
  8. #define 中#和##的作用
  9. C# 添加excel批注
  10. nyoj 171 聪明的kk