5.14奇安信C++笔试复盘
1、一个画布大小为100*100。画布本来是白色的。小明在上面画框,框里的小方格,如果是白色的就会变成黑色,如果是黑色的,就会变成白色。问题:小明画了很多次框后,画布上白色的小方格有多少个。
输入:【[0 0 1 1],[4 4 2 2]】
输出:9995
说明:白色面积为100*100-1-4 = 9995.
2、某几位同学准备要5排一起打手机游戏,现在他们5个人一共有N台手机,但是各个手机剩余电量不等,假设每玩一分钟需要消耗电量1%,不玩手机不消耗电量,手机电量消耗光之后可以换剩余的有电的手机继续一起游戏,那么他们最多能保持多久的5人一起游戏时间?
输入:每台手机的剩余电量
[100 100 100 50 100 5 10]
输出:预期时间
[65]
class Solution { public: int maxTime(vector<int>& batteries) { sort(batteries.begin(), batteries.end(), greater<int>()); int time = 0; int K = batteries.size(); while(K >= 5) { for (int i = 0; i < 5; i++) { batteries[i] --; if (batteries[i] == 0) K--; } time++; sort(batteries.begin(), batteries.end(), greater<int>()); } return time; } };