最长递减子序列(nlogn)(个人模版)

简介: 最长递减子序列(nlogn): 1 int find(int n,int key) 2 { 3 int left=0; 4 int right=n; 5 while(leftkey) 9 { 10 left...

最长递减子序列(nlogn):

 1 int find(int n,int key)
 2 {
 3     int left=0;
 4     int right=n;
 5     while(left<=right)
 6     {
 7         int mid=(left+right)/2;
 8         if(res[mid]>key)
 9         {
10             left=mid+1;
11         }
12         else
13         {
14             right=mid-1;
15         }
16     }
17     return left;
18 }
19 
20 int Lis(int a[],int n)
21 {
22     int r=0;
23     res[r]=a[0];
24     r++;
25     for(int i=1;i<n;i++)
26     {
27         if(res[r-1]>a[i])
28         {
29             res[r]=a[i];
30             r++;
31         }
32         else
33         {
34             int loc=find(r,a[i]);
35             res[loc]=a[i];
36         }
37     }
38     return r;
39 }

 

目录
相关文章
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
【动态规划刷题 15】最长定差子序列&& 最长的斐波那契子序列的长度
|
5月前
代码随想录 Day44 动规12 LeetCode T300 最长递增子序列 T674 最长连续递增序列 T718 最长重复子数组
代码随想录 Day44 动规12 LeetCode T300 最长递增子序列 T674 最长连续递增序列 T718 最长重复子数组
58 0
|
5月前
|
算法 测试技术 C#
前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度
前缀和+单调双队列+贪心:LeetCode2945:找到最大非递减数组的长度
|
5月前
|
算法 测试技术 C#
【滑动窗口】【二分查找】C++算法:和至少为 K 的最短子数组
【滑动窗口】【二分查找】C++算法:和至少为 K 的最短子数组
|
5月前
|
算法 测试技术 C#
二分查找|滑动窗口|前缀和|LeetCode209: 长度最小的子数组
二分查找|滑动窗口|前缀和|LeetCode209: 长度最小的子数组
|
5月前
|
人工智能
leetcode-718:最长重复子数组
leetcode-718:最长重复子数组
46 0
|
5月前
【每日一题Day157】LC1574删除最短的子数组使剩余数组有序 | 双指针 + 二分查找
【每日一题Day157】LC1574删除最短的子数组使剩余数组有序 | 双指针 + 二分查找
35 0
|
11月前
|
算法
代码随想录算法训练营第五十二天 | LeetCode 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
代码随想录算法训练营第五十二天 | LeetCode 300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
44 1
|
机器学习/深度学习 人工智能 算法
代码随想录训练营day52| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组...
代码随想录训练营day52| 300.最长递增子序列 674. 最长连续递增序列 718. 最长重复子数组...
|
人工智能
leetcode 718 最长重复子数组
leetcode 718 最长重复子数组
62 0
leetcode 718 最长重复子数组