最长上升子序列二分写法

以此类推,
代码写法:

cnt = 0;
st[cnt] = -INT_MAX;
for(int i = 1; i <= n; i ++)
{
    if(a[i] > st[cnt])  st[++cnt] = a[i];
    else
    {
        int l = 0, r = cnt;
        while(l < r)
        {
            int mid = (l + r) >> 1;
            if(a[i] <= st[mid]) r = mid;
            else l = mid + 1;
        }
        st[l] = a[i];
    }
}

cout<<cnt<<endl;

最长上升子序列二分写法
https://dreamerland.cn/2024/02/23/算法/上升子序列模型二分写法/
作者
Silva31
发布于
2024年2月23日
许可协议