求一整型数组的严格单调的最长连续子序列的长度
来源:互联网 发布:如何查网络摄像头 编辑:程序博客网 时间:2024/06/06 02:04
求最长连续单调子序列
package adk;import java.util.ArrayList;import java.util.Collections;import java.util.Random;public class SearchMax {public static void main(String[] args) {// 模拟有50个1到100(包括1和100)的数int[] arr = new int[50];for (int i = 0; i < 50; i++) {arr[i] = new Random().nextInt(100) + 1;}// 先打印一下数组for (int i : arr) {System.out.print(i + ",");}System.out.println(); // 换行// 调用最长连续单点子序列方法int length = longestConMonoSubArr(arr);System.out.println(length);}//求数组中最长递增子序列private static int longestConMonoSubArr(int[] arr) {// 判断数组是都为空,为空返回0if (arr.length <= 0)return 0;int first = 0;int last = 0;int index = 0;// 各种长度的连续单调子序列长度,都放入集合中,一会比较出最大值;ArrayList<Integer> list = new ArrayList<>();// 1 单点递增连续子序列的情况,没有破坏数组的元素顺序for (int i = 1; i < arr.length; i++) {if (arr[i - 1] < arr[i]) {last = i;} else {index = last - first + 1; // 连续递增中断,记录子序列长度list.add(index); // 保存到集合中first = last = i; // 指针归到i所在位置继续}}// 2 单调递减连续子序列情况for (int i = 1; i < arr.length; i++) {if (arr[i - 1] > arr[i]) {last = i;} else {index = last - first + 1; // 连续递减中断,记录子序列长度list.add(index); // 也,保存到集合中first = last = i; // 指针归到i所在位置继续}}Integer max = Collections.max(list); // 求出集合中的最大值,即子序列的最大值return max;}}
阅读全文
0 0
- 求一整型数组的严格单调的最长连续子序列的长度
- 求最长单调递增子序列的长度
- 求数组的最长严格递增子序列
- 求一个数组的最长严格递增子序列
- 最长单调递增子序列的长度
- 求数组的最长递增子序列的长度
- UVA 10131 - Is Bigger Smarter?非连续的单调递增的最长子序列的长度
- 求数组中最长的连续子序列
- 求数组b的最长不减子序列长度
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度
- 求数组中最长递增子序列的长度
- C++ 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)输出最长子序列的长度及对应的子序列
- 求最长递增子序列的长度
- 求最长上升子序列的长度
- 移动端的分页
- 如何更改webstorm中ts自动生成get和set方法的带下划线问题
- 手动更新HomeAssistant版本
- Java 8 HashMap 实现机制简析
- 添加并设置sudo/su用户权限
- 求一整型数组的严格单调的最长连续子序列的长度
- Analyzing an exploit for СVE-2017-11826
- python numpy包基础(1)
- HDU 5701 中位数计数(思维,区间)好题
- Nginx与Tomcat 实现负载均衡
- java分割超大文本文件
- 46.Permutations leetcode java
- 编程作业(三)
- 15算法课程 171. Excel Sheet Column Number