New Problem Solution - "1700. Number of Students Unable to Eat Lunch"
This commit is contained in:
parent
98946691a2
commit
24c5f61fe6
@ -107,6 +107,7 @@ LeetCode
|
||||
|1716|[Calculate Money in Leetcode Bank](https://leetcode.com/problems/calculate-money-in-leetcode-bank/) | [C++](./algorithms/cpp/calculateMoneyInLeetcodeBank/CalculateMoneyInLeetcodeBank.cpp)|Easy|
|
||||
|1711|[Count Good Meals](https://leetcode.com/problems/count-good-meals/) | [C++](./algorithms/cpp/countGoodMeals/CountGoodMeals.cpp)|Medium|
|
||||
|1710|[Maximum Units on a Truck](https://leetcode.com/problems/maximum-units-on-a-truck/) | [C++](./algorithms/cpp/maximumUnitsOnATruck/MaximumUnitsOnATruck.cpp)|Easy|
|
||||
|1700|[Number of Students Unable to Eat Lunch](https://leetcode.com/problems/number-of-students-unable-to-eat-lunch/) | [C++](./algorithms/cpp/numberOfStudentsUnableToEatLunch/NumberOfStudentsUnableToEatLunch.cpp)|Easy|
|
||||
|1695|[Maximum Erasure Value](https://leetcode.com/problems/maximum-erasure-value/) | [C++](./algorithms/cpp/maximumErasureValue/MaximumErasureValue.cpp)|Medium|
|
||||
|1694|[Reformat Phone Number](https://leetcode.com/problems/reformat-phone-number/) | [C++](./algorithms/cpp/reformatPhoneNumber/ReformatPhoneNumber.cpp)|Easy|
|
||||
|1625|[Lexicographically Smallest String After Applying Operations](https://leetcode.com/problems/lexicographically-smallest-string-after-applying-operations/) | [C++](./algorithms/cpp/lexicographicallySmallestStringAfterApplyingOperations/LexicographicallySmallestStringAfterApplyingOperations.cpp)|Medium|
|
||||
|
@ -0,0 +1,75 @@
|
||||
// Source : https://leetcode.com/problems/number-of-students-unable-to-eat-lunch/
|
||||
// Author : Hao Chen
|
||||
// Date : 2021-05-10
|
||||
|
||||
/*****************************************************************************************************
|
||||
*
|
||||
* The school cafeteria offers circular and square sandwiches at lunch break, referred to by numbers 0
|
||||
* and 1 respectively. All students stand in a queue. Each student either prefers square or circular
|
||||
* sandwiches.
|
||||
*
|
||||
* The number of sandwiches in the cafeteria is equal to the number of students. The sandwiches are
|
||||
* placed in a stack. At each step:
|
||||
*
|
||||
* If the student at the front of the queue prefers the sandwich on the top of the stack, they
|
||||
* will take it and leave the queue.
|
||||
* Otherwise, they will leave it and go to the queue's end.
|
||||
*
|
||||
* This continues until none of the queue students want to take the top sandwich and are thus unable
|
||||
* to eat.
|
||||
*
|
||||
* You are given two integer arrays students and sandwiches where sandwiches[i] is the type of the
|
||||
* ith sandwich in the stack (i = 0 is the top of the stack) and students[j] is the preference of
|
||||
* the jth student in the initial queue (j = 0 is the front of the queue). Return the number of
|
||||
* students that are unable to eat.
|
||||
*
|
||||
* Example 1:
|
||||
*
|
||||
* Input: students = [1,1,0,0], sandwiches = [0,1,0,1]
|
||||
* Output: 0
|
||||
* Explanation:
|
||||
* - Front student leaves the top sandwich and returns to the end of the line making students =
|
||||
* [1,0,0,1].
|
||||
* - Front student leaves the top sandwich and returns to the end of the line making students =
|
||||
* [0,0,1,1].
|
||||
* - Front student takes the top sandwich and leaves the line making students = [0,1,1] and sandwiches
|
||||
* = [1,0,1].
|
||||
* - Front student leaves the top sandwich and returns to the end of the line making students =
|
||||
* [1,1,0].
|
||||
* - Front student takes the top sandwich and leaves the line making students = [1,0] and sandwiches =
|
||||
* [0,1].
|
||||
* - Front student leaves the top sandwich and returns to the end of the line making students = [0,1].
|
||||
* - Front student takes the top sandwich and leaves the line making students = [1] and sandwiches =
|
||||
* [1].
|
||||
* - Front student takes the top sandwich and leaves the line making students = [] and sandwiches = [].
|
||||
* Hence all students are able to eat.
|
||||
*
|
||||
* Example 2:
|
||||
*
|
||||
* Input: students = [1,1,1,0,0,1], sandwiches = [1,0,0,0,1,1]
|
||||
* Output: 3
|
||||
*
|
||||
* Constraints:
|
||||
*
|
||||
* 1 <= students.length, sandwiches.length <= 100
|
||||
* students.length == sandwiches.length
|
||||
* sandwiches[i] is 0 or 1.
|
||||
* students[i] is 0 or 1.
|
||||
******************************************************************************************************/
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int countStudents(vector<int>& students, vector<int>& sandwiches) {
|
||||
int st[2] = {0};
|
||||
for(auto s: students) {
|
||||
st[s]++;
|
||||
}
|
||||
int cnt = 0;
|
||||
for(auto& san : sandwiches){
|
||||
if (st[san] == 0) break;
|
||||
st[san]--;
|
||||
cnt++;
|
||||
}
|
||||
return students.size() - cnt;
|
||||
}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user