oppo笔试(C++)

  1. 第一题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 输入参数是每个应用持有WakeLock的起始时间及结束时间,函数返回值是每个应用对总WakeLock时长的贡献值,返回值vector里面的每个元素的数值累加即为手机总的持有WakeLock的时长。
     * @param wakeLock int整型vector<vector<>> vector<vector<int>>的每个元素代表某个应用的持有WakeLock的信息,内部的vector<int>,元素按照奇偶排列,偶数元素代表拿WakeLock的起始时间点,奇数代表释放WakeLock的时间点
     * @return int整型vector
     */
    vector<int> getWakeLockContrib(vector<vector<int> >& wakeLock) {
        unordered_map<int, vector<int> > map;
        for (int i = 0; i < wakeLock.size(); i++) {
            for (int j = 0; j < wakeLock[i].size(); j += 2) {
                for (int start = wakeLock[i][j]; start < wakeLock[i][j + 1]; start++) {
                    map[start].push_back(i);
                }
            }
        }

        vector<double> res(wakeLock.size());
        for (int i = 0; i < wakeLock.size(); i++) {
            for (int j = 0; j < wakeLock[i].size(); j += 2) {
                for (int start = wakeLock[i][j]; start < wakeLock[i][j + 1]; start++) {
                    res[i] += 1.0 / map[start].size();
                }
            }
        }

        vector<int> ress(wakeLock.size());
        for (int i = 0; i < res.size(); i++) {
            ress[i] = res[i];
        }
        return ress;
    }
};
2. 第二题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * findStr从反方向查找子串,返回最后一次匹配成功时,子串的偏移位置,如果没有匹配成功返回-1
     * @param str string字符串 待匹配的字符串
     * @param mod string字符串 匹配模式字符串
     * @return int整型
     */
    int findStr(string str, string mod) {
        if (str.size() < mod.size()) return -1;
        bool ok = false;
        for (int i = mod.size() - 1; i < str.size(); i++) {
            int j = 0;
            while (j < mod.size() && (mod[j] == str[i - j] || mod[j] == '*')) j++;
            if (j == mod.size()) return i;
        }
        return -1;
    }
};
3.反转链表
#OPPO#
全部评论
hi~同学,秋招遇“寒气”,牛客送温暖啦!23届秋招笔面经有奖征集中,参与就得牛客会员7天免费体验,最高赢300元京东卡!戳我去看>>>https://www.nowcoder.com/link/zhengjipinglun
点赞 回复 分享
发布于 2022-09-05 13:12 北京

相关推荐

如题,字节跳动怎么才能看到自己的面评,找hr说看不到
SoulStar:自己应该看不到,这个是字节比较保密的信息,之前有mentor加我,说他能看到,但是不能给我说,给我说了他可能就要被辞退了
点赞 评论 收藏
分享
联通 技术人员 总包不低于12
点赞 评论 收藏
分享
5 4 评论
分享
牛客网
牛客企业服务