請以 prune and search 解 selection problem。
在以下 25 個數字中,要找出第 14 小的數。
25 個數字依序為:
15,18,12,10,12,4,6,14,10,1,3,5,1,5,20,3,4,10,7,5,1,15,2,4,8。
分組方式為:第一組為第 1 到 5 個數字,第二組為第 6 到 10 個,依此類推。
第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
---|---|---|---|---|
15 | 4 | 3 | 3 | 1 |
18 | 6 | 5 | 4 | 15 |
12 | 14 | 1 | 10 | 2 |
10 | 10 | 5 | 7 | 4 |
12 | 1 | 20 | 5 | 8 |
第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
---|---|---|---|---|
15 | 4 | 3 | 3 | 1 |
18 | 6 | 5 | 4 | 15 |
12 | 14 | 1 | 10 | 2 |
10 | 10 | 5 | 7 | 4 |
12 | 1 | 20 | 5 | 8 |
第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
---|---|---|---|---|
12 | 6 | 5 | 5 | 4 |
S1 |
---|
1 |
1 |
1 |
2 |
3 |
3 |
4 |
4 |
4 |
S2 |
---|
5 |
5 |
5 |
S3 |
---|
6 |
7 |
8 |
10 |
10 |
10 |
12 |
12 |
14 |
15 |
15 |
18 |
20 |
刪掉的是S1+S2 共9+3 12個
S1 |
---|
1 |
1 |
1 |
2 |
3 |
3 |
4 |
4 |
4 |
S2 |
---|
5 |
5 |
5 |
()
第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
---|---|---|---|---|
15 | 4 | 3 | 3 | 1 |
18 | 6 | 5 | 4 | 15 |
12 | 14 | 1 | 10 | 2 |
10 | 10 | 5 | 7 | 4 |
12 | 1 | 20 | 5 | 8 |
第1組 | 第2組 | 第3組 | 第4組 | 第5組 |
---|---|---|---|---|
12 | 6 | 5 | 5 | 4 |
S1 |
---|
1 |
1 |
1 |
2 |
3 |
3 |
4 |
4 |
4 |
S2 |
---|
5 |
5 |
5 |
S3 |
---|
6 |
7 |
8 |
10 |
10 |
10 |
12 |
12 |
14 |
15 |
15 |
18 |
20 |
刪掉的是S2+S3 共3+13 16個
S2 |
---|
5 |
5 |
5 |
S3 |
---|
6 |
7 |
8 |
10 |
10 |
10 |
12 |
12 |
14 |
15 |
15 |
18 |
20 |
請用prune and search解Simplified Linear Programming with Two Variables。
找滿足條件最小y值的點。(請說明步驟及計算結果)
第一回合
感謝GeoGebra
中位數是5
碗上面的點
斜率為正
在的左方
所有值比大的,刪掉在同的情況下,在下面的那條。
丟進map給他記錄次數
排序後提出前K個
回傳答案
14分鐘
完全自己解出
好水
就是比對第一個第二個的哪個一樣
直接回傳就好
3分鐘
完全自己解出
我不小心寫過了
簡單來說就是把左右邊排好
從起始點小的開始排
結束值不重要,反正跑的過程會把當中最小的取出來
如果當下這顆氣球的左邊points[i][0]
超過了右界的值r
就換下一顆子彈射
而右界會越來越小(或不變)
大概是這樣的想法
順帶一提
如果cmp是用&(參照)可以節省很多時間
因為每次cmp是需要把vector複製一次再傳過去的
如果用參照就不用花那個時間了
10分鐘
完全自己解出
已填