Merge branch 'youngyangyang04:master' into master

This commit is contained in:
Jeremy Feng
2023-03-09 22:44:38 +08:00
committed by GitHub
5 changed files with 19 additions and 11 deletions

View File

@ -129,10 +129,10 @@ class Solution:
head_dummy.next = head head_dummy.next = head
slow, fast = head_dummy, head_dummy slow, fast = head_dummy, head_dummy
while(n!=0): #fast先往前走n步 while(n>=0): #fast先往前走n+1
fast = fast.next fast = fast.next
n -= 1 n -= 1
while(fast.next!=None): while(fast!=None):
slow = slow.next slow = slow.next
fast = fast.next fast = fast.next
#fast 走到结尾后slow的下一个节点为倒数第N个节点 #fast 走到结尾后slow的下一个节点为倒数第N个节点

View File

@ -117,6 +117,9 @@ public:
}; };
``` ```
* 时间复杂度 O(n^2): 模拟遍历二维矩阵的时间
* 空间复杂度 O(1)
## 类似题目 ## 类似题目
* 54.螺旋矩阵 * 54.螺旋矩阵

View File

@ -219,19 +219,17 @@ func findContentChildren(g []int, s []int) int {
### Rust ### Rust
```rust ```rust
pub fn find_content_children(children: Vec<i32>, cookie: Vec<i32>) -> i32 { pub fn find_content_children(mut children: Vec<i32>, mut cookie: Vec<i32>) -> i32 {
let mut children = children;
let mut cookies = cookie;
children.sort(); children.sort();
cookies.sort(); cookies.sort();
let (mut child, mut cookie) = (0usize, 0usize); let (mut child, mut cookie) = (0, 0);
while child < children.len() && cookie < cookies.len() { while child < children.len() && cookie < cookies.len() {
// 优先选择最小饼干喂饱孩子 // 优先选择最小饼干喂饱孩子
if children[child] <= cookies[cookie] { if children[child] <= cookies[cookie] {
child += 1; child += 1;
} }
cookie += 1 cookie += 1;
} }
child as i32 child as i32
} }

View File

@ -86,6 +86,9 @@ public:
}; };
``` ```
* 时间复杂度O(log n)
* 空间复杂度O(1)
### 二分法第二种写法 ### 二分法第二种写法
@ -124,6 +127,9 @@ public:
} }
}; };
``` ```
* 时间复杂度O(log n)
* 空间复杂度O(1)
## 总结 ## 总结

View File

@ -305,11 +305,12 @@ def construct_binary_tree(nums: []) -> TreeNode:
Tree.append(node) Tree.append(node)
if i == 0: if i == 0:
root = node root = node
# 直接判断2*i+2<len(Tree)会漏掉2*i+1=len(Tree)-1的情况
for i in range(len(Tree)): for i in range(len(Tree)):
node = Tree[i] if Tree[i] and 2 * i + 1 < len(Tree):
if node and (2 * i + 2) < len(Tree): Tree[i].left = Tree[2 * i + 1]
node.left = Tree[i * 2 + 1] if 2 * i + 2 < len(Tree):
node.right = Tree[i * 2 + 2] Tree[i].right = Tree[2 * i + 2]
return root return root