Skip to content

Commit 3b8f934

Browse files
author
lixiang.2533
committed
add new solution
Change-Id: If6f7335b1074dfa253258862f63043df38d9a9b1
1 parent e1d94ba commit 3b8f934

37 files changed

+3538
-1179
lines changed

merge_md.md

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
```
2+
import os
3+
from glob import glob
4+
25
dirs = os.listdir('/Users/lixiang.2533/Desktop/Blogs/Leetcode/')
36
dir = '/Users/lixiang.2533/Desktop/Blogs/Leetcode'
4-
dirs = ['二分法']
7+
dirs = ['二分法','双指针','栈','排序','贪心']
58
for a in dirs:
69
md_list = glob(os.path.join(dir, a, '*.md'))
710
md_list = sorted(md_list)

二分法总结.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
### 0.二分法总结.md
1+
### 二分法总结
22
- 找target
33
- [ ] 69 x 的平方根:牛顿法
44
- [ ] 74 搜索二维矩阵
@@ -158,6 +158,7 @@ Tips
158158

159159

160160

161+
161162
示例 1:
162163

163164
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
@@ -286,7 +287,7 @@ class Solution:
286287

287288
Tips
288289

289-
依旧是二分法,强迫症执着的
290+
依旧是二分法,强迫症执着的使用左右闭区间,这个时候想要知道最后返回的是左还是右区间只要模拟一下推出的挺狂求可以
290291
### 287. 寻找重复数.md
291292
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。
292293

@@ -318,6 +319,7 @@ Tips
318319

319320

320321

322+
321323
进阶:
322324

323325
如何证明 nums 中至少存在一个重复的数字?
@@ -457,6 +459,7 @@ Tips
457459

458460

459461

462+
460463
```python
461464
class Solution:
462465
def search(self, nums: List[int], target: int) -> int:
@@ -497,6 +500,7 @@ class Solution:
497500

498501

499502

503+
500504
示例 1:
501505

502506
输入:nums = [5,7,7,8,8,10], target = 8
@@ -1080,6 +1084,7 @@ Tips
10801084

10811085

10821086

1087+
10831088
示例 1:
10841089

10851090
输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
@@ -1157,6 +1162,7 @@ Tips
11571162

11581163

11591164

1165+
11601166
进阶:
11611167

11621168
这是 搜索旋转排序数组 的延伸题目,本题中的 nums 可能包含重复元素。
@@ -1206,4 +1212,3 @@ Tips
12061212
1. 在33题的基础上,因为数值可能存在重复,所以当左边界或者右边界和mid相同的时候都向内收缩一步再进行判断
12071213
1.
12081214

1209-

值得二刷.md

-19
This file was deleted.

动态规划/0.动态规划总结.md

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
- [ ] 63 不同路径 II : 同上,碰到障碍保持0
55
- [ ] 64 最小路径和:$ dp[i][j] = min(dp[i-1][j],dp[i][j-1])+ grid[i$][j]
66
- [ ] 70 爬楼梯:$dp[n] = dp[n-1]+dp[n-2] $,长度是n
7+
- [ ] 96 不同的二叉搜索树: $dp(n) += dp(j-1) * dp(n-j)$
78
- [ ] 343 整数拆分: $dp[i] = max(dp[i-j]*j, (i-j)*j)$,拆分or不拆分
89
- [ ] 509 斐波那契数 : $dp[n] = dp[n-1]+dp[n-2] $, 长度是n+1
910
- [ ] 746 使用最小花费爬楼梯:$dp[i] = min(dp[i-2], dp[i-1]) + cost[i]$, 最后返回$min(dp[-1],dp[-2])$

动态规划/343. 整数拆分.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class Solution:
2323
dp[2] = 1
2424
for i in range(3,n+1):
2525
for j in range(1,i-1):
26-
dp[i] =max(dp[i], max(dp[i-j] * j, (i-j) * j))
26+
dp[i] =max(dp[i], dp[i-j] * j, (i-j) * j)
2727
print(dp)
2828
return dp[-1]
2929
```

树/96. 不同的二叉搜索树.md renamed to 动态规划/96. 不同的二叉搜索树.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ class Solution:
2525
def numTrees(self, n: int) -> int:
2626
dp = [1] + [0] * n
2727
for i in range(1,n+1):
28-
for j in range(1,i+1):
29-
dp[i] += dp[j-1] * dp[i-j]
28+
for j in range(i):
29+
dp[i] += dp[j] * dp[i-j-1]
3030
return dp[-1]
3131
```
3232

0 commit comments

Comments
 (0)