/* 自定義代碼塊樣式 */

herrDeng網內搜尋

自訂搜尋

Ads

2023年9月16日 星期六

C++ Dijkstra演算解爬山省力路徑Leetcode問題1631 Path With Minimum Effort


影片中的部份圖取自 wiki Dijkstra演算頁面。應該可以確認題目的「距離」是由所謂pseudo metric給定,這個要等檢查metric定義的條件時,才猛然發現。想通後,Union Find的解也解出,異常簡易。
[code on Leetcode]https://leetcode.com/problems/path-with-minimum-effort/solutions/4049711/c-dijkstra-s-algorithm-vs-dfs-binary-search-vs-union-find-pseudo-metric-91-ms-beats-98-93/

2023年9月3日 星期日

組合Pascal三角Python C++解Leetcode 62 unique paths


組合Pascal三角Python C++解Leetcode 62 unique paths。把網站的例題轉個45度角,它的計算方式就是Pascal三角,也就是組合數C^N_K  (N=n+m-2, K=m-1),程式要寫得好,還是要多學點數學!
有了遞迴公式,就可用動態規劃dynamic programming,動態規劃就是一種程式設計的技巧

2023年9月1日 星期五

C++bit處理解Leetcode 338 counting Bits


提供三種位元處理方式來數位元,第三個解感謝由網友@Adamm93提供。提供 O(n) 線性時間解決方案。 __builtin_popcount 或 C++ bitset count() 執行時間為 O(log⁡ n) ,其實就是真的去數,因此在快速實作不使用。

2023年8月30日 星期三

2023年8月23日 星期三

鴿籠原理解Leetcode 767. Reorganize String

 


3隻狗4狗洞每隻狗都有一個狗洞,但只有兩個狗洞就不可能。若某個字元 c 的頻率 freq(c) 大於 (n+1)/2,根據鴿籠原理(Pigeonhole principle),找到一個相鄰字元不相同的字串是不可能的,反之則可能。當有 4 個成一排的狗洞,而有 3 隻狗時,不可能存在相鄰的狗洞讓這 3 隻狗分開,5個狗洞就可以。

Related Posts Plugin for WordPress, Blogger...

熱門文章