题目 方法一:动态规划 我们可以维护一个数组$dp[]$,$dp[i]$表示以$nums[i]$为结尾元素的最长上升子序列的长度。在计算$dp[i]$之前,我们已经计算出了$dp[0....i-1]$的值,考虑在$num[i]$之前的最长子序列的尾部加上$nums[i]$, $dp[j]$代表$nu ...
分类:
其他好文 时间:
2020-12-16 11:50:45
阅读次数:
4
标签 稳定排序、非原地排序、比较排序 基本思想 归并排序属于比较类非线性时间排序,号称比较类排序中性能最佳者,在数据中应用中较广。 归并排序是分治法(Divide and Conquer)的一个典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有 ...
分类:
编程语言 时间:
2020-12-14 13:39:09
阅读次数:
5
非商业,LeetCode链接附上: https://leetcode-cn.com/problems/longest-increasing-subsequence/ 进入正题。 题目: 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] ...
分类:
其他好文 时间:
2020-12-10 10:49:44
阅读次数:
2
class Solution { public: bool isPossible(vector<int>& nums) { unordered_map<int, int> numsCntMap;//numsCntMap[num]表示的是num剩余的个数 unordered_map<int, int> ...
分类:
编程语言 时间:
2020-12-09 11:33:26
阅读次数:
7
11.11 41. 132模式 给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。 输入: [-1, 3 ...
分类:
其他好文 时间:
2020-11-25 12:23:43
阅读次数:
6
给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 注意:如果输入[]的话,自然输出0如果输入[1]或者[2]之类包含一个值的输入,应该输出1,一开始我以为是也 ...
分类:
编程语言 时间:
2020-11-20 12:02:19
阅读次数:
9
题目描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB。则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA。序列无须是连续的,重复即可。 解题思路 暴力遍历 动态规划 暴力遍历 ...
分类:
其他好文 时间:
2020-11-16 13:50:06
阅读次数:
9
最长回文子序列 题目: 给定一个字符串 s ,找到其中最长的回文子序列,并返回该序列的长度。可以假设 s 的最大长度为 1000 。 示例 1: 输入: "bbbab" 输出: 4 一个可能的最长回文子序列为 "bbbb"。 示例 2: 输入: "cbbd" 输出: 2 一个可能的最长回文子序列为 ...
分类:
其他好文 时间:
2020-11-10 10:41:34
阅读次数:
2
比赛链接:https://codeforces.com/contest/1445 A. Array Rearrangment 题意 给定两个大小均为 \(n\) 的升序数组 \(a\) 和 \(b\) ,判断能否重排数组 \(b\) 使得对任意 \(i\) 均满足 \(a_i + b_i \le x ...
分类:
其他好文 时间:
2020-11-04 19:03:34
阅读次数:
17
单调递增最长子序列分析: 1.1: i == 0时:dp[0] = 1; 其余情况: dp[i] = max( dp[i] , dp[ j ] + 1); 0 <= j < i; 1.2 填表的维度: 一维 填表的范围: dp[0] 到 dp[n-1] 填表顺序:从左向右 1.3 因为要以每一个数位 ...
分类:
编程语言 时间:
2020-11-01 22:01:32
阅读次数:
24