leetcode[1419. 数青蛙]

Posted BeicC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode[1419. 数青蛙]相关的知识,希望对你有一定的参考价值。

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. 数青蛙]的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode面试题10-2. 青蛙跳台阶问题

LeetCode-面试题10.2-青蛙跳台阶问题

[LeetCode] Frog Jump 青蛙过河

[leetcode]403. Frog Jump青蛙过河

[LeetCode] 403. Frog Jump 青蛙跳

[LeetCode]剑指 Offer 10- II. 青蛙跳台阶问题