愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。
最初,黑板上有乙個數字 n 。在每個玩家的回合,玩家需要執行以下操作:
選出任一 x,滿足 0 < x < n 且 n % x == 0 。
用 n - x 替換黑板上的數字 n 。
如果玩家無法執行這些操作,就會輸掉遊戲。
只有在愛麗絲在遊戲中取得勝利時才返回 true,否則返回 false。假設兩個玩家都以最佳狀態參與遊戲。
示例 1:
輸入:2
輸出:true
解釋:愛麗絲選擇 1,鮑勃無法進行操作。
示例 2:
輸入:3
輸出:false
解釋:愛麗絲選擇 1,鮑勃也選擇 1,然後愛麗絲無法進行操作。
1 <= n <= 1000
遞迴三要素:遞迴出口、函式處理過程、遞迴引數。遞迴出口和遞迴引數我都想出了,但遞迴處理過程沒有完全想出,繼續每日一題多練吧。
class solution
private boolean dfs(int n)
if (memo[n] == true)
for (int i=1; i<=n-1; i++)
}} memo[n] = false;
return false;
}}
dfs 記憶化 滑雪
傳送門 題意 給定乙個r行c列的矩陣,表示乙個矩形網格滑雪場。矩陣中第 i 行第 j 列的點表示滑雪場的第 i 行第 j 列區域的高度。乙個人從滑雪場中的某個區域內出發,每次可以向上下左右任意乙個方向滑動乙個單位距離。當然,乙個人能夠滑動到某相鄰區域的前提是該區域的高度低於自己目前所在區域的高度。資...
滑雪 DFS 記憶化搜尋
michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡或者等待公升降機來載你。michael想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 1 2 3 4 5 16 17 ...
帕斯卡遊記 記憶化dfs
問題描述 nxn遊戲板上裝有整數,每平方乙個非負整數。目標是沿著板子的左上角到右下角的任何合法路徑行進。任何乙個正方形中的整數表示距該位置必須多大的步幅。如果步長將提前離開遊戲板,則禁止沿該特定方向前進。所有步驟都必須在右側或底部。請注意,0是乙個死角,會阻止進一步的進展。考慮圖1所示的4 x 4板...