石子游戏–java–dfs
思路:
这道题,一看题解就觉得自己像个弱智。呜呜呜~~~。DP解法先放下,只有dfs解法。
代码:
class Solution {
private boolean res;
// dfs
public boolean stoneGame(int[] piles) {
dfs(true,0,piles.length - 1,piles,0);
return res;
}
public void dfs(boolean flag, int start, int end, int[] arr,int val){
if( res ){
return;
}
if( flag ){
if( start == end ){
if( val + arr[start] > 0 ){
res = true;
}
return;
}
dfs(!flag,start + 1,end,arr,val + arr[start]);
dfs(!flag,start,end - 1,arr,val + arr[end]);
}else{
if( start == end ){
if( val - arr[start] > 0 ){
res = true;
}
return;
}
dfs(!flag,start + 1,end,arr,val - arr[start]);
dfs(!flag,start,end - 1,arr,val - arr[end]);
}
}
}
作者:mai-jia-jun
链接:https://leetcode-cn.com/problems/stone-game/solution/shi-zi-you-xi-by-mai-jia-jun-q8l5/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。