781. Rabbits in Forest LeetCode Solution
In this guide, you will get 781. Rabbits in Forest LeetCode Solution with the best time and space complexity. The solution to Rabbits in Forest problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Rabbits in Forest solution in C++
- Rabbits in Forest solution in Java
- Rabbits in Forest solution in Python
- Additional Resources
Problem Statement of Rabbits in Forest
There is a forest with an unknown number of rabbits. We asked n rabbits “How many rabbits have the same color as you?” and collected the answers in an integer array answers where answers[i] is the answer of the ith rabbit.
Given the array answers, return the minimum number of rabbits that could be in the forest.
Example 1:
Input: answers = [1,1,2]
Output: 5
Explanation:
The two rabbits that answered “1” could both be the same color, say red.
The rabbit that answered “2” can’t be red or the answers would be inconsistent.
Say the rabbit that answered “2” was blue.
Then there should be 2 other blue rabbits in the forest that didn’t answer into the array.
The smallest possible number of rabbits in the forest is therefore 5: 3 that answered plus 2 that didn’t.
Example 2:
Input: answers = [10,10,10]
Output: 11
Constraints:
1 <= answers.length <= 1000
0 <= answers[i] < 1000
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1000) = O(1)
781. Rabbits in Forest LeetCode Solution in C++
class Solution {
public:
int numRabbits(vector<int>& answers) {
int ans = 0;
vector<int> count(1000);
for (const int answer : answers) {
if (count[answer] % (answer + 1) == 0)
ans += answer + 1;
++count[answer];
}
return ans;
}
};
/* code provided by PROGIEZ */
781. Rabbits in Forest LeetCode Solution in Java
class Solution {
public int numRabbits(int[] answers) {
int ans = 0;
int[] count = new int[1000];
for (final int answer : answers) {
if (count[answer] % (answer + 1) == 0)
ans += answer + 1;
++count[answer];
}
return ans;
}
}
// code provided by PROGIEZ
781. Rabbits in Forest LeetCode Solution in Python
class Solution:
def numRabbits(self, answers: list[int]) -> int:
ans = 0
count = collections.Counter()
for answer in answers:
if count[answer] % (answer + 1) == 0:
ans += answer + 1
count[answer] += 1
return ans
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.