笔试盘点

cvte笔试 12.26

编程题

  • 两题都是考虑sort的compare的方法重写。

    把数组排成最小的树(中等)

  • 这题来源于剑指offer,在笔试的时候,想不出来用字符串相加这个,一种用其他的方法,虽然脑海中出现了结果要用string的特性,然后返回结果。
    具体的代码如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class Solution {
    public:
    string minNumber(vector<int>& nums) {
    vector<string> strs;
    string res;
    for(auto num:nums){
    strs.push_back(to_string(num));
    }
    sort(strs.begin(),strs.end(),[&](const string a, const string b){
    return a + b < b + a;
    });
    for(auto str:strs){
    res += str;
    }
    return res;
    }
    };

    参加最多的活动

  • 这题虽然我没有找到相应题目,但是本质上错不多的,就是简单的sort排序问题,加上贪心算法
    如同leetcode1353题
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class Solution {
    public:
    string minNumber(vector<vector<int>>& nums) {
    if(nums.size() == 0)return 0;
    sort(nums.begin(),nums.end(),[]const vector<int>&u,const vector<int>& v){
    return u[1] > v[1];
    });
    int count = 1;
    int x_end = nums[0][1];
    for(int i = 1;i < nums.size();++i){
    int start = nums[i][0];
    if(start > x_end){
    count++;
    x_end = nums[i][1];
    }
    }
    return count;
    }
    };

    选择题

    智能指针

    主要是share_ptr的用法
    四大智能指针

    虚函数

    纯虚函数和虚函数