File tree 7 files changed +73
-22
lines changed
0300-0399/0300.Longest Increasing Subsequence
0600-0699/0674.Longest Continuous Increasing Subsequence
7 files changed +73
-22
lines changed Original file line number Diff line number Diff line change @@ -46,10 +46,10 @@ class Solution:
46
46
n = len (nums)
47
47
if n < 2 :
48
48
return n
49
- dp = [1 for _ in nums]
49
+ dp = [1 ] * n
50
50
res = 1
51
51
for i in range (1 , n):
52
- for j in range (0 , i):
52
+ for j in range (i):
53
53
if nums[j] < nums[i]:
54
54
dp[i] = max (dp[i], dp[j] + 1 )
55
55
res = max (res, dp[i])
Original file line number Diff line number Diff line change @@ -37,10 +37,10 @@ class Solution:
37
37
n = len (nums)
38
38
if n < 2 :
39
39
return n
40
- dp = [1 for _ in nums]
40
+ dp = [1 ] * n
41
41
res = 1
42
42
for i in range (1 , n):
43
- for j in range (0 , i):
43
+ for j in range (i):
44
44
if nums[j] < nums[i]:
45
45
dp[i] = max (dp[i], dp[j] + 1 )
46
46
res = max (res, dp[i])
Original file line number Diff line number Diff line change @@ -3,10 +3,10 @@ def lengthOfLIS(self, nums: List[int]) -> int:
3
3
n = len (nums )
4
4
if n < 2 :
5
5
return n
6
- dp = [1 for _ in nums ]
6
+ dp = [1 ] * n
7
7
res = 1
8
8
for i in range (1 , n ):
9
- for j in range (0 , i ):
9
+ for j in range (i ):
10
10
if nums [j ] < nums [i ]:
11
11
dp [i ] = max (dp [i ], dp [j ] + 1 )
12
12
res = max (res , dp [i ])
Original file line number Diff line number Diff line change 30
30
31
31
<!-- 这里可写通用的实现逻辑 -->
32
32
33
+ 设 f(i) 表示将数组第 i 项作为最长连续递增子序列的最后一项时,子序列的长度。
34
+
35
+ 那么,当 ` nums[i - 1] < nums[i] ` ,即 ` f(i) = f(i - 1) ` + 1,否则 ` f(i) = 1 ` 。问题转换为求 f(i) (` i ∈ [0 ,n - 1] ` ) 的最大值。
36
+
37
+ 由于 f(i) 只与前一项 f(i - 1) 有关联,故不需要用一个数组存储。
38
+
33
39
<!-- tabs:start -->
34
40
35
41
### ** Python3**
36
42
37
43
<!-- 这里可写当前语言的特殊实现逻辑 -->
38
44
39
45
``` python
40
-
46
+ class Solution :
47
+ def findLengthOfLCIS (self , nums : List[int ]) -> int :
48
+ n = len (nums)
49
+ if n < 2 :
50
+ return n
51
+ res = f = 1
52
+ for i in range (1 , n):
53
+ f = 1 + (f if nums[i - 1 ] < nums[i] else 0 )
54
+ res = max (res, f)
55
+ return res
41
56
```
42
57
43
58
### ** Java**
44
59
45
60
<!-- 这里可写当前语言的特殊实现逻辑 -->
46
61
47
62
``` java
48
-
63
+ class Solution {
64
+ public int findLengthOfLCIS (int [] nums ) {
65
+ int n;
66
+ if ((n = nums. length) < 2 ) return n;
67
+ int res = 1 , f = 1 ;
68
+ for (int i = 1 ; i < n; ++ i) {
69
+ f = 1 + (nums[i - 1 ] < nums[i] ? f : 0 );
70
+ res = Math . max(res, f);
71
+ }
72
+ return res;
73
+ }
74
+ }
49
75
```
50
76
51
77
### ** ...**
Original file line number Diff line number Diff line change @@ -53,13 +53,33 @@ Length of the array will not exceed 10,000.
53
53
### ** Python3**
54
54
55
55
``` python
56
-
56
+ class Solution :
57
+ def findLengthOfLCIS (self , nums : List[int ]) -> int :
58
+ n = len (nums)
59
+ if n < 2 :
60
+ return n
61
+ res = f = 1
62
+ for i in range (1 , n):
63
+ f = 1 + (f if nums[i - 1 ] < nums[i] else 0 )
64
+ res = max (res, f)
65
+ return res
57
66
```
58
67
59
68
### ** Java**
60
69
61
70
``` java
62
-
71
+ class Solution {
72
+ public int findLengthOfLCIS (int [] nums ) {
73
+ int n;
74
+ if ((n = nums. length) < 2 ) return n;
75
+ int res = 1 , f = 1 ;
76
+ for (int i = 1 ; i < n; ++ i) {
77
+ f = 1 + (nums[i - 1 ] < nums[i] ? f : 0 );
78
+ res = Math . max(res, f);
79
+ }
80
+ return res;
81
+ }
82
+ }
63
83
```
64
84
65
85
### ** ...**
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public int findLengthOfLCIS (int [] nums ) {
3
- if (nums == null || nums .length == 0 ) {
4
- return 0 ;
5
- }
6
- int cnt = 1 ;
7
- int res = 1 ;
8
- for (int i = 1 ; i < nums .length ; ++i ) {
9
- if (nums [i ] > nums [i - 1 ]) {
10
- res = Math .max (res , ++cnt );
11
- } else {
12
- cnt = 1 ;
13
- }
3
+ int n ;
4
+ if ((n = nums .length ) < 2 ) return n ;
5
+ int res = 1 , f = 1 ;
6
+ for (int i = 1 ; i < n ; ++i ) {
7
+ f = 1 + (nums [i - 1 ] < nums [i ] ? f : 0 );
8
+ res = Math .max (res , f );
14
9
}
15
10
return res ;
16
11
}
17
- }
12
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def findLengthOfLCIS (self , nums : List [int ]) -> int :
3
+ n = len (nums )
4
+ if n < 2 :
5
+ return n
6
+ res = f = 1
7
+ for i in range (1 , n ):
8
+ f = 1 + (f if nums [i - 1 ] < nums [i ] else 0 )
9
+ res = max (res , f )
10
+ return res
You can’t perform that action at this time.
0 commit comments