考察知识点:双指针
题目分析:
从0开始,不断指向下一个更大的牛的编号。当右边的编号比左边小时停止。记录这段长度值,并维护最大的长度。
之后以这个不满足条件的结点开始,找对应的一段递增序列的长,维护最大长度即可。
所用编程语言:C++
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param ids int整型vector * @param n int整型 * @return int整型 */ int longestConsecutive(vector<int>& ids, int n) { // write code here int res = 0; for (int i = 0; i < n; i++) { int len = 1; int j = i + 1; while (j < n && ids[j] >= ids[j - 1]) { j++; len++; } i = j - 1; res = max(res, len); } return res; } };