import java.util.Arrays;
/**
* 输入一个数组,1, 5, 6, 2, 3, 4, 5, 6, 1, 2
* 1,5,6有序长度为3, 2,3,4,5,6有序长度为5, 1,2有序长度为2
* 输出他们最常的有序长度为5
* Created by hjt on 2020/3/14.
*/
public class LongestSortedLengthDemo {
public static void main(String[] args) {
// int[] b = {};
// int[] b = {1};
// int[] b = {1, 2};
// int[] b = {2,1};
// int[] b = {2,1,2,3,123,1,2};
int[] b = {1, 5, 6, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8};
//int[] b = {1, 5, 6, 2, 3, 4, 5, 6, 1, 2};
int longestOrderedStringLength = longestOrderedStringLength(b);
System.out.println("数组" + Arrays.toString(b) + "最长有序长度:" + longestOrderedStringLength);
}
public static int longestOrderedStringLength(int[] data) {
if (data == null || data.length == 0) {
return 0;
}
if (data.length == 1) {
return 1;
}
int dataLen = data.length;
int lastInt = data[0];
int maxOrderedLength = 1;
int lastOrderedLength = 1;
for (int i = 1; i < dataLen; i++) {
int nowInt = data[i];
if (nowInt >= lastInt) {
lastOrderedLength++;
if (lastOrderedLength > maxOrderedLength) {
maxOrderedLength = lastOrderedLength;
}
}else {
if (lastOrderedLength > maxOrderedLength) {
maxOrderedLength = lastOrderedLength;
}
lastOrderedLength = 1;
}
lastInt = nowInt;
}
return maxOrderedLength;
}
}
最大有序数组长度
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 题目 给定一个升序整数数组,写一个函数搜索 nums 中数字 target。如果 target 存在,返回它的下标...
- 给出一个整数数字,有正有负,找一个长度大于等于k的一个子数组(即数组中相邻的k个数),使他的平均值最大。示例:给出...
- 本文实例讲述了JS获取数组最大值、最小值及长度的方法。分享给大家供大家参考,具体如下: //最小值Array.pr...