From 3c0ceba0644a38d6aa35125809d85b5afaf2419e Mon Sep 17 00:00:00 2001
From: LiangDazhu <42199191+LiangDazhu@users.noreply.github.com>
Date: Sat, 15 May 2021 23:11:10 +0800
Subject: [PATCH 01/10] =?UTF-8?q?Update=200134.=E5=8A=A0=E6=B2=B9=E7=AB=99?=
=?UTF-8?q?.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added python version code
---
problems/0134.加油站.md | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/problems/0134.加油站.md b/problems/0134.加油站.md
index 393e4627..52019aec 100644
--- a/problems/0134.加油站.md
+++ b/problems/0134.加油站.md
@@ -223,7 +223,21 @@ class Solution {
```
Python:
-
+```python
+class Solution:
+ def canCompleteCircuit(self, gas: List[int], cost: List[int]) -> int:
+ start = 0
+ curSum = 0
+ totalSum = 0
+ for i in range(len(gas)):
+ curSum += gas[i] - cost[i]
+ totalSum += gas[i] - cost[i]
+ if curSum < 0:
+ curSum = 0
+ start = i + 1
+ if totalSum < 0: return -1
+ return start
+```
Go:
@@ -234,4 +248,4 @@ Go:
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
-
\ No newline at end of file
+
From 69b766e83ee3ccb191e9b093399a04123b6cd951 Mon Sep 17 00:00:00 2001
From: LiangDazhu <42199191+LiangDazhu@users.noreply.github.com>
Date: Sun, 16 May 2021 00:31:42 +0800
Subject: [PATCH 02/10] =?UTF-8?q?Update=200135.=E5=88=86=E5=8F=91=E7=B3=96?=
=?UTF-8?q?=E6=9E=9C.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added python version code
---
problems/0135.分发糖果.md | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/problems/0135.分发糖果.md b/problems/0135.分发糖果.md
index fedf8765..51b32965 100644
--- a/problems/0135.分发糖果.md
+++ b/problems/0135.分发糖果.md
@@ -161,7 +161,18 @@ class Solution {
```
Python:
-
+```python
+class Solution:
+ def candy(self, ratings: List[int]) -> int:
+ candyVec = [1] * len(ratings)
+ for i in range(1, len(ratings)):
+ if ratings[i] > ratings[i - 1]:
+ candyVec[i] = candyVec[i - 1] + 1
+ for j in range(len(ratings) - 2, -1, -1):
+ if ratings[j] > ratings[j + 1]:
+ candyVec[j] = max(candyVec[j], candyVec[j + 1] + 1)
+ return sum(candyVec)
+```
Go:
@@ -172,4 +183,4 @@ Go:
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
* 知识星球:[代码随想录](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
-
\ No newline at end of file
+
From 897396c15ad3b34e2913350689794a4b754f32d9 Mon Sep 17 00:00:00 2001
From: QuinnDK <39618652+QuinnDK@users.noreply.github.com>
Date: Sun, 16 May 2021 11:27:26 +0800
Subject: [PATCH 03/10] =?UTF-8?q?Update=200096.=E4=B8=8D=E5=90=8C=E7=9A=84?=
=?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=90=9C=E7=B4=A2=E6=A0=91.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0096.不同的二叉搜索树.md | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/problems/0096.不同的二叉搜索树.md b/problems/0096.不同的二叉搜索树.md
index 7dea8fb0..dca225bf 100644
--- a/problems/0096.不同的二叉搜索树.md
+++ b/problems/0096.不同的二叉搜索树.md
@@ -189,7 +189,18 @@ Python:
Go:
-
+```Go
+func numTrees(n int)int{
+ dp:=make([]int,n+1)
+ dp[0]=1
+ for i:=1;i<=n;i++{
+ for j:=1;j<=i;j++{
+ dp[i]+=dp[j-1]*dp[i-j]
+ }
+ }
+ return dp[n]
+}
+```
From e26026c4ef8102cc5d7456c5a8167f4ca36c574c Mon Sep 17 00:00:00 2001
From: weijiew <49638002+weijiew@users.noreply.github.com>
Date: Sun, 16 May 2021 11:33:55 +0800
Subject: [PATCH 04/10] =?UTF-8?q?Update=200047.=E5=85=A8=E6=8E=92=E5=88=97?=
=?UTF-8?q?II.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
参数写错了,改过之后可以通过。
---
problems/0047.全排列II.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/problems/0047.全排列II.md b/problems/0047.全排列II.md
index 94bb4df1..d22e441e 100644
--- a/problems/0047.全排列II.md
+++ b/problems/0047.全排列II.md
@@ -85,7 +85,7 @@ public:
path.clear();
sort(nums.begin(), nums.end()); // 排序
vector used(nums.size(), false);
- backtracking(nums, vec, used);
+ backtracking(nums, used);
return result;
}
};
From 52e40aa3883e76957b7080150f6288029c34f2c0 Mon Sep 17 00:00:00 2001
From: QuinnDK <39618652+QuinnDK@users.noreply.github.com>
Date: Sun, 16 May 2021 11:49:54 +0800
Subject: [PATCH 05/10] =?UTF-8?q?Update=200121.=E4=B9=B0=E5=8D=96=E8=82=A1?=
=?UTF-8?q?=E7=A5=A8=E7=9A=84=E6=9C=80=E4=BD=B3=E6=97=B6=E6=9C=BA.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0121.买卖股票的最佳时机.md | 25 ++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/problems/0121.买卖股票的最佳时机.md b/problems/0121.买卖股票的最佳时机.md
index a0b35090..ec277263 100644
--- a/problems/0121.买卖股票的最佳时机.md
+++ b/problems/0121.买卖股票的最佳时机.md
@@ -219,6 +219,31 @@ Python:
Go:
+```Go
+func maxProfit(prices []int) int {
+ length:=len(prices)
+ if length==0{return 0}
+ dp:=make([][]int,length)
+ for i:=0;ib{
+ return a
+ }
+ return b
+}
+```
From 54a98e7e634018679e0bd69d0accbf5fc9b0162f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E8=B4=BA?=
Date: Sun, 16 May 2021 12:55:39 +0800
Subject: [PATCH 06/10] Add Go Solution
---
problems/0300.最长上升子序列.md | 29 ++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/problems/0300.最长上升子序列.md b/problems/0300.最长上升子序列.md
index 2bc5cf9c..3371437a 100644
--- a/problems/0300.最长上升子序列.md
+++ b/problems/0300.最长上升子序列.md
@@ -116,8 +116,33 @@ Python:
Go:
-
-
+```
+func lengthOfLIS(nums []int ) int {
+ dp := []int{}
+ for _, num := range nums {
+ if len(dp) ==0 || dp[len(dp) - 1] < num {
+ dp = append(dp, num)
+ } else {
+ l, r := 0, len(dp) - 1
+ pos := r
+ for l <= r {
+ mid := (l + r) >> 1
+ if dp[mid] >= num {
+ pos = mid;
+ r = mid - 1
+ } else {
+ l = mid + 1
+ }
+ }
+ dp[pos] = num
+ }//二分查找
+ }
+ return len(dp)
+}
+```
+复杂度分析
+- 时间复杂度:O(nlogn)。数组 nums 的长度为 n,我们依次用数组中的元素去更新 d 数组,而更新 d 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。
+- 空间复杂度:O(n),需要额外使用长度为 n 的 d 数组。
-----------------------
From 5fe144aeb315d04c5a438b6550227376c0857ce0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E8=B4=BA?=
Date: Sun, 16 May 2021 12:56:01 +0800
Subject: [PATCH 07/10] =?UTF-8?q?Update=200300.=E6=9C=80=E9=95=BF=E4=B8=8A?=
=?UTF-8?q?=E5=8D=87=E5=AD=90=E5=BA=8F=E5=88=97.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0300.最长上升子序列.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/problems/0300.最长上升子序列.md b/problems/0300.最长上升子序列.md
index 3371437a..92ab187d 100644
--- a/problems/0300.最长上升子序列.md
+++ b/problems/0300.最长上升子序列.md
@@ -116,7 +116,7 @@ Python:
Go:
-```
+```go
func lengthOfLIS(nums []int ) int {
dp := []int{}
for _, num := range nums {
From 58c9ffd7514dc0a981dd0ac73b1e72357f563742 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E8=B4=BA?=
Date: Sun, 16 May 2021 12:56:30 +0800
Subject: [PATCH 08/10] add go solution
---
problems/0300.最长上升子序列.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/problems/0300.最长上升子序列.md b/problems/0300.最长上升子序列.md
index 92ab187d..0fac8fed 100644
--- a/problems/0300.最长上升子序列.md
+++ b/problems/0300.最长上升子序列.md
@@ -140,7 +140,7 @@ func lengthOfLIS(nums []int ) int {
return len(dp)
}
```
-复杂度分析
+*复杂度分析*
- 时间复杂度:O(nlogn)。数组 nums 的长度为 n,我们依次用数组中的元素去更新 d 数组,而更新 d 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。
- 空间复杂度:O(n),需要额外使用长度为 n 的 d 数组。
From 47fe9826c7aa307680009d19717ab3729b654d31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E8=B4=BA?=
Date: Sun, 16 May 2021 14:12:23 +0800
Subject: [PATCH 09/10] add go solution
---
problems/0300.最长上升子序列.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/problems/0300.最长上升子序列.md b/problems/0300.最长上升子序列.md
index 0fac8fed..918f8000 100644
--- a/problems/0300.最长上升子序列.md
+++ b/problems/0300.最长上升子序列.md
@@ -141,8 +141,8 @@ func lengthOfLIS(nums []int ) int {
}
```
*复杂度分析*
-- 时间复杂度:O(nlogn)。数组 nums 的长度为 n,我们依次用数组中的元素去更新 d 数组,而更新 d 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。
-- 空间复杂度:O(n),需要额外使用长度为 n 的 d 数组。
+- 时间复杂度:O(nlogn)。数组 nums 的长度为 n,我们依次用数组中的元素去更新 dp 数组,相当于插入最后递增的元素,而更新 dp 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。
+- 空间复杂度:O(n),需要额外使用长度为 n 的 dp 数组。
-----------------------
From 4a859ac6369e78ffb13772e66440d1605ac57afb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E8=B4=BA?=
Date: Sun, 16 May 2021 14:23:00 +0800
Subject: [PATCH 10/10] add go solution
---
problems/0053.最大子序和.md | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/problems/0053.最大子序和.md b/problems/0053.最大子序和.md
index b8a9d748..f5526a61 100644
--- a/problems/0053.最大子序和.md
+++ b/problems/0053.最大子序和.md
@@ -145,7 +145,20 @@ Python:
Go:
-
+```go
+func maxSubArray(nums []int) int {
+ maxSum := nums[0]
+ for i := 1; i < len(nums); i++ {
+ if nums[i] + nums[i-1] > nums[i] {
+ nums[i] += nums[i-1]
+ }
+ if nums[i] > maxSum {
+ maxSum = nums[i]
+ }
+ }
+ return maxSum
+}
+```