程式設計之美的演算法思想很好,可是有些地方很難一下子看明白,對於我這種急性子的人,很難一下搞懂。
通俗的將這道題的思路是這樣子的
加入烙餅序列 為 1 7 3 5 6 2 4
我們認為 4 為餅子的頂端,由於只能把下面的多塊餅移到上面,然後再反轉移到響應的位置。
實際上 就是從 底層開始 我們找未放在原位的餅子 ,現在在的位置,將其移到上面,然後在移到響應的位置。
簡單地說 就是把大的放到底下,小的放到上面。
這樣就容易。
直接code
#include "iostream"
#include "vector"
#include "deque"
using namespace std;
void reverse(vector&cookie,deque&tempstore,int pos)
int k=tempstore.size();
for(i=0;ilaobin;
dequetempstore;
for(i=0;imax)
}/*大的不在該在的位置*/
if(pos!=i)
}for(vector::iterator iter=laobin.begin();iter!=laobin.end();iter++)
cout<
的queue stack deque map multimap set multiset 使用的不是很好。
耽誤了時間。
經典演算法 烙餅排序
給乙個為排序的陣列,你只能再改對該陣列做如下操作 flip arr,i 將陣列arr 0.i 進行逆置。如何對該陣列進行排序?這個問題在程式設計之美一書也有提及 星期五的晚上,一幫同事在希格瑪大廈附近的 硬碟酒吧 多喝了幾杯。程式設計師多喝了幾杯之後談什麼呢?自然是演算法問題。有個同事說 我以前在餐...
面試訓練O n 時間的排序
題目 某公司有幾萬名員工,請完成乙個時間複雜度為o n 的演算法對該公司員工的年齡作排序,可使用o 1 的輔助空間。思路 歸併,快排,插入,等排序最快為o nlgn 的時間複雜度 要達到o n 的時間複雜度 只有計數排序,桶排序,基數排序法才能達到 考慮到公司員工入職和離職的年齡範圍是固定的都是介於...
關於烙餅排序問題的演算法與Java實現
最近在看 程式設計之美 這本書,書裡有乙個烙餅排序問題。星期五的晚上,一幫同事在希格瑪大廈附近的 硬碟酒吧 多喝了幾杯。程式設計師多喝了幾杯之後談什麼呢?自然是演算法問題。有個同事說 我以前在餐館打工,顧客經常點非常多的烙餅。店裡的餅大小不一,我習慣在到達顧客飯桌前,把一摞餅按照大小次序擺好 小的在...