File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -1818,7 +1818,7 @@ public:
1818
1818
1819
1819
#### 方法1:动态规划
1820
1820
1821
- 定义一个`dp`数组,`dp[i]`表示在`i`位置之前**小于`nums[i]`的并且能组成最长上升序列的数字个数 **(包括`nums[i]`本身),我们初始化`dp`数组都为1,然后我们开始遍历原数组,对当前数字`nums[i]`,我们遍历其之前的所有数字,如果之前某个数字`nums[j]`小于`nums[i]`,那么我们更新`dp[i] = max(dp[i], dp[j] + 1)`,如果此时`dp[i]`到3了,则返回`true`,若遍历完成,则返回`false`。
1821
+ 定义一个`dp`数组,`dp[i]`表示在`i`位置之前**小于`nums[i]`并且能组成最长上升序列的数字的个数 **(包括`nums[i]`本身),我们初始化`dp`数组都为1,然后我们开始遍历原数组,对当前数字`nums[i]`,我们遍历其之前的所有数字,如果之前某个数字`nums[j]`小于`nums[i]`,那么我们更新`dp[i] = max(dp[i], dp[j] + 1)`,如果此时`dp[i]`到3了,则返回`true`,若遍历完成,则返回`false`。
1822
1822
1823
1823
- 时间复杂度:O(*n<sup>2</sup>*)
1824
1824
- 空间复杂度:O(*n*)
@@ -1849,7 +1849,7 @@ public:
1849
1849
1850
1850
#### 方法2:贪心
1851
1851
1852
- 定义两个指针` less ` 和` more ` ,初始化为整型最大值,我们遍历数组,如果` less ` 大于等于当前数字,则将当前数字赋给` less ` ;如果` less ` 小于当前数字且` more ` 大于等于当前数字,那么将当前数字赋给` more ` ,一旦` more ` 被更新了,说明前面一定会有一个数小于` more ` ,那么我们就成功的组成了一个长度为2的递增子序列,所以我们一旦遍历到比` more ` 还大的数,我们直接返回` true ` 。如果我们遇到比` less ` 小的数,仍然要更新` less ` ,同时也要更新 ` more ` 为更小的值,毕竟` more ` 的值越小,能组成长度为3的递增序列的可能性越大。
1852
+ 定义两个指针` less ` 和` more ` ,初始化为整型最大值,我们遍历数组,如果` less ` 大于等于当前数字,则将当前数字赋给` less ` ;如果` less ` 小于当前数字且` more ` 大于等于当前数字,那么将当前数字赋给` more ` ,一旦` more ` 被更新了,说明前面一定会有一个数小于` more ` ,那么我们就成功的组成了一个长度为2的递增子序列,所以我们一旦遍历到比` more ` 还大的数,我们直接返回` true ` 。如果我们遇到比` less ` 小的数,仍然要更新` less ` ,同时有可能的话也要更新 ` more ` 为更小的值,毕竟` more ` 的值越小,能组成长度为3的递增序列的可能性越大。
1853
1853
1854
1854
- 时间复杂度:O(* n* )
1855
1855
- 空间复杂度:O(1)
You can’t perform that action at this time.
0 commit comments