File tree 7 files changed +87
-17
lines changed
solution/0100-0199/0121.Best Time to Buy and Sell Stock
7 files changed +87
-17
lines changed Original file line number Diff line number Diff line change @@ -65,17 +65,51 @@ class Solution {
65
65
* @return {number}
66
66
*/
67
67
var maxSubArray = function (nums ) {
68
- if (! nums || ! nums .length ) return null ;
69
- let len = nums .length ;
70
- let dp = new Array (len);
71
- dp[0 ] = nums[0 ];
72
- for (let i = 1 ; i < len; i++ ) {
73
- dp[i] = Math .max (nums[i], dp[i - 1 ] + nums[i]);
68
+ let res = nums[0 ];
69
+ let f = nums[0 ];
70
+ for (let i = 1 ; i < nums .length ; ++ i) {
71
+ f = Math .max (f, 0 ) + nums[i];
72
+ res = Math .max (res, f);
74
73
}
75
- return Math . max ( ... dp) ;
74
+ return res ;
76
75
};
77
76
```
78
77
78
+ ### ** C++**
79
+
80
+ ``` cpp
81
+ class Solution {
82
+ public:
83
+ int maxSubArray(vector<int >& nums) {
84
+ int res = nums[ 0] , f = nums[ 0] ;
85
+ for (int i = 1; i < nums.size(); ++i) {
86
+ f = max(f, 0) + nums[ i] ;
87
+ res = max(res, f);
88
+ }
89
+ return res;
90
+ }
91
+ };
92
+ ```
93
+
94
+ ### **Go**
95
+
96
+ ```go
97
+ func maxSubArray(nums []int) int {
98
+ f, res := nums[0], nums[0]
99
+ for i := 1; i < len(nums); i++ {
100
+ if f > 0 {
101
+ f += nums[i]
102
+ } else {
103
+ f = nums[i]
104
+ }
105
+ if f > res {
106
+ res = f
107
+ }
108
+ }
109
+ return res
110
+ }
111
+ ```
112
+
79
113
### ** ...**
80
114
81
115
```
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int maxSubArray (vector<int >& nums) {
4
+ int res = nums[0 ], f = nums[0 ];
5
+ for (int i = 1 ; i < nums.size (); ++i) {
6
+ f = max (f, 0 ) + nums[i];
7
+ res = max (res, f);
8
+ }
9
+ return res;
10
+ }
11
+ };
Original file line number Diff line number Diff line change
1
+ func maxSubArray (nums []int ) int {
2
+ f , res := nums [0 ], nums [0 ]
3
+ for i := 1 ; i < len (nums ); i ++ {
4
+ if f > 0 {
5
+ f += nums [i ]
6
+ } else {
7
+ f = nums [i ]
8
+ }
9
+ if f > res {
10
+ res = f
11
+ }
12
+ }
13
+ return res
14
+ }
Original file line number Diff line number Diff line change 3
3
* @return {number }
4
4
*/
5
5
var maxSubArray = function ( nums ) {
6
- if ( ! nums || ! nums . length ) return null ;
7
- let len = nums . length ;
8
- let dp = new Array ( len ) ;
9
- dp [ 0 ] = nums [ 0 ] ;
10
- for ( let i = 1 ; i < len ; i ++ ) {
11
- dp [ i ] = Math . max ( nums [ i ] , dp [ i - 1 ] + nums [ i ] ) ;
6
+ let res = nums [ 0 ] ;
7
+ let f = nums [ 0 ] ;
8
+ for ( let i = 1 ; i < nums . length ; ++ i ) {
9
+ f = Math . max ( f , 0 ) + nums [ i ] ;
10
+ res = Math . max ( res , f ) ;
12
11
}
13
- return Math . max ( ... dp ) ;
12
+ return res ;
14
13
} ;
Original file line number Diff line number Diff line change @@ -86,7 +86,11 @@ class Solution {
86
86
### ** JavaScript**
87
87
88
88
``` js
89
- const maxProfit1 = function (prices ) {
89
+ /**
90
+ * @param {number[]} prices
91
+ * @return {number}
92
+ */
93
+ const maxProfit = function (prices ) {
90
94
let min = prices[0 ];
91
95
let profit = 0 ;
92
96
for (let i = 0 ; i < prices .length ; i++ ) {
Original file line number Diff line number Diff line change @@ -76,7 +76,11 @@ class Solution {
76
76
### ** JavaScript**
77
77
78
78
``` js
79
- const maxProfit1 = function (prices ) {
79
+ /**
80
+ * @param {number[]} prices
81
+ * @return {number}
82
+ */
83
+ const maxProfit = function (prices ) {
80
84
let min = prices[0 ];
81
85
let profit = 0 ;
82
86
for (let i = 0 ; i < prices .length ; i++ ) {
Original file line number Diff line number Diff line change 1
- const maxProfit1 = function ( prices ) {
1
+ /**
2
+ * @param {number[] } prices
3
+ * @return {number }
4
+ */
5
+ const maxProfit = function ( prices ) {
2
6
let min = prices [ 0 ] ;
3
7
let profit = 0 ;
4
8
for ( let i = 0 ; i < prices . length ; i ++ ) {
You can’t perform that action at this time.
0 commit comments