码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode[1419. 数青蛙]

时间:2020-04-24 15:59:59      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:com   nim   -o   number   理解   size   ring   return   模拟   

leetcode1419. 数青蛙

题解参考

这题我用我的理解来模拟,在地上有c r o a k 五块石头,当你踩到某块石头的时候,这块石头会发亮,当你离开某块石头的时候亮光会消失。现在来想,怎么样可以不用多余的人?

对于你自己来说:那肯定是你从c石头走到k石头了,然后再来一趟。如果你在roa中的某块石头,突然发现c石头亮了,那肯定又有一个人加入了踩石头的队伍中。

换句话说(对于多人来说),如果c石头亮了,那么当且仅当k石头上有人才能不需要多余的人(这些人可以扭头再来一趟),否则就要来一个新的人加入队伍

class Solution {
public:
    int minNumberOfFrogs(string F) {
        int c,r,o,a,k,ans;
        c = r = o = a = k = ans = 0;
        for(int i = 0; i < F.size(); i++){
            if(F[i] == ‘c‘){
                if(k > 0){k--;}else ans++; //如果k石头上有人的话不需要增加人,否则人数+1
                c++;
            }
            if(F[i] == ‘r‘){r++;c--;}
            if(F[i] == ‘o‘){o++;r--;}
            if(F[i] == ‘a‘){a++;o--;}
            if(F[i] == ‘k‘){k++;a--;}
            if(c<0 || r<0 || o<0 || a<0 || k<0) break;
        }
        if(c!= 0 || r != 0 || o != 0 || a != 0) return -1; //最后符合题目要求的条件肯定是croa上没有人
        else return ans;
    }
};

leetcode[1419. 数青蛙]

标签:com   nim   -o   number   理解   size   ring   return   模拟   

原文地址:https://www.cnblogs.com/Beic233/p/12767899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!