知识点

双指针

思路

我们可以假设连续递增的子序列左端点为i,右端点为j。对于ij,假设一开始位于下标为0处,不断右移j,若ids[j]>ids[j-1]则当前序列仍然为合法连续递增序列,否则需要更新i到j处,进行新的判断。

代码c++

#include <algorithm>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param ids int整型vector 
     * @param n int整型 
     * @return int整型
     */
    int longestConsecutive(vector<int>& ids, int n) {
        // write code here
      int i=0;int ans=1;
      for(int j=1;j<n;j++)
      {
        if(ids[j]>ids[j-1])
        {
            ans=max(ans,j-i+1);
        }
        else {
          i=j;
        }
      }
      return ans; 
    }
};