LeetCode 1553 吃掉N個橘子的最少天數

2022-09-20 12:39:12 字數 952 閱讀 3695

leetcode 1553 吃掉n個橘子的最少天數

題目大意:

題解:

三條結論

在任意一次操作\(2\)之前最多隻會有\(1\)次操作\(1\);

在任意一次操作\(3\)之前最多隻會有\(2\)次操作\(1\);

除了最後的一次操作\(1\)之外,其餘連續的操作\(1\)之後都會有操作\(2\)或\(3\)。

通過記憶化搜尋實現上述三條結論:

\[f(i) = i \% 2 + 1 + f(\lfloor i/2 \rfloor)

\]\[f(i) = i \% 3 + 1 + f(\lfloor i/3 \rfloor)

\]\[f(1) = 1

\]

class solution 

if (hashtable.count(n))

return hashtable[n] = min(n % 2 + 1 + mindays(n / 2), n % 3 + 1 + mindays(n / 3));}};

我們也可以將思路抽象成乙個最短路問題,即:

因此我們可以用\(dijkstra\)演算法求出答案。

using pii = pair;

class solution

visited.insert(node);

if (node == 1)

q.emplace(days + 1 + node % 2, node / 2);

q.emplace(days + 1 + node % 3, node / 3);

}return ans;}};

LeetCode 回溯 N皇后

n 皇后問題研究的是如何將 n 個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。上圖為 8 皇后問題的一種解法。給定乙個整數 n,返回所有不同的 n 皇后問題的解決方案。每一種解法包含乙個明確的 n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。示例 輸入 4 輸出...

LeetCode演算法 N皇后 N皇后II

n皇后問題研究的是如何將 n?個皇后放置在 n n 的棋盤上,並且使皇后彼此之間不能相互攻擊。給定乙個整數 n,返回所有不同的?n?皇后問題的解決方案。每一種解法包含乙個明確的?n 皇后問題的棋子放置方案,該方案中 q 和 分別代表了皇后和空位。示例 輸入 4 輸出 q 解法 1 q q q.q.解...

leetcode 319 N個人開關N盞燈

初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關 如果關閉則開啟,如果開啟則關閉 第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後乙個燈泡的開關。找出 n 輪後有多少個亮著的燈泡。示例 輸入 3輸出 1解...