Merge branch 'youngyangyang04:master' into master

This commit is contained in:
YDLIN
2021-08-10 21:28:31 +08:00
committed by GitHub
3 changed files with 77 additions and 2 deletions

View File

@ -130,21 +130,47 @@ public:
## Java ## Java
```java ```java
``` ```
## Python ## Python
```python ```python
``` ```
## Go ## Go
```go ```go
``` ```
## JavaScript ## JavaScript
```js ```js
const connect = root => {
if (!root) return root;
// 根节点入队
const Q = [root];
while (Q.length) {
const len = Q.length;
// 遍历这一层的所有节点
for (let i = 0; i < len; i++) {
// 队头出队
const node = Q.shift();
// 连接
if (i < len - 1) {
// 新的队头是node的右边元素
node.next = Q[0];
}
// 队头左节点有值,放入队列
node.left && Q.push(node.left);
// 队头右节点有值,放入队列
node.right && Q.push(node.right);
}
}
return root;
};
``` ```
----------------------- -----------------------

View File

@ -278,7 +278,44 @@ class Solution:
return dp[4] return dp[4]
``` ```
Go JavaScript
> 版本一:
```javascript
const maxProfit = prices => {
const len = prices.length;
const dp = new Array(len).fill(0).map(x => new Array(5).fill(0));
dp[0][1] = -prices[0];
dp[0][3] = -prices[0];
for (let i = 1; i < len; i++) {
dp[i][0] = dp[i - 1][0];
dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][0] - prices[i]);
dp[i][2] = Math.max(dp[i - 1][2], dp[i - 1][1] + prices[i]);
dp[i][3] = Math.max(dp[i - 1][3], dp[i - 1][2] - prices[i]);
dp[i][4] = Math.max(dp[i - 1][4], dp[i - 1][3] + prices[i]);
}
return dp[len - 1][4];
};
```
> 版本二:
```javascript
const maxProfit = prices => {
const len = prices.length;
const dp = new Array(5).fill(0);
dp[1] = -prices[0];
dp[3] = -prices[0];
for (let i = 1; i < len; i++) {
dp[1] = Math.max(dp[1], dp[0] - prices[i]);
dp[2] = Math.max(dp[2], dp[1] + prices[i]);
dp[3] = Math.max(dp[3], dp[2] - prices[i]);
dp[4] = Math.max(dp[4], dp[3] + prices[i]);
}
return dp[4];
};
```

View File

@ -139,7 +139,19 @@ public int[] smallerNumbersThanCurrent(int[] nums) {
``` ```
Python Python
```python
class Solution:
def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]:
res = nums[:]
hash = dict()
res.sort() # 从小到大排序之后,元素下标就是小于当前数字的数字
for i, num in enumerate(res):
if num not in hash.keys(): # 遇到了相同的数字,那么不需要更新该 number 的情况
hash[num] = i
for i, num in enumerate(nums):
res[i] = hash[num]
return res
```
Go Go
JavaScript JavaScript