leetcode 300. Longest Increasing Subsequence 解题报告
来源:互联网 发布:灰色模型预测软件 编辑:程序博客网 时间:2024/06/10 18:07
原题链接
原题链接
解题思路
最开始的思路是维护一个最大值,复杂度是n^2。后来看题目要求可以做到n*lgn,提示二分。
首先建立一个数组dp,维护最长递增数组。遍历每个数字,二分查找dp数组获得该插入的地方。最后维护dp数组长度len即最后答案。
解题代码
public class Solution { public int lengthOfLIS(int[] nums) { int[] dp = new int[nums.length]; int len = 0; for (int i = 0;i < nums.length ;i++ ) { int idx = Arrays.binarySearch(dp,0,len,nums[i]); if(idx < 0) { idx = -(idx + 1);//binarySearch没找到返回值是-(low+1),我们取low } dp[idx] = nums[i]; if(idx == len) { len++; } } return len; }}
1 0
- [leetcode] 300. Longest Increasing Subsequence 解题报告
- LeetCode 300. Longest Increasing Subsequence 解题报告
- leetcode 300. Longest Increasing Subsequence 解题报告
- [Leetcode] 300. Longest Increasing Subsequence 解题报告
- Number of Longest Increasing Subsequence 解题报告
- Leetcode-300.Longest Increasing Subsequence
- 300. Longest Increasing Subsequence LeetCode
- [leetcode] 300. Longest Increasing Subsequence
- leetcode 300. Longest Increasing Subsequence
- LeetCode *** 300. Longest Increasing Subsequence
- LeetCode 300. Longest Increasing Subsequence
- LeetCode-300.Longest Increasing Subsequence
- [leetcode] 300. Longest Increasing Subsequence
- leetcode 300. Longest Increasing Subsequence
- LeetCode 300. Longest Increasing Subsequence
- leetcode 300. Longest Increasing Subsequence
- [LeetCode]--300. Longest Increasing Subsequence
- [leetcode] 300. Longest Increasing Subsequence
- C# 用 checked 做字段,但checked是C#关键字
- JVM垃圾收集
- Python xrange与range的区别
- 希尔排序
- Android防止按钮连续点击
- leetcode 300. Longest Increasing Subsequence 解题报告
- 欢迎使用CSDN-markdown编辑器
- Struts 2读书笔记------struts 2的标签
- Dos下进入指定目录
- makefile下的echo颜色控制
- java垃圾回收机制
- MacType v1.2016.0902.1
- 2016年8月书单
- php专业面试总结