当前位置:网站首页>1700. 无法吃午餐的学生数量
1700. 无法吃午餐的学生数量
2022-07-30 14:20:00 【Mr Gao】
1700. 无法吃午餐的学生数量
学校的自助午餐提供圆形和方形的三明治,分别用数字 0 和 1 表示。所有学生站在一个队列里,每个学生要么喜欢圆形的要么喜欢方形的。
餐厅里三明治的数量与学生的数量相同。所有三明治都放在一个 栈 里,每一轮:
如果队列最前面的学生 喜欢 栈顶的三明治,那么会 拿走它 并离开队列。
否则,这名学生会 放弃这个三明治 并回到队列的尾部。
这个过程会一直持续到队列里所有学生都不喜欢栈顶的三明治为止。
给你两个整数数组 students 和 sandwiches ,其中 sandwiches[i] 是栈里面第 i 个三明治的类型(i = 0 是栈的顶部), students[j] 是初始队列里第 j 名学生对三明治的喜好(j = 0 是队列的最开始位置)。请你返回无法吃午餐的学生数量。
示例 1:
输入:students = [1,1,0,0], sandwiches = [0,1,0,1]
输出:0
解释:
- 最前面的学生放弃最顶上的三明治,并回到队列的末尾,学生队列变为 students = [1,0,0,1]。
- 最前面的学生放弃最顶上的三明治,并回到队列的末尾,学生队列变为 students = [0,0,1,1]。
- 最前面的学生拿走最顶上的三明治,剩余学生队列为 students = [0,1,1],三明治栈为 sandwiches = [1,0,1]。
- 最前面的学生放弃最顶上的三明治,并回到队列的末尾,学生队列变为 students = [1,1,0]。
- 最前面的学生拿走最顶上的三明治,剩余学生队列为 students = [1,0],三明治栈为 sandwiches = [0,1]。
- 最前面的学生放弃最顶上的三明治,并回到队列的末尾,学生队列变为 students = [0,1]。
- 最前面的学生拿走最顶上的三明治,剩余学生队列为 students = [1],三明治栈为 sandwiches = [1]。
- 最前面的学生拿走最顶上的三明治,剩余学生队列为 students = [],三明治栈为 sandwiches = []。
所以所有学生都有三明治吃。
示例 2:
输入:students = [1,1,1,0,0,1], sandwiches = [1,0,0,0,1,1]
输出:3
解题代码如下:
int countStudents(int* students, int studentsSize, int* sandwiches, int sandwichesSize){
int i;
int sand=0;
while(true){
int r=0;
int sstu=0;
for(i=0;i<studentsSize;i++){
if(students[i]==sandwiches[sand]){
sand++;
r=1;
}
else{
students[sstu++]=students[i];
}
}
studentsSize=sstu;
if(r==0){
return sstu;
}
}
return -1;
}
边栏推荐
猜你喜欢

关于容器的小案例

MongoDB启动报错 Process: 29784 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)

Application of time series database in the field of ship risk management

我为何从开发人员转做测试,3年软件测试工程师,带你聊聊这其中的秘辛

接口自动化框架,lm-easytest内测版发布,赶紧用起来~

canal scrape data

Flask框架——Sijax

JUC常见的线程池源码学习 02 ( ThreadPoolExecutor 线程池 )

Container sorting case

吃透Chisel语言.28.Chisel进阶之有限状态机(二)——Mealy状态机及与Moore状态机的对比
随机推荐
元宇宙邮局AI航天主题系列数字藏品 将于7月30日10:00点上线“元邮数藏”
Eclipse connects to SQL server database "recommended collection"
eclipse连接SQL server数据库「建议收藏」
ESP32 Repeated Reboot Issue Arduino Shield Power Outage Detector
Desktop Software Development Framework Awards
Container sorting case
桌面软件开发框架大赏
Recommended open source tools: MegPeak, a high-performance computing tool
华为7年经验的软件测试总监,给所有想转行学软件测试的朋友几点建议
惊艳!京东T8纯手码的Redis核心原理手册,基础与源码齐下
ESP32 反复重启问题 Arduino屏蔽断电探测器
Why did I switch from developer to testing, 3 years software testing engineer, tell you the secret of this
华为再发「天才少年」召集令!曾放弃360万年薪的他也来首秀
Machine learning difference in the competition and industry application
cookie模拟登录「建议收藏」
手把手教你写让人眼前一亮的软件测试简历,收不到面试邀请算我输
A new generation of open source free terminal tools, so cool
00后测试员摸爬滚打近一年,为是否要转行或去学软件测试的学弟们总结出了以下走心建议
关于String的一些思考
MongoDB启动报错 Process: 29784 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)