演算法分析與設計第十六周

2021-08-13 23:01:10 字數 890 閱讀 9173

分析:每次移除乙個數,要盡可能使前面的數最小,因為前面的數的權值最大。而刪除乙個數,會導致後面緊接著的乙個數代替刪除的數的位置。所以在一次移除操作中,從前往後檢查,一旦發現某個數後繼的數更小,則刪除此數。複雜度為o(k*n),可以採用遞迴的方法實現。(然而遞迴**leetcode顯示記憶體超出,應該是棧溢位了,本地測試沒問題。下面先給出遞迴**,後面再給出迭代方法)

遞迴**

class solution 

else

// break;}}

int i ;

//消除前導0

for (i = 0; i < next.length() && next[i] == '0'; ++i);

next = next.substr(i);

return removekdigits(next, k - 1);}};

迭代**:

class solution 

else

// break;}}

int j ;

for (j = 0; j < next.length() && next[j] == '0'; ++j);

next = next.substr(j);

len = next.length();

num = next;

}return num == "" ? "0" : num;}};

通過截圖

演算法設計與應用基礎 第十六周(1)

最大流最小割的c 實現 演算法說明 通過上課老師的講解結合自己的看書理解和上網查詢資料,用c 實現了網路流中最大流的求解 ek 演算法,其中每次搜尋是否有增廣路用bfs搜尋以提高效率,維護兩個陣列pre和flow 其作用在 中有注釋 每次找到一條增廣路後修改殘留網路的流量值,如下 include i...

演算法分析與設計 第十六周 期中小結(中)

最小和 總結一道需要花點時間的題,題目本身不難理解。總結一道動態規劃問題。在圖論中,拓撲序 topological sorting 是乙個有向無環圖 dag,directed acyclic graph 的所有頂點的線性序列.且該序列必須滿足下面兩個條件 每個頂點出現且只出現一次.若存在一條從頂點 ...

第十六周 OJ Money Problem

問題及 檔名稱 mian.cpp 作 者 李楠 完成日期 2014年12月15日 版 本 號 v1.0 問題描述 周一小明要乘坐計程車外出,已知,計程車收費標準為不超過3km的部分收8元,超過3km的部分每增加1km加收1元 不足1km按1km計算 那麼,現在請同學們幫小明算出他坐車共需要花多少錢吧...