当前位置: 首页 > 面试经验 >

5.14奇安信C++笔试复盘

优质
小牛编辑
121浏览
2023-05-14

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;
    }
};

 类似资料: