首页 > 编程学习 > 菜鸡代码日记-781

菜鸡代码日记-781

发布时间:2022/5/14 18:59:10

781.森林中的兔子

1.思路

  •   假设answers数组某一位值为2(x)——>除了这只兔子以外,还有2(x)只兔子和它拥有一样的颜色,即有3(x+1)只兔子拥有一样的颜色
    
      1.  若值为2的兔子不超过3(x+1)只——>该这种颜色的兔子数量保持为3(x+1)
        
      1.  若值为2的兔子出现第4(x+2)只,重置这只兔子为第1只——>该颜色的兔子数量变为3+3=6((x+1)+(x+1))
        
      1.  若值为2的兔子继续出现,按前两条循环
        

2.LeetCode代码

class Solution {
public:
    int numRabbits(vector<int>& answers) {
        int a[1000] = {0};
        int sum = 0;
        for(int i = 0; i < answers.size(); i++) //遍历answers数组
        {
            if(!a[answers[i]] || (a[answers[i]] == answers[i] + 1)) //当某值还未出现过或该值已经存满时
            {
                a[answers[i]] = 1; //重置该位
                sum = sum + answers[i] + 1; //更新数量
            }
            else if(a[answers[i]] < answers[i] + 1) //当某值已经出现过且出现次数还未存满时
                a[answers[i]]++;
        }    
        return sum;
    }
};
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000