题解 | #牧场里的编号顺序# java
牧场里的编号顺序
https://www.nowcoder.com/practice/6741b77f486a493da5258738323ddd3e
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param ids int整型一维数组
* @param n int整型
* @return int整型
*/
public int longestConsecutive (int[] ids, int n) {
// write code here
// 初始化指针
int slow = 0; // 慢指针,指向当前递增序列的起始位置
int fast = 1; // 快指针,用于扫描数组中的元素
int length = 0; // 记录当前最长连续递增子序列的长度
// 遍历数组
while (fast <= ids.length - 1) {
if (ids[fast] > ids[fast - 1]) {
// 如果当前元素大于前一个元素,则继续扫描
fast++;
} else {
// 如果当前元素不大于前一个元素,表示递增序列中断
// 更新最长序列长度,并移动慢指针和快指针
length = Math.max(length, fast - slow);
slow = fast;
fast = slow + 1;
}
}
// 返回最长序列长度(注意需要再次比较一次,以防最后一个递增序列没有被计算)
return Math.max(length, fast - slow);
}
}
用的编程语言是Java。
该题考察的知识点包括:
- 数组的遍历和操作
- 最大值的比较
代码文字解释: 在代码中已经解释,没什么难点,就比较最大值和快慢指针而已。
