LeetCode 649. Dota2 参议院 java题解

https://leetcode.cn/problems/dota2-senate/description/
贪心。不会写。

class Solution {
    public String predictPartyVictory(String senate) {
        boolean r=true,d=true;
        int flag=0;//flag>0,d前面有r;flag<0,r前面有d
        char[] senates=senate.toCharArray();
        //每一轮
        while(r&&d){//两派都有人
        //先假设 R 和 D 都没有存活者,防止上一轮的存活状态影响本轮
            r=false;
            d=false;
            for(int i=0;i<senates.length;i++){
                if(senates[i]=='R'){
                    if(flag<0){
                        senates[i]='0';//被禁用
                    }
                    else{
                        r=true;//还存在活的r
                    }
                    flag++;
                }
                else if(senates[i]=='D'){//D
                    if(flag>0){
                        senates[i]='0';//被禁用
                    }
                    else{
                        d=true;//还存在活的r
                    }
                    flag--;
                }
            }
        }
        return r==true?"Radiant":"Dire";
    }
}

你可能感兴趣的:(LeetCode,leetcode,java,算法,贪心,贪心算法)