300. Longest Increasing Subsequence
来源:互联网 发布:全国行政区域编码数据 编辑:程序博客网 时间:2024/05/18 19:20
Given an unsorted array of integers, find the length of longest increasing subsequence.
For example,
Given [10, 9, 2, 5, 3, 7, 101, 18],
The longest increasing subsequence is [2, 3, 7, 101], therefore the length is 4. Note that there may be more than one LIS combination, it is only necessary for you to return the length.
Your algorithm should run in O(n2) complexity.
Follow up: Could you improve it to O(n log n) time complexity?
O(n^2)
public class Solution { public int lengthOfLIS(int[] nums) { if (nums == null || nums.length == 0) return 0; int[] dp = new int[nums.length]; dp[0] = 1; int res = 1; for (int i = 1; i < nums.length; i++) { dp[i] = 0; for (int j = 0; j < i; j++) { if (nums[j] < nums[i] && dp[i] < dp[j]) dp[i] = dp[j]; } dp[i]++; res = Math.max(res, dp[i]); } return res; }}
O(nlogn)
public class Solution { public int lengthOfLIS(int[] nums) { if (nums == null || nums.length == 0) return 0; int[] tails = new int[nums.length]; tails[0] = nums[0]; int res = 1; for (int i = 1; i < nums.length; i++) { int left = 0, right = res; while (left < right) { int mid = (left + right) / 2; if (nums[i] > tails[mid]) left = mid + 1; else right = mid; } tails[left] = nums[i]; if (left == res) res++; } return res; }}
0 0
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 300. Longest Increasing Subsequence
- 【Unity自己写框架】FairyGUI UI框架(一)
- Jenkins插件开发hellworld
- Excel如何把数字信息按照字符导入Sqlserver
- 四大组件 — ContentProvider
- CAN网络开路和短路带来的影响
- 300. Longest Increasing Subsequence
- 《Head First设计模式》之策略模式
- 【DRP】一阶段
- NYOJ43 24 Point game
- JavaScript之Prototype学习(三)
- Fluent 旋转机械 风机 二维情况下的力矩计算算法
- CTF密码:紧急报文
- JAVA中经常用到的方法
- 1.11内存地址空间(概述)