From 5e23ecc64e4e7251225de68d05a372f8bfbcb47a Mon Sep 17 00:00:00 2001
From: LiangDazhu <42199191+LiangDazhu@users.noreply.github.com>
Date: Thu, 20 May 2021 23:07:09 +0800
Subject: [PATCH 01/14] =?UTF-8?q?Update=200763.=E5=88=92=E5=88=86=E5=AD=97?=
=?UTF-8?q?=E6=AF=8D=E5=8C=BA=E9=97=B4.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added python version code
---
problems/0763.划分字母区间.md | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/problems/0763.划分字母区间.md b/problems/0763.划分字母区间.md
index c1474280..a6ca0ea0 100644
--- a/problems/0763.划分字母区间.md
+++ b/problems/0763.划分字母区间.md
@@ -108,7 +108,23 @@ class Solution {
```
Python:
+```python
+class Solution:
+ def partitionLabels(self, s: str) -> List[int]:
+ hash = [0] * 26
+ for i in range(len(s)):
+ hash[ord(s[i]) - ord('a')] = i
+ result = []
+ left = 0
+ right = 0
+ for i in range(len(s)):
+ right = max(right, hash[ord(s[i]) - ord('a')])
+ if i == right:
+ result.append(right - left + 1)
+ left = i + 1
+ return result
+```
Go:
From 546b56f2d38ddb2d1d3b82a9e353051917030f87 Mon Sep 17 00:00:00 2001
From: LiangDazhu <42199191+LiangDazhu@users.noreply.github.com>
Date: Thu, 20 May 2021 23:36:32 +0800
Subject: [PATCH 02/14] =?UTF-8?q?Update=200056.=E5=90=88=E5=B9=B6=E5=8C=BA?=
=?UTF-8?q?=E9=97=B4.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added python version code
---
problems/0056.合并区间.md | 18 ++++++++++++++++--
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/problems/0056.合并区间.md b/problems/0056.合并区间.md
index e84a1634..69bccec5 100644
--- a/problems/0056.合并区间.md
+++ b/problems/0056.合并区间.md
@@ -168,7 +168,21 @@ class Solution {
```
Python:
-
+```python
+class Solution:
+ def merge(self, intervals: List[List[int]]) -> List[List[int]]:
+ if len(intervals) == 0: return intervals
+ intervals.sort(key=lambda x: x[0])
+ result = []
+ result.append(intervals[0])
+ for i in range(1, len(intervals)):
+ last = result[-1]
+ if last[1] >= intervals[i][0]:
+ result[-1] = [last[0], max(last[1], intervals[i][1])]
+ else:
+ result.append(intervals[i])
+ return result
+```
Go:
@@ -179,4 +193,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 7133bbe6d1bfe16e04821a2fcce795bb7677ad43 Mon Sep 17 00:00:00 2001
From: X-shuffle <53906918+X-shuffle@users.noreply.github.com>
Date: Thu, 20 May 2021 23:44:20 +0800
Subject: [PATCH 03/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20=E4=BA=8C=E5=8F=89?=
=?UTF-8?q?=E6=A0=91=E7=9A=84=E7=BB=9F=E4=B8=80=E8=BF=AD=E4=BB=A3=E6=B3=95?=
=?UTF-8?q?=20GO=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加 二叉树的统一迭代法 GO版本
---
problems/二叉树的统一迭代法.md | 130 ++++++++++++++++++++++++
1 file changed, 130 insertions(+)
diff --git a/problems/二叉树的统一迭代法.md b/problems/二叉树的统一迭代法.md
index bc91eca0..bf3e83f4 100644
--- a/problems/二叉树的统一迭代法.md
+++ b/problems/二叉树的统一迭代法.md
@@ -242,7 +242,137 @@ Python:
Go:
+> 前序遍历统一迭代法
+```GO
+ /**
+ type Element struct {
+ // 元素保管的值
+ Value interface{}
+ // 内含隐藏或非导出字段
+}
+
+func (l *List) Back() *Element
+前序遍历:中左右
+压栈顺序:右左中
+ **/
+func preorderTraversal(root *TreeNode) []int {
+ if root == nil {
+ return nil
+ }
+ var stack = list.New()//栈
+ res:=[]int{}//结果集
+ stack.PushBack(root)
+ var node *TreeNode
+ for stack.Len()>0{
+ e := stack.Back()
+ stack.Remove(e)//弹出元素
+ if e.Value==nil{// 如果为空,则表明是需要处理中间节点
+ e=stack.Back()//弹出元素(即中间节点)
+ stack.Remove(e)//删除中间节点
+ node=e.Value.(*TreeNode)
+ res=append(res,node.Val)//将中间节点加入到结果集中
+ continue//继续弹出栈中下一个节点
+ }
+ node = e.Value.(*TreeNode)
+ //压栈顺序:右左中
+ if node.Right!=nil{
+ stack.PushBack(node.Right)
+ }
+ if node.Left!=nil{
+ stack.PushBack(node.Left)
+ }
+ stack.PushBack(node)//中间节点压栈后再压入nil作为中间节点的标志符
+ stack.PushBack(nil)
+ }
+ return res
+
+}
+```
+
+> 中序遍历统一迭代法
+
+```go
+/**
+ * Definition for a binary tree node.
+ * type TreeNode struct {
+ * Val int
+ * Left *TreeNode
+ * Right *TreeNode
+ * }
+ */
+ //中序遍历:左中右
+ //压栈顺序:右中左
+func inorderTraversal(root *TreeNode) []int {
+ if root==nil{
+ return nil
+ }
+ stack:=list.New()//栈
+ res:=[]int{}//结果集
+ stack.PushBack(root)
+ var node *TreeNode
+ for stack.Len()>0{
+ e := stack.Back()
+ stack.Remove(e)
+ if e.Value==nil{// 如果为空,则表明是需要处理中间节点
+ e=stack.Back()//弹出元素(即中间节点)
+ stack.Remove(e)//删除中间节点
+ node=e.Value.(*TreeNode)
+ res=append(res,node.Val)//将中间节点加入到结果集中
+ continue//继续弹出栈中下一个节点
+ }
+ node = e.Value.(*TreeNode)
+ //压栈顺序:右中左
+ if node.Right!=nil{
+ stack.PushBack(node.Right)
+ }
+ stack.PushBack(node)//中间节点压栈后再压入nil作为中间节点的标志符
+ stack.PushBack(nil)
+ if node.Left!=nil{
+ stack.PushBack(node.Left)
+ }
+ }
+ return res
+}
+```
+
+> 后序遍历统一迭代法
+
+```go
+//后续遍历:左右中
+//压栈顺序:中右左
+func postorderTraversal(root *TreeNode) []int {
+ if root == nil {
+ return nil
+ }
+ var stack = list.New()//栈
+ res:=[]int{}//结果集
+ stack.PushBack(root)
+ var node *TreeNode
+ for stack.Len()>0{
+ e := stack.Back()
+ stack.Remove(e)
+ if e.Value==nil{// 如果为空,则表明是需要处理中间节点
+ e=stack.Back()//弹出元素(即中间节点)
+ stack.Remove(e)//删除中间节点
+ node=e.Value.(*TreeNode)
+ res=append(res,node.Val)//将中间节点加入到结果集中
+ continue//继续弹出栈中下一个节点
+ }
+ node = e.Value.(*TreeNode)
+ //压栈顺序:中右左
+ stack.PushBack(node)//中间节点压栈后再压入nil作为中间节点的标志符
+ stack.PushBack(nil)
+ if node.Right!=nil{
+ stack.PushBack(node.Right)
+ }
+ if node.Left!=nil{
+ stack.PushBack(node.Left)
+ }
+ }
+ return res
+}
+```
From 467461c24e569aab83bc954c3ba8a1e7fb4b7854 Mon Sep 17 00:00:00 2001
From: NevS <1173325467@qq.com>
Date: Thu, 20 May 2021 23:51:45 +0800
Subject: [PATCH 04/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200209.=E9=95=BF?=
=?UTF-8?q?=E5=BA=A6=E6=9C=80=E5=B0=8F=E7=9A=84=E5=AD=90=E6=95=B0=E7=BB=84?=
=?UTF-8?q?=20go=20=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0209.长度最小的子数组.md | 26 ++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/problems/0209.长度最小的子数组.md b/problems/0209.长度最小的子数组.md
index 0aaa466e..29f15581 100644
--- a/problems/0209.长度最小的子数组.md
+++ b/problems/0209.长度最小的子数组.md
@@ -172,6 +172,30 @@ Python:
Go:
+```go
+func minSubArrayLen(target int, nums []int) int {
+ i := 0
+ l := len(nums) // 数组长度
+ sum := 0 // 子数组之和
+ result := l + 1 // 初始化返回长度为l+1,目的是为了判断“不存在符合条件的子数组,返回0”的情况
+ for j := 0; j < l; j++ {
+ sum += nums[j]
+ for sum >= target {
+ subLength := j - i + 1
+ if subLength < result {
+ result = subLength
+ }
+ sum -= nums[i]
+ i++
+ }
+ }
+ if result == l+1 {
+ return 0
+ } else {
+ return result
+ }
+}
+```
JavaScript:
@@ -195,4 +219,4 @@ var minSubArrayLen = (target, nums) => {
* 作者微信:[程序员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 d232e0f20eba5435417159e6c4bde0c91d93c052 Mon Sep 17 00:00:00 2001
From: xll <18574553598@163.com>
Date: Fri, 21 May 2021 09:50:39 +0800
Subject: [PATCH 05/14] =?UTF-8?q?0102=E4=BA=8C=E5=8F=89=E6=A0=91=E7=9A=84?=
=?UTF-8?q?=E5=B1=82=E5=BA=8F=E9=81=8D=E5=8E=86javascript=E7=89=88?=
=?UTF-8?q?=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0102.二叉树的层序遍历.md | 29 +++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/problems/0102.二叉树的层序遍历.md b/problems/0102.二叉树的层序遍历.md
index 1cb4164f..22d4e5e5 100644
--- a/problems/0102.二叉树的层序遍历.md
+++ b/problems/0102.二叉树的层序遍历.md
@@ -79,6 +79,35 @@ public:
return result;
}
};
+```
+javascript代码:
+
+```javascript
+var levelOrder = function(root) {
+ //二叉树的层序遍历
+ let res=[],queue=[];
+ queue.push(root);
+ if(root===null){
+ return res;
+ }
+ while(queue.length!==0){
+ // 记录当前层级节点数
+ let length=queue.length;
+ //存放每一层的节点
+ let curLevel=[];
+ for(let i=0;i
Date: Fri, 21 May 2021 11:16:42 +0800
Subject: [PATCH 06/14] =?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=A0=91=E7=9A=84?=
=?UTF-8?q?=E5=B1=82=E5=BA=8F=E9=81=8D=E5=8E=86javascript=E7=89=88?=
=?UTF-8?q?=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0102.二叉树的层序遍历.md | 149 ++++++++++++++++++++++
1 file changed, 149 insertions(+)
diff --git a/problems/0102.二叉树的层序遍历.md b/problems/0102.二叉树的层序遍历.md
index 1cb4164f..c40f4e2a 100644
--- a/problems/0102.二叉树的层序遍历.md
+++ b/problems/0102.二叉树的层序遍历.md
@@ -79,6 +79,35 @@ public:
return result;
}
};
+```
+javascript代码:
+
+```javascript
+var levelOrder = function(root) {
+ //二叉树的层序遍历
+ let res=[],queue=[];
+ queue.push(root);
+ if(root===null){
+ return res;
+ }
+ while(queue.length!==0){
+ // 记录当前层级节点数
+ let length=queue.length;
+ //存放每一层的节点
+ let curLevel=[];
+ for(let i=0;inode.val?max:node.val;
+ node.left&&queue.push(node.left);
+ node.right&&queue.push(node.right);
+ }
+ //把每一层的最大值放到res数组
+ res.push(max);
+ }
+ return res;
+};
+```
## 116.填充每个节点的下一个右侧节点指针
From ada4d845425d6532b8507ef0b37605c91489e869 Mon Sep 17 00:00:00 2001
From: reoaah
Date: Fri, 21 May 2021 15:30:55 +0800
Subject: [PATCH 07/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A00062.=E4=B8=8D=E5=90=8C?=
=?UTF-8?q?=E8=B7=AF=E5=BE=84.md=20Go=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
problems/0062.不同路径.md | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/problems/0062.不同路径.md b/problems/0062.不同路径.md
index e3a6da8c..680bba83 100644
--- a/problems/0062.不同路径.md
+++ b/problems/0062.不同路径.md
@@ -249,7 +249,24 @@ Python:
Go:
-
+```Go
+func uniquePaths(m int, n int) int {
+ dp := make([][]int, m)
+ for i := range dp {
+ dp[i] = make([]int, n)
+ dp[i][0] = 1
+ }
+ for j := 0; j < n; j++ {
+ dp[0][j] = 1
+ }
+ for i := 1; i < m; i++ {
+ for j := 1; j < n; j++ {
+ dp[i][j] = dp[i-1][j] + dp[i][j-1]
+ }
+ }
+ return dp[m-1][n-1]
+}
+```
From 20aa3a2454e955e17f37ecd2e22a56451e44fab4 Mon Sep 17 00:00:00 2001
From: gpfpter <67033145+gpfpter@users.noreply.github.com>
Date: Fri, 21 May 2021 16:27:55 +0800
Subject: [PATCH 08/14] =?UTF-8?q?=E5=89=91=E6=8C=87=20Offer=2058=20-=20II.?=
=?UTF-8?q?=20=E5=B7=A6=E6=97=8B=E8=BD=AC=E5=AD=97=E7=AC=A6=E4=B8=B2=20Jav?=
=?UTF-8?q?a=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
剑指 Offer 58 - II. 左旋转字符串 Java代码提交,与作者思路相同的三次反转。
---
.../剑指Offer58-II.左旋转字符串.md | 23 ++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/problems/剑指Offer58-II.左旋转字符串.md b/problems/剑指Offer58-II.左旋转字符串.md
index 3e9ab11f..9bd639aa 100644
--- a/problems/剑指Offer58-II.左旋转字符串.md
+++ b/problems/剑指Offer58-II.左旋转字符串.md
@@ -96,10 +96,27 @@ public:
## 其他语言版本
-
Java:
-
-
+```java
+class Solution {
+ public String reverseLeftWords(String s, int n) {
+ int len=s.length();
+ StringBuilder sb=new StringBuilder(s);
+ reverseString(sb,0,n-1);
+ reverseString(sb,n,len-1);
+ return sb.reverse().toString();
+ }
+ public void reverseString(StringBuilder sb, int start, int end) {
+ while (start < end) {
+ char temp = sb.charAt(start);
+ sb.setCharAt(start, sb.charAt(end));
+ sb.setCharAt(end, temp);
+ start++;
+ end--;
+ }
+ }
+}
+```
Python:
From 472b57a40e611b2c7f76d82352c9f8657a580b2e Mon Sep 17 00:00:00 2001
From: Chen-Wang-JY <75002576+Chen-Wang-JY@users.noreply.github.com>
Date: Fri, 21 May 2021 17:10:59 +0800
Subject: [PATCH 09/14] =?UTF-8?q?Update=200015.=E4=B8=89=E6=95=B0=E4=B9=8B?=
=?UTF-8?q?=E5=92=8C.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
增加了Python3的双指针法
---
problems/0015.三数之和.md | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
diff --git a/problems/0015.三数之和.md b/problems/0015.三数之和.md
index 96dc1ac3..9875f037 100644
--- a/problems/0015.三数之和.md
+++ b/problems/0015.三数之和.md
@@ -218,8 +218,32 @@ class Solution {
```
Python:
-
-
+```class Solution:
+ def threeSum(self, nums):
+ ans = []
+ n = len(nums)
+ nums.sort()
+ for i in range(n):
+ left = i + 1
+ right = n - 1
+ if nums[i] > 0:
+ break
+ if i >= 1 and nums[i] == nums[i - 1]:
+ continue
+ while left < right:
+ total = nums[i] + nums[left] + nums[right]
+ if total > 0:
+ right -= 1
+ elif total < 0:
+ left += 1
+ else:
+ ans.append([nums[i], nums[left], nums[right]])
+ while left != right and nums[left] == nums[left + 1]: left += 1
+ while left != right and nums[right] == nums[right - 1]: right -= 1
+ left += 1
+ right -= 1
+ return ans
+```
Go:
```Go
func threeSum(nums []int)[][]int{
From 083918db7a4dc9f599dbbd84e29b63349f54a4a2 Mon Sep 17 00:00:00 2001
From: Chen-Wang-JY <75002576+Chen-Wang-JY@users.noreply.github.com>
Date: Fri, 21 May 2021 17:14:12 +0800
Subject: [PATCH 10/14] =?UTF-8?q?Update=200015.=E4=B8=89=E6=95=B0=E4=B9=8B?=
=?UTF-8?q?=E5=92=8C.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加了Python的双指针法
---
problems/0015.三数之和.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/problems/0015.三数之和.md b/problems/0015.三数之和.md
index 9875f037..390ce864 100644
--- a/problems/0015.三数之和.md
+++ b/problems/0015.三数之和.md
@@ -218,7 +218,8 @@ class Solution {
```
Python:
-```class Solution:
+```Python
+class Solution:
def threeSum(self, nums):
ans = []
n = len(nums)
From db29574063ffa7d6613a3e60ec0eab448019be61 Mon Sep 17 00:00:00 2001
From: jojoo15 <75017412+jojoo15@users.noreply.github.com>
Date: Fri, 21 May 2021 11:29:06 +0200
Subject: [PATCH 11/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200669.=E4=BF=AE?=
=?UTF-8?q?=E5=89=AA=E4=BA=8C=E5=8F=89=E6=90=9C=E7=B4=A2=E6=A0=91=20python?=
=?UTF-8?q?3=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加 0669.修剪二叉搜索树 python3版本
---
problems/0669.修剪二叉搜索树.md | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/problems/0669.修剪二叉搜索树.md b/problems/0669.修剪二叉搜索树.md
index 8b9e1f6d..5c839b6c 100644
--- a/problems/0669.修剪二叉搜索树.md
+++ b/problems/0669.修剪二叉搜索树.md
@@ -265,8 +265,24 @@ class Solution {
```
Python:
-
-
+```python3
+# Definition for a binary tree node.
+# class TreeNode:
+# def __init__(self, val=0, left=None, right=None):
+# self.val = val
+# self.left = left
+# self.right = right
+class Solution:
+ def trimBST(self, root: TreeNode, low: int, high: int) -> TreeNode:
+ if not root: return root
+ if root.val < low:
+ return self.trimBST(root.right,low,high) // 寻找符合区间[low, high]的节点
+ if root.val > high:
+ return self.trimBST(root.left,low,high) // 寻找符合区间[low, high]的节点
+ root.left = self.trimBST(root.left,low,high) // root->left接入符合条件的左孩子
+ root.right = self.trimBST(root.right,low,high) // root->right接入符合条件的右孩子
+ return root
+```
Go:
@@ -276,4 +292,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 c6db1890eba10c69ebd0356161127f5a257e699e Mon Sep 17 00:00:00 2001
From: jojoo15 <75017412+jojoo15@users.noreply.github.com>
Date: Fri, 21 May 2021 12:33:27 +0200
Subject: [PATCH 12/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200108.=E5=B0=86?=
=?UTF-8?q?=E6=9C=89=E5=BA=8F=E6=95=B0=E7=BB=84=E8=BD=AC=E6=8D=A2=E4=B8=BA?=
=?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=90=9C=E7=B4=A2=E6=A0=91=20python3?=
=?UTF-8?q?=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加 0108.将有序数组转换为二叉搜索树 python3版本
---
...将有序数组转换为二叉搜索树.md | 24 +++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/problems/0108.将有序数组转换为二叉搜索树.md b/problems/0108.将有序数组转换为二叉搜索树.md
index 93dc5fd6..139c3dae 100644
--- a/problems/0108.将有序数组转换为二叉搜索树.md
+++ b/problems/0108.将有序数组转换为二叉搜索树.md
@@ -233,7 +233,27 @@ class Solution {
```
Python:
-
+```python3
+# Definition for a binary tree node.
+# class TreeNode:
+# def __init__(self, val=0, left=None, right=None):
+# self.val = val
+# self.left = left
+# self.right = right
+#递归法
+class Solution:
+ def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
+ def buildaTree(left,right):
+ if left > right: return None #左闭右闭的区间,当区间 left > right的时候,就是空节点,当left = right的时候,不为空
+ mid = left + (right - left) // 2 #保证数据不会越界
+ val = nums[mid]
+ root = TreeNode(val)
+ root.left = buildaTree(left,mid - 1)
+ root.right = buildaTree(mid + 1,right)
+ return root
+ root = buildaTree(0,len(nums) - 1) #左闭右闭区间
+ return root
+```
Go:
@@ -244,4 +264,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 f7828e65a3ef7518d23daca6741963e0288a9cc6 Mon Sep 17 00:00:00 2001
From: jojoo15 <75017412+jojoo15@users.noreply.github.com>
Date: Fri, 21 May 2021 14:05:39 +0200
Subject: [PATCH 13/14] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200538.=E6=8A=8A?=
=?UTF-8?q?=E4=BA=8C=E5=8F=89=E6=90=9C=E7=B4=A2=E6=A0=91=E8=BD=AC=E6=8D=A2?=
=?UTF-8?q?=E4=B8=BA=E7=B4=AF=E5=8A=A0=E6=A0=91=20python3=E7=89=88?=
=?UTF-8?q?=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
添加 0538.把二叉搜索树转换为累加树 python3版本
---
...38.把二叉搜索树转换为累加树.md | 24 ++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
diff --git a/problems/0538.把二叉搜索树转换为累加树.md b/problems/0538.把二叉搜索树转换为累加树.md
index 209c989b..cc19bb30 100644
--- a/problems/0538.把二叉搜索树转换为累加树.md
+++ b/problems/0538.把二叉搜索树转换为累加树.md
@@ -196,8 +196,26 @@ class Solution {
```
Python:
-
-
+```python3
+# Definition for a binary tree node.
+# class TreeNode:
+# def __init__(self, val=0, left=None, right=None):
+# self.val = val
+# self.left = left
+# self.right = right
+#递归法
+class Solution:
+ def convertBST(self, root: TreeNode) -> TreeNode:
+ def buildalist(root):
+ if not root: return None
+ buildalist(root.right) #右中左遍历
+ root.val += self.pre
+ self.pre = root.val
+ buildalist(root.left)
+ self.pre = 0 #记录前一个节点的数值
+ buildalist(root)
+ return root
+```
Go:
@@ -207,4 +225,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 a7f3d2ddd615ea4e33cbe11138d6adf426722ec0 Mon Sep 17 00:00:00 2001
From: LiangDazhu <42199191+LiangDazhu@users.noreply.github.com>
Date: Fri, 21 May 2021 23:51:55 +0800
Subject: [PATCH 14/14] =?UTF-8?q?Update=200738.=E5=8D=95=E8=B0=83=E9=80=92?=
=?UTF-8?q?=E5=A2=9E=E7=9A=84=E6=95=B0=E5=AD=97.md?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Added python version code
---
problems/0738.单调递增的数字.md | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/problems/0738.单调递增的数字.md b/problems/0738.单调递增的数字.md
index dc136028..4324a0bc 100644
--- a/problems/0738.单调递增的数字.md
+++ b/problems/0738.单调递增的数字.md
@@ -8,6 +8,7 @@
## 738.单调递增的数字
+题目链接: https://leetcode-cn.com/problems/monotone-increasing-digits/
给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。
@@ -30,7 +31,7 @@
## 暴力解法
-题意很简单,那么首先想的就是暴力解法了,来我提大家暴力一波,结果自然是超时!
+题意很简单,那么首先想的就是暴力解法了,来我替大家暴力一波,结果自然是超时!
代码如下:
```C++
@@ -146,7 +147,19 @@ class Solution {
Python:
-
+```python
+class Solution:
+ def monotoneIncreasingDigits(self, n: int) -> int:
+ strNum = list(str(n))
+ flag = len(strNum)
+ for i in range(len(strNum) - 1, 0, -1):
+ if int(strNum[i]) < int(strNum[i - 1]):
+ strNum[i - 1] = str(int(strNum[i - 1]) - 1)
+ flag = i
+ for i in range(flag, len(strNum)):
+ strNum[i] = '9'
+ return int("".join(strNum))
+```
Go:
@@ -157,4 +170,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
+