mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -187,7 +187,23 @@ var twoSum = function (nums, target) {
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
php
|
||||||
|
|
||||||
|
```php
|
||||||
|
function twoSum(array $nums, int $target): array
|
||||||
|
{
|
||||||
|
for ($i = 0; $i < count($nums);$i++) {
|
||||||
|
// 计算剩下的数
|
||||||
|
$residue = $target - $nums[$i];
|
||||||
|
// 匹配的index,有则返回index, 无则返回false
|
||||||
|
$match_index = array_search($residue, $nums);
|
||||||
|
if ($match_index !== false && $match_index != $i) {
|
||||||
|
return array($i, $match_index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -354,6 +354,47 @@ def is_valid(strs)
|
|||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
php:
|
||||||
|
|
||||||
|
```php
|
||||||
|
function threeSum(array $nums): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
$length = count($nums);
|
||||||
|
if ($length < 3) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
sort($nums);
|
||||||
|
for ($i = 0; $i < $length; $i++) {
|
||||||
|
// 如果大于0结束
|
||||||
|
if ($nums[$i] > 0) break;
|
||||||
|
// 去重
|
||||||
|
if ($i > 0 && $nums[$i] == $nums[$i - 1]) continue;
|
||||||
|
$left = $i + 1;
|
||||||
|
$right = $length - 1;
|
||||||
|
// 比较
|
||||||
|
while ($left < $right) {
|
||||||
|
$sum = $nums[$i] + $nums[$left] + $nums[$right];
|
||||||
|
if ($sum < 0) {
|
||||||
|
$left++;
|
||||||
|
} elseif ($sum > 0) {
|
||||||
|
$right--;
|
||||||
|
} else {
|
||||||
|
array_push($result, [$nums[$i], $nums[$left], $nums[$right]]);
|
||||||
|
while ($left < $right && $nums[$left] == $nums[$left + 1]) $left++;
|
||||||
|
while ($left < $right && $nums[$right - 1] == $nums[$right]) $right--;
|
||||||
|
$left++;
|
||||||
|
$right--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
* 作者微信:[程序员Carl](https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw)
|
||||||
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
|
* B站视频:[代码随想录](https://space.bilibili.com/525438321)
|
||||||
|
@ -345,6 +345,40 @@ public:
|
|||||||
|
|
||||||
Java:
|
Java:
|
||||||
|
|
||||||
|
暴力法
|
||||||
|
```java
|
||||||
|
class Solution {
|
||||||
|
public int[] findMode(FindModeInBinarySearchTree.TreeNode root) {
|
||||||
|
Map<Integer, Integer> map = new HashMap<>();
|
||||||
|
List<Integer> list = new ArrayList<>();
|
||||||
|
if (root == null) return list.stream().mapToInt(Integer::intValue).toArray();
|
||||||
|
// 获得频率 Map
|
||||||
|
searchBST(root, map);
|
||||||
|
List<Map.Entry<Integer, Integer>> mapList = map.entrySet().stream()
|
||||||
|
.sorted((c1, c2) -> c2.getValue().compareTo(c1.getValue()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
list.add(mapList.get(0).getKey());
|
||||||
|
// 把频率最高的加入 list
|
||||||
|
for (int i = 1; i < mapList.size(); i++) {
|
||||||
|
if (mapList.get(i).getValue() == mapList.get(i - 1).getValue()) {
|
||||||
|
list.add(mapList.get(i).getKey());
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list.stream().mapToInt(Integer::intValue).toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
void searchBST(FindModeInBinarySearchTree.TreeNode curr, Map<Integer, Integer> map) {
|
||||||
|
if (curr == null) return;
|
||||||
|
map.put(curr.val, map.getOrDefault(curr.val, 0) + 1);
|
||||||
|
searchBST(curr.left, map);
|
||||||
|
searchBST(curr.right, map);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
```Java
|
```Java
|
||||||
class Solution {
|
class Solution {
|
||||||
ArrayList<Integer> resList;
|
ArrayList<Integer> resList;
|
||||||
|
@ -271,6 +271,9 @@ class Solution:
|
|||||||
|
|
||||||
|
|
||||||
Go:
|
Go:
|
||||||
|
|
||||||
|
递归法
|
||||||
|
|
||||||
```Go
|
```Go
|
||||||
func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||||
if root == nil {
|
if root == nil {
|
||||||
@ -285,6 +288,31 @@ func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
|||||||
return root
|
return root
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
迭代法
|
||||||
|
```go
|
||||||
|
func insertIntoBST(root *TreeNode, val int) *TreeNode {
|
||||||
|
if root == nil {
|
||||||
|
return &TreeNode{Val:val}
|
||||||
|
}
|
||||||
|
node := root
|
||||||
|
var pnode *TreeNode
|
||||||
|
for node != nil {
|
||||||
|
if val > node.Val {
|
||||||
|
pnode = node
|
||||||
|
node = node.Right
|
||||||
|
} else {
|
||||||
|
pnode = node
|
||||||
|
node = node.Left
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if val > pnode.Val {
|
||||||
|
pnode.Right = &TreeNode{Val: val}
|
||||||
|
} else {
|
||||||
|
pnode.Left = &TreeNode{Val: val}
|
||||||
|
}
|
||||||
|
return root
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
JavaScript版本
|
JavaScript版本
|
||||||
|
|
||||||
|
@ -381,6 +381,12 @@ dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]);
|
|||||||
dp[i][2] = dp[i - 1][0] + prices[i];
|
dp[i][2] = dp[i - 1][0] + prices[i];
|
||||||
dp[i][3] = dp[i - 1][2];
|
dp[i][3] = dp[i - 1][2];
|
||||||
```
|
```
|
||||||
|
```C++
|
||||||
|
dp[i][0] = max(dp[i - 1][0], max(dp[i - 1][3]- prices[i], dp[i - 1][1]) - prices[i];
|
||||||
|
dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]);
|
||||||
|
dp[i][2] = dp[i - 1][0] + prices[i];
|
||||||
|
dp[i][3] = dp[i - 1][2];
|
||||||
|
```
|
||||||
|
|
||||||
整体代码如下:
|
整体代码如下:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user