Skip to content

Commit 12b4698

Browse files
committed
Added lots
1 parent 8510462 commit 12b4698

13 files changed

+269
-1
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#include <vector>
2+
3+
class Solution {
4+
public:
5+
int maxProfit(std::vector<int>& prices) {
6+
int i = 0;
7+
int lo = prices[0];
8+
int hi = prices[0];
9+
int profit = 0;
10+
int n = prices.size();
11+
12+
while (i < n - 1) {
13+
// Look where to buy
14+
while (i < n - 1 && prices[i] >= prices[i + 1]) {
15+
i++;
16+
}
17+
lo = prices[i];
18+
19+
// Look where to sell
20+
while (i < n - 1 && prices[i] <= prices[i + 1]) {
21+
i++;
22+
}
23+
hi = prices[i];
24+
25+
profit += hi - lo;
26+
}
27+
28+
return profit;
29+
}
30+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public int maxProfit(int[] prices) {
3+
int i = 0;
4+
int lo = prices[0];
5+
int hi = prices[0];
6+
int profit = 0;
7+
int n = prices.length;
8+
9+
while (i < n - 1) {
10+
// Look where to buy
11+
while (i < n - 1 && prices[i] >= prices[i + 1]) {
12+
i++;
13+
}
14+
lo = prices[i];
15+
16+
// Look where to sell
17+
while (i < n - 1 && prices[i] <= prices[i + 1]) {
18+
i++;
19+
}
20+
hi = prices[i];
21+
22+
profit += hi - lo;
23+
}
24+
25+
return profit;
26+
}
27+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
var maxProfit = function(prices) {
2+
var i = 0;
3+
var lo = prices[0];
4+
var hi = prices[0];
5+
var profit = 0;
6+
var n = prices.length;
7+
8+
while (i < n - 1) {
9+
// Look where to buy
10+
while (i < n - 1 && prices[i] >= prices[i + 1]) {
11+
i++;
12+
}
13+
lo = prices[i];
14+
15+
// Look where to sell
16+
while (i < n - 1 && prices[i] <= prices[i + 1]) {
17+
i++;
18+
}
19+
hi = prices[i];
20+
21+
profit += hi - lo;
22+
}
23+
24+
return profit;
25+
};
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
def maxProfit(self, prices: List[int]) -> int:
3+
i = 0
4+
lo = prices[0]
5+
hi = prices[0]
6+
profit = 0
7+
n = len(prices)
8+
9+
while i < n-1:
10+
# look where to buy
11+
while i < n-1 and prices[i] >= prices[i+1]:
12+
i += 1
13+
lo = prices[i]
14+
15+
# look where to sell
16+
while i < n-1 and prices[i] <= prices[i+1]:
17+
i += 1
18+
hi = prices[i]
19+
20+
profit += hi - lo
21+
22+
return profit # Time: O(n), Space: O(1)
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include <vector>
2+
#include <algorithm>
3+
4+
class Solution {
5+
public:
6+
int jump(std::vector<int>& nums) {
7+
int smallest = 0;
8+
int n = nums.size();
9+
int end = 0;
10+
int far = 0;
11+
12+
for (int i = 0; i < n - 1; i++) {
13+
far = std::max(far, i + nums[i]);
14+
15+
if (i == end) {
16+
smallest++;
17+
end = far;
18+
}
19+
}
20+
21+
return smallest;
22+
}
23+
};
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution {
2+
public int jump(int[] nums) {
3+
int smallest = 0;
4+
int n = nums.length;
5+
int end = 0;
6+
int far = 0;
7+
8+
for (int i = 0; i < n - 1; i++) {
9+
far = Math.max(far, i + nums[i]);
10+
11+
if (i == end) {
12+
smallest++;
13+
end = far;
14+
}
15+
}
16+
17+
return smallest;
18+
}
19+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
var jump = function(nums) {
2+
var smallest = 0;
3+
var n = nums.length;
4+
var end = 0;
5+
var far = 0;
6+
7+
for (var i = 0; i < n - 1; i++) {
8+
far = Math.max(far, i + nums[i]);
9+
10+
if (i == end) {
11+
smallest++;
12+
end = far;
13+
}
14+
}
15+
16+
return smallest;
17+
};
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution:
2+
def jump(self, nums: List[int]) -> int:
3+
smallest = 0
4+
n = len(nums)
5+
end, far = 0, 0
6+
7+
for i in range(n-1):
8+
far = max(far, i+nums[i])
9+
10+
if i == end:
11+
smallest += 1
12+
end = far
13+
14+
return smallest
15+
# Time: O(n)
16+
# Space: O(1)
17+

Longest Common Prefix - Leetcode 14/Longest Common Prefix - Leetcode 14.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ def longestCommonPrefix(self, strs: List[str]) -> str:
55
for s in strs:
66
if len(s) < min_length:
77
min_length = len(s)
8-
8+
9+
i = 0
910
while i < min_length:
1011
for s in strs:
1112
if s[i] != strs[0][i]:
1213
return s[:i]
1314
i += 1
15+
1416
return strs[0][:i]
1517
# Time: O(n * m) where n is the number of strings, m is the min word length
1618
# Space: O(1)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include <vector>
2+
3+
class Solution {
4+
public:
5+
int removeDuplicates(std::vector<int>& nums) {
6+
int j = 1;
7+
int count = 1;
8+
int n = nums.size();
9+
10+
for (int i = 1; i < n; i++) {
11+
if (nums[i] == nums[i - 1]) {
12+
count++;
13+
} else {
14+
count = 1;
15+
}
16+
17+
if (count <= 2) {
18+
nums[j] = nums[i];
19+
j++;
20+
}
21+
}
22+
23+
return j;
24+
}
25+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution {
2+
public int removeDuplicates(int[] nums) {
3+
int j = 1;
4+
int count = 1;
5+
int n = nums.length;
6+
7+
for (int i = 1; i < n; i++) {
8+
if (nums[i] == nums[i - 1]) {
9+
count++;
10+
} else {
11+
count = 1;
12+
}
13+
14+
if (count <= 2) {
15+
nums[j] = nums[i];
16+
j++;
17+
}
18+
}
19+
20+
return j;
21+
}
22+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
var removeDuplicates = function(nums) {
2+
var j = 1;
3+
var count = 1;
4+
var n = nums.length;
5+
6+
for (var i = 1; i < n; i++) {
7+
if (nums[i] === nums[i - 1]) {
8+
count++;
9+
} else {
10+
count = 1;
11+
}
12+
13+
if (count <= 2) {
14+
nums[j] = nums[i];
15+
j++;
16+
}
17+
}
18+
19+
return j;
20+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
class Solution:
2+
def removeDuplicates(self, nums: List[int]) -> int:
3+
j = 1
4+
count = 1
5+
n = len(nums)
6+
7+
for i in range(1, n):
8+
if nums[i] == nums[i-1]:
9+
count += 1
10+
else:
11+
count = 1
12+
13+
if count <= 2:
14+
nums[j] = nums[i]
15+
j += 1
16+
17+
return j
18+
# Time: O(n)
19+
# Space: O(1)

0 commit comments

Comments
 (0)