java 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。
2023-09-27 14:21:31 时间
给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。
输入:nums = [1,3,5,4,7]
输出:3
解释:最长连续递增序列是 [1,3,5], 长度为3。
public class 最长连续递增序列 { public static void main(String[] args) { int[] a = {4, 3, 1, 5, 7, 9}; System.out.println(findLengthOfLCIS(a)); } public static int findLengthOfLCIS(int[] nums) { if (nums.length == 0) return 0; int max = 0, num = 1; for (int i = 0; i < nums.length - 1; i++){ if (nums[i + 1] > nums[i]){ num++; }else { if (num > max) //比较谁是最长序列 max = num; num = 1; //重新计数 } } return Math.max(max, num); } }
给定一个字符串,求最大连续递增数字串(如ads3s456789DF3456d345AA中的456789)
public class 最长连续递增序列2 { public static void main(String[] args) { System.out.println(func("ads3s456789DF3456d345AA")); } public static int func(String s){ int num = 1, max = 0; for (int i = 0; i < s.length() - 1; i++){ if (Character.isDigit(s.charAt(i)) && Character.isDigit(s.charAt(i + 1))){ if (s.charAt(i + 1) > s.charAt(i)){ num++; } else { if (num > max) max = num; num = 1; } }else { if (num > max) max = num; num = 1; } } return max > num ? max : num; } }
相关文章
- java 算法最长连续递增序列
- Java学习笔记之常用API & 异常
- java 数据类型
- 千万不要误用 java 中的 HashCode 方法
- java 集成Redis 一主多从
- JAVA基础 XML生成与解析和String包装类下 .replace方法的使用以及char和字符序列的使用场景
- java实现双链表
- 【算法数据结构Java实现】时间复杂度为O(n)的最大和序列
- Java 使用aspose.word多张图片转成pdf的方法及示例代码
- java 基础之入门第一个坑 错误:找不到或无法加载主类
- Java大数据开发工程师__Spring学习笔记(待更新)
- 【华为OD机试真题 Java】判断字符串子序列
- 【华为OD机试真题 Java】最长连续子序列