lintcode&九章演算法——Microsoft 面試題 | 我能贏 ? 待解決
題目描述
有兩個人玩一個遊戲,給定一個最大可取整數 maxChoosableInteger,兩個人輪流從1~maxChoosableInteger 中取一個數,取過的數不可再取,若其中一方取過以後,
所有取過的數加起來的和大於等於desiredTotal,那麼這個人獲勝。
現在給你maxChoosableInteger和desiredTotal,問先手是否必勝,假定遊戲雙方均採取最優策略。
你可以假定給出的 maxChoosableInteger不超過20,desiredTotal不超過300。
樣例
輸入:
maxChoosableInteger = 10
desiredTotal = 11
輸出:
false
樣例說明
無論先手怎麼取數,先手都會輸掉遊戲。
先手可以取1到10中的任何一個。如果先手取1,那麼後手可以取2到10中的任何一個。
後手如果取10,那麼就可以贏得遊戲,因為此時和為1+10=11=desiredTotal。
假如先手取其他的數,那麼後手仍然能贏得遊戲,只要使和大於等於11即可。
思路:
相關推薦
lintcode&九章演算法——Microsoft 面試題 | 我能贏 ? 待解決
題目描述 有兩個人玩一個遊戲,給定一個最大可取整數 maxChoosableInteger,兩個人輪流從1~maxChoosableInteger 中取一個數,取過的數不可再取,若其中一方取過以後, 所有取過的數加起來的和大於等於desiredTotal,那
九章演算法 | Facebook 面試題 : Backpack VI 揹包演算法
2017-12-21 題目描述 給一個nums[]陣列,如[1, 2, 4] 將這些數組合使得: 這些數的和是給出的一個target,如使這些數的和等於4,求這樣的組合有多少個? 樣例 樣例
九章算法-面試題總結(算法、強化算法、系統設計高清視頻觀看)
1 落單的數 題目描述: 有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求O(n)的時間復雜度,O(1)的空間復雜度。 進階問題:如果有2n+2個數,其中有2個數落單,該怎麽辦? 分析 初階:將2n+1個數異或起來,相同的數會
lintcode&九章演算法——lintcode NO.5 第k大元素 ? 帶解決
問題描述 在陣列中找到第k大的元素 注意事項 你可以交換陣列中的元素的位置 樣例 給出陣列 [9,3,2,4,8],第三大的元素是 4 給出陣列 [1,2,3,4,5],第一大的元素是
九章演算法面試題77 插入區間
原網址: 問題詳情 給出一個無重疊的按照區間起始端點排序的區間列表。 在列表中插入一個新的區間,你要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。線上評測本題: http://www.lintcode.com/zh-cn/problem/insert
九章演算法面試題1 落單的數
九章演算法官網-原文網址: 題目 初階:有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求O(n)的時間複雜度,O(1)的空間複雜度。 進階:如果有2n+2個數,其中有2個數落單,該怎麼辦? 線上測試本題 解答 初階:將2n+1個數異或起來,相同的數會
九章演算法面試題61 克隆圖
九章演算法官網-原文網址 題目 給出一個圖,並且給出圖的起始節點,知道這個圖的節點的定義,要求克隆這個圖,返回克隆圖的起始節點。 線上測試本題 解答 這一類克隆一個圖的題目,我們都可以分為兩步。 第一步: 克隆點。 只需要用廣度優先搜尋的方法從根節點出發去遍歷一遍圖,
九章演算法——面試題思路
面試題1 落單的數 題目描述: 有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求O(n)的時間複雜度,O(1)的空間複雜度。進階問題:如果有2n+2個數,其中有2個數落單,該怎麼辦? 答: 初階:將2n+1個數異或起來,相同的數會抵消,異或的答
九章演算法面試題80 接雨水
原文網址: 問題詳情 給出 n 個非負整數,代表一張X軸上每個區域寬度為 1 的海拔圖, 計算這個海拔圖最多能接住多少(面積)雨水線上評測本題: http://www.lintcode.com/zh-cn/problem/trapping-rain-water/解答
九章演算法面試題32 小球排序
九章演算法官網-原文網址 題目 有紅黃藍三色的小球若干排成一列,這些小球進行排序,請使用盡量少的空間和時間。解答 假設順序為紅色黃色藍色。用兩根指標從頭開始遍歷,第一根指標遇到非紅色時停下,如果第二根指標找到第一根指標之後的第一個紅色停下,交換兩根指標所指顏色。重複上述過
九章演算法面試題38 洗牌的技巧
九章演算法官網-原文網址 題目 有一副撲克有2n張牌,用1,2,..2*n代表每一張牌,一次洗牌會把牌分成兩堆,1,2..n和n+1...2n。然後再交叉的洗在一起:n+1, 1, n+2, 2, … n, 2n。問按照這種技巧洗牌,洗多少次能夠洗回撲克最初的狀態:1,2
九章演算法面試題66 2 sum
九章演算法官網-原文網址 題目 給一堆陣列和一個目標值,在這堆數組裡面找出兩個數使得他們的和等於目標值。 線上測試本題 http://www.lintcode.com/en/problem/2-sum/ 解答 如果原題的陣列中第i個元素我們用ai來表示,目標值我們用v來
九章演算法面試題56 最近公共祖先
九章演算法官網-原文網址 題目 給出一棵二叉樹和兩個二叉樹上的節點,求出這兩個點的最近公共祖先(Lowest Common Ancestor, LCA)。 如下面這棵二叉樹: 1 / \ 2 3
九章演算法面試題45 尋找最大的儲水容器
九章演算法官網-原文網址 題目 給定一個正整數陣列(a0,a1..),分別代表n個座標(0,a0), (1,a1),根據這n個點畫出n條線段,每條線段的兩個端點分別為(i, ai)和(i, 0)。找到兩條線段,使得這兩條線段和x軸所構成的容器儲水容量最大。如[2,1,3]
九章演算法面試題87 最小子陣列
原文網址 問題詳情 給定一個整數陣列,找到一個具有最小和的子陣列。返回其最小和。線上評測本題: http://www.lintcode.com/zh-cn/problem/minimum-subarray/解答 這道題和max subarray很類似,我用local
九章演算法面試題79 尋找峰值
原文網址: 問題詳情 你給出一個整數陣列(size為n),其具有以下特點: 相鄰位置的數字是不同的 A[0] < A[1] 並且 A[n - 2] > A[n - 1] 假定P是峰值的位置則滿足A[P] > A[P-1]且A[P] > A[P
九章演算法筆記 5.深度優先搜尋 Depth First Search
DFS cs3k.com 什麼時候用dfs? 短, 小, 最問題 而90%DFS的題, 要麼是排列, 要麼是組合 組合搜尋問題 Combination 問題模型:求出所有滿足條件的“組合” 判斷條件:組合中的元素是順序無關的 時間複雜度:與 2^n 相關 遞迴三要素 一般來說,如果面試官不特
九章演算法筆記 4.寬度優先搜尋 Breadth First Search
演算法與題型 cs3k.com DFS: 用於搜尋, 題目中有ALL字樣 二分法: 用於時間複雜度小於O(n)的情況 分治法: 二叉樹問題, 子問題和父問題有關係 BFS:- 二叉樹上的寬搜- 圖上的寬搜: 拓撲排序- 棋盤上的寬搜 什麼時候應該用BFS? 圖
九章演算法筆記 3.二叉樹與分治演算法Binary Tree & Divide Conquer
大綱 cs3k.com • 時間複雜度訓練 II • 二叉樹的遍歷演算法 Traverse in Binary Tree Preorder / Inorder / Postorder • 二叉樹的深度優先搜尋 DFS in Binary Tree 1.遍歷問題 Preorder
九章演算法筆記 2.Binary Search
大綱 cs3k.com 第一境界 二分法模板 • 時間複雜度小練習• 遞迴與非遞迴的權衡• 二分的三大痛點• 通用的二分法模板 第二境界 • 二分位置 之 圈圈叉叉 Binary Search on Index – OOXX• 找到滿足某個條件的第一個位置或者最後一個位置 第三境界 •二分位置 之