[leetcode]Longest Increasing Subsequence
来源:互联网 发布:mac chrome plugins 编辑:程序博客网 时间:2024/06/06 10:54
总体思想就是:
For example, if
nums = [5,6,7,1,2,8,3,4,0,5,9]
then after we prcoess the 7:
S = [5,6,7]
after w process the 2:
S = [1,2,7]
after we process the 8:
S = [1,2,7,8]
Then we process the 3:
S = [1,2,3,8]
We process the 4:
S = [1,2,3,4]
and now the next three lements:
S = [0,2,3,4,5,9]
如果不想使用另外一个数组,则可以使用给定数组的前n个位置。public class Solution { public int lengthOfLIS(int[] nums) { int len=nums.length,pos=0; if(nums == null || nums.length==0){ return 0; } int[] ret = new int[len]; ret[0] = nums[0]; pos++; for(int i=1;i<len;i++){ if(nums[i]>ret[pos-1] ){ ret[pos++]=nums[i]; }else if(nums[i]<ret[0] ){ ret[0]=nums[i]; }else{ int des=binarySearch(ret,pos,nums[i] ); ret[des]=nums[i]; } } return pos; } private int binarySearch(int[] num,int len,int target){ int low=0,high=len-1; while(low<=high){ int mid=low+(high-low)/2; if(num[mid] == target){ return mid; }else if(num[mid] < target ){ low=mid+1; }else{ high=mid-1; } } return low; }}
参考网址:https://leetcode.com/discuss/89066/short-c-stl-based-solution-o-log-time-space-with-explanation
0 0
- [LeetCode]Longest Increasing Subsequence
- [LeetCode] Longest Increasing Subsequence
- leetcode-Longest Increasing Subsequence
- [LeetCode]Longest Increasing Subsequence
- *LeetCode-Longest Increasing Subsequence
- Leetcode: Longest Increasing Subsequence
- LeetCode Longest Increasing Subsequence
- LeetCode -- Longest Increasing Subsequence
- [Leetcode]Longest Increasing Subsequence
- LeetCode Longest Increasing Subsequence
- Longest increasing subsequence |LeetCode
- Leetcode Longest Increasing Subsequence
- Leetcode: Longest Increasing Subsequence
- 【Leetcode】Longest Increasing Subsequence
- [Leetcode]Longest Increasing Subsequence
- leetcode--Longest Increasing Subsequence
- [LeetCode]Longest Increasing Subsequence
- [leetcode]Longest Increasing Subsequence
- PCA/SVD用于人脸图像数据
- BeautihulSoup的中文文档库
- fmt标签的格式化日期数字
- Redis+Spring缓存实例(windows环境,附实例源码及详解)
- Idea erlang 引入 .hrl文件中的宏,idea 显示Unresolved
- [leetcode]Longest Increasing Subsequence
- Android Graphic SurfaceFlinger 疑难解答
- SDAU 课程练习3 1024
- recyclerView导入问题
- 排序算法总结与C代码
- 线程池续
- 如何划分子网
- VI Package Manager与LABVIEW的连接问题小结
- 10.数值的整数次方(做第二遍时感觉仍有难度,第三次做就没有难度了)