Skip to content

Commit 030bded

Browse files
committed
url replacement in yxc algo
1 parent c239487 commit 030bded

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

面试和算法/yxc 算法学习/yxc 算法.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,17 @@
88

99
**取数组当中的一个值,一般取第一个值,先做处理再进行递归**
1010

11-
![image-20230711194047843](https://img-blog.csdnimg.cn/7871cdf30c6b48839d7bbc1ace541f85.png)
11+
![image-20230711194047843](https://image.davidingplus.cn/images/2025/02/02/image-20230711194047843.png)
1212

1313
**分治的思想**:取一个分界点,进行一个轮次的查找使得分界点左边的数均小于x,右边的数均大于x;然后对左边和右边的区间分别进行递归即可
1414

1515
具体而言:
1616

17-
![image-20230711204623490](https://img-blog.csdnimg.cn/8cbca9858f6a4f4588e58f5fe70c151c.png)
17+
![image-20230711204623490](https://image.davidingplus.cn/images/2025/02/02/image-20230711204623490.png)
1818

19-
![image-20230711204636198](https://img-blog.csdnimg.cn/5f6adb3a3bac4470b9bafc96f001ba58.png)
19+
![image-20230711204636198](https://image.davidingplus.cn/images/2025/02/02/image-20230711204636198.png)
2020

21-
![image-20230711204656505](https://img-blog.csdnimg.cn/836b65f333ec40ccb882aca60c6b44d8.png)
21+
![image-20230711204656505](https://image.davidingplus.cn/images/2025/02/02/image-20230711204656505.png)
2222

2323
**注意:取左侧作为标兵那么一定是右侧先移动,然后最后将右侧的位置和标兵进行交换!!!!**
2424

@@ -67,7 +67,7 @@ void quick_sort(int arr[], int left, int right) {
6767
6868
采用双指针算法进行合并
6969
70-
![image-20230713160124405](https://img-blog.csdnimg.cn/0ae42133e38b4c32a56c196c7e1cf263.png)
70+
![image-20230713160124405](https://image.davidingplus.cn/images/2025/02/02/image-20230713160124405.png)
7171
7272
**两根指针分别指向两个数组起始和结束的位置,然后依次比较两个指针,如果升序,哪个小就把哪个放入后面的数组然后后移,然后再次进行比较,直到一方到达末尾,这个时候把另一个的数组填入即可**
7373
@@ -117,7 +117,7 @@ void merge_sort(int array[], int left, int right) {
117117

118118
第k个数
119119

120-
<img src="https://img-blog.csdnimg.cn/10bca92ff31c474f94c89d78fb20354f.png" alt="image-20230715161200778" style="zoom:67%;" />
120+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230715161200778.png" alt="image-20230715161200778" style="zoom:67%;" />
121121

122122
~~~cpp
123123

@@ -131,11 +131,11 @@ void merge_sort(int array[], int left, int right) {
131131

132132
#### 两个模板:
133133

134-
![image-20230713165547136](https://img-blog.csdnimg.cn/4831ba311c6b4787928399463f200448.png)
134+
![image-20230713165547136](https://image.davidingplus.cn/images/2025/02/02/image-20230713165547136.png)
135135

136136
#### 例题
137137

138-
<img src="https://img-blog.csdnimg.cn/8c501b1d70a04842932775887326b773.png" alt="image-20230713175850386" style="zoom:80%;" />
138+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230713175850386.png" alt="image-20230713175850386" style="zoom:80%;" />
139139

140140
```c++
141141
#include <iostream>
@@ -205,7 +205,7 @@ int main() {
205205
}
206206
```
207207
208-
<img src="https://img-blog.csdnimg.cn/bce8dcbe306b4e8a95cb95200df9b62d.png" alt="image-20230713183605769" style="zoom: 67%;" />
208+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230713183605769.png" alt="image-20230713183605769" style="zoom: 67%;" />
209209
210210
```c++
211211
#include <iostream>
@@ -252,11 +252,11 @@ int main() {
252252

253253
**A的位数是10的6次方(可以看出超级大了)**
254254

255-
![image-20230714155419310](https://img-blog.csdnimg.cn/f7bc4c30abab4b51b0429ad703c85c83.png)
255+
![image-20230714155419310](https://image.davidingplus.cn/images/2025/02/02/image-20230714155419310.png)
256256

257257
##### 存储方法
258258

259-
![image-20230714155943611](https://img-blog.csdnimg.cn/1bf898321985474e82512b5250af3ad6.png)
259+
![image-20230714155943611](https://image.davidingplus.cn/images/2025/02/02/image-20230714155943611.png)
260260

261261
比如有一个数123456789,我们把每一位放到数组当中,从低位开始往后放
262262

@@ -495,7 +495,7 @@ int main() {
495495

496496
**与一般的思路不同,这个是把位数小的数放在前面!!!(因为我们也只能让小的数和大的数的每一位相乘!!!)**
497497

498-
<img src="https://img-blog.csdnimg.cn/ba6560f1e4a94079bf51e7bd46219ddd.png" alt="6bd3078974047cfc651144c0787f894" style="zoom: 50%;" />
498+
<img src="https://image.davidingplus.cn/images/2025/02/02/6bd3078974047cfc651144c0787f894.jpg" alt="6bd3078974047cfc651144c0787f894" style="zoom: 50%;" />
499499

500500
模板
501501

@@ -533,7 +533,7 @@ vector<int> mul(const vector<int>& A, const int& b) {
533533
534534
思路:就按照一般的除法走就完了
535535
536-
<img src="https://img-blog.csdnimg.cn/72bf9f90eea4407687f6e7b6c206c4b9.png" alt="image-20230714203250061" style="zoom:67%;" />
536+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714203250061.png" alt="image-20230714203250061" style="zoom:67%;" />
537537
538538
模板
539539
@@ -624,11 +624,11 @@ int main() {
624624

625625
**计算 1 到 n 的和,公式就是 Sn-S0,这样就做到了统一!!!(处理边界)**
626626

627-
![image-20230714211457962](https://img-blog.csdnimg.cn/dc3c39faf4ed4495b4b67a9908369bd8.png)
627+
![image-20230714211457962](https://image.davidingplus.cn/images/2025/02/02/image-20230714211457962.png)
628628

629629
前缀和例题
630630

631-
<img src="https://img-blog.csdnimg.cn/56a72e20d4bf470d89c789ffb62f07ac.png" alt="image-20230714213457166" style="zoom:67%;" />
631+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714213457166.png" alt="image-20230714213457166" style="zoom:67%;" />
632632

633633
代码:
634634

@@ -692,11 +692,11 @@ ios::sync_with_stdio(false);
692692

693693
例题2
694694

695-
<img src="https://img-blog.csdnimg.cn/772573018b6446639d537cfaeac602ca.png" alt="image-20230714214355261" style="zoom:67%;" />
695+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714214355261.png" alt="image-20230714214355261" style="zoom:67%;" />
696696

697697
动态递归的思路:(自己画个图就明白了)
698698

699-
<img src="https://img-blog.csdnimg.cn/d349a94d55f34f6bbe98e73ae1015dcc.png" alt="image-20230714214717118" style="zoom: 50%;" />
699+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714214717118.png" alt="image-20230714214717118" style="zoom: 50%;" />
700700

701701
~~~cpp
702702
#include <iostream>
@@ -732,7 +732,7 @@ int main() {
732732

733733
b数组称为a数组的差分,a数组称为b数组的前缀和
734734

735-
<img src="https://img-blog.csdnimg.cn/f1cd025c5a7d43eba8b8fb6cb82a9c5f.png" alt="image-20230714221348016" style="zoom:67%;" />
735+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714221348016.png" alt="image-20230714221348016" style="zoom:67%;" />
736736

737737
**差分的作用:可以用O(1)的时间复杂度将数组当中某个区间的所有数加上某个值**
738738

@@ -744,11 +744,11 @@ b数组称为a数组的差分,a数组称为b数组的前缀和
744744

745745
**因此,l到r区间当中的前缀和全部加了c**
746746

747-
![image-20230714221736276](https://img-blog.csdnimg.cn/a61b108fa4644648895eabb9e821c9bd.png)
747+
![image-20230714221736276](https://image.davidingplus.cn/images/2025/02/02/image-20230714221736276.png)
748748

749749
例题
750750

751-
<img src="https://img-blog.csdnimg.cn/b0464674af6140ed9d46cc9523315b8f.png" alt="image-20230714222044152" style="zoom:67%;" />
751+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230714222044152.png" alt="image-20230714222044152" style="zoom:67%;" />
752752

753753
代码
754754

@@ -793,7 +793,7 @@ int main() {
793793

794794
二维差分
795795

796-
<img src="https://img-blog.csdnimg.cn/93fe5f7aaa4947c9a20f32c6c5da2afb.png" alt="image-20230715153441758" style="zoom:67%;" />
796+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230715153441758.png" alt="image-20230715153441758" style="zoom:67%;" />
797797

798798
代码
799799

@@ -856,7 +856,7 @@ int main() {
856856

857857
绝大部分的模板都是长这样的
858858

859-
![image-20230715171200318](https://img-blog.csdnimg.cn/9b8417bf19c54c03b6f9e16274cf5860.png)
859+
![image-20230715171200318](https://image.davidingplus.cn/images/2025/02/02/image-20230715171200318.png)
860860

861861
一个简单的例子
862862

@@ -902,7 +902,7 @@ int main() {
902902

903903
#### 例题
904904

905-
<img src="https://img-blog.csdnimg.cn/91ebc848f4cb4ad2b216103348a47043.png" alt="image-20230715194453180" />
905+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230715194453180.png" alt="image-20230715194453180" />
906906

907907
双指针的题一般都可以从暴力入手,然后再去着手优化
908908

@@ -1030,7 +1030,7 @@ n >> k && 1
10301030

10311031
#### 例题
10321032

1033-
<img src="https://img-blog.csdnimg.cn/12c1472aa98849e5bc0a8fc413960a44.png" alt="image-20230715205834408" style="zoom:67%;" />
1033+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230715205834408.png" alt="image-20230715205834408" style="zoom:67%;" />
10341034

10351035
这个题就是典型的lowbit操作的用法
10361036

@@ -1070,7 +1070,7 @@ int main() {
10701070
10711071
值域非常大,我们把这些数映射到从0开始的有序自然数,这个过程就叫离散化
10721072
1073-
![image-20230715211118777](https://img-blog.csdnimg.cn/095fb9fdc9ad4e7ebbccc5a8303953dd.png)
1073+
![image-20230715211118777](https://image.davidingplus.cn/images/2025/02/02/image-20230715211118777.png)
10741074
10751075
两个前提:**第一是整数;第二是保序,也就是数组是有序的**
10761076
@@ -1086,7 +1086,7 @@ alls.erase(unique(alls.begin(),alls.end()),alls.end());
10861086

10871087
#### 例题(!!!)
10881088

1089-
<img src="https://img-blog.csdnimg.cn/8301ad730dd94bcc907ba2942efe926f.png" alt="image-20230715212020778" style="zoom:67%;" />
1089+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230715212020778.png" alt="image-20230715212020778" style="zoom:67%;" />
10901090

10911091
如果数的范围很小,那么可以用前缀和算法就可以很好的解决了
10921092

@@ -1203,15 +1203,15 @@ int main() {
12031203
12041204
先把所有区间按照左端点的大小排序,然后从第一个区间开始,由于排了序,那么后面的区间的左端点只可能大于等于本区间,然后就可能出现三种情况如下:
12051205
1206-
<img src="https://img-blog.csdnimg.cn/a5fc0fc4f9f3402b88134c2715bd3bc2.png" alt="image-20230719163223755" style="zoom:67%;" />
1206+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719163223755.png" alt="image-20230719163223755" style="zoom:67%;" />
12071207
12081208
前面两个区间可以合并,然后更新为新的区间;第三种情况合并不了,由于经过了排序,那么第一个区间必然是最后合并区间的一个,那么将其记录下来,然后更新区间为后面的区间,直到所有的区间都判断完毕
12091209
1210-
![image-20230719163115693](https://img-blog.csdnimg.cn/5d239690a95044f5a626219e18a16a00.png)
1210+
![image-20230719163115693](https://image.davidingplus.cn/images/2025/02/02/image-20230719163115693.png)
12111211
12121212
例题:
12131213
1214-
<img src="https://img-blog.csdnimg.cn/29a8d4fd973d418b8024866aaf4a66a7.png" alt="image-20230719165718848" style="zoom:67%;" />
1214+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719165718848.png" alt="image-20230719165718848" style="zoom:67%;" />
12151215
12161216
代码:
12171217
@@ -1283,11 +1283,11 @@ int main() {
12831283

12841284
用e[N]和ne[N]来表示结点的值和结点的后继结点的下标,空结点下标定义为-1
12851285

1286-
![image-20230719170957832](https://img-blog.csdnimg.cn/edd39c085d7b4e13b5782b022264e145.png)
1286+
![image-20230719170957832](https://image.davidingplus.cn/images/2025/02/02/image-20230719170957832.png)
12871287

12881288
##### 例题(!!!)
12891289

1290-
<img src="https://img-blog.csdnimg.cn/7c9c948362084a52afe7dbde2ea90010.png" alt="image-20230719171157485" style="zoom:67%;" />
1290+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719171157485.png" alt="image-20230719171157485" style="zoom:67%;" />
12911291

12921292
直接看代码吧,都在代码里了(真的很巧妙)
12931293

@@ -1377,7 +1377,7 @@ int main() {
13771377
13781378
##### 例题
13791379
1380-
<img src="https://img-blog.csdnimg.cn/229d3ba0dd6f414c9daabc6345859cab.png" alt="image-20230719211659529" />
1380+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719211659529.png" alt="image-20230719211659529" />
13811381
13821382
**思路差不多,但是这里借用数组的0和1序号来代表head和tail,idx从2开始!!!**
13831383
@@ -1478,7 +1478,7 @@ int main() {
14781478

14791479
stack
14801480

1481-
<img src="https://img-blog.csdnimg.cn/2b501b71a28945199896e603ff91cb28.png" alt="image-20230719212205557" style="zoom: 80%;" />
1481+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719212205557.png" alt="image-20230719212205557" style="zoom: 80%;" />
14821482

14831483
~~~cpp
14841484
#include <iostream>
@@ -1552,7 +1552,7 @@ int main() {
15521552

15531553
queue
15541554

1555-
<img src="https://img-blog.csdnimg.cn/0253b43f649f449b97b349f455e33667.png" alt="image-20230719213226149" style="zoom:80%;" />
1555+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719213226149.png" alt="image-20230719213226149" style="zoom:80%;" />
15561556

15571557
~~~cpp
15581558
#include <iostream>
@@ -1632,7 +1632,7 @@ int main() {
16321632
16331633
#### 例题
16341634
1635-
<img src="https://img-blog.csdnimg.cn/d338503579f246a087265ba6e04c2555.png" alt="image-20230719220816068" style="zoom:80%;" />
1635+
<img src="https://image.davidingplus.cn/images/2025/02/02/image-20230719220816068.png" alt="image-20230719220816068" style="zoom:80%;" />
16361636
16371637
代码:
16381638
@@ -1726,7 +1726,7 @@ int main() {
17261726

17271727
#### 例题
17281728

1729-
![image-20230719221813851](https://img-blog.csdnimg.cn/421be669d6944e75a6ddcbb01745faa8.png)
1729+
![image-20230719221813851](https://image.davidingplus.cn/images/2025/02/02/image-20230719221813851.png)
17301730

17311731
代码还有一些问题,后续修改
17321732

0 commit comments

Comments
 (0)