3-19 博乐科技C++笔试部分题解

全是暴力的题也没啥可说的。
就是第一题一直只过60%。给我恶心吐了
第四题手写个堆,话说过了就行谁要自己写堆呀。

第一题求税率
第二题求拦截水最大
第三题求字符串S能拆除几个T
第四题排序

第二题:
class Solution {
public:

    int maxArea(vector<int>& height) {
        // write code here
        int ans=0;
        int n = height.size();
        for(int i =0;i<n;i++){
            for(int j =i+1;j<n;j++){
                ans = max(ans,min(height[i],height[j])*(j-i));
            }
        }
        return ans;
    }
};

第三题
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 输入s为一个长度为n的字符串,t是一个长度为m的字符串, 1<= s.length <= 10**9,  1 <= t.length <= 10**9。
     * @param s string字符串 
     * @param t string字符串 
     * @return int整型
     */
    int MatchString(string s, string t) {
        // write code here
        unordered_map<char, int>mpS;
        unordered_map<char, int>mpT;
        unordered_map<char, int>mp;
        
        for(int i = 0;t[i];i++){
            mpT[t[i]] ++;
        }
        for(int i =0;s[i];i++) mpS[s[i]]++;
        int ans = 10000000;
        for(int i = 0;t[i];i++){
            mp[t[i]]++;
            if(mp[t[i]] == 1){
                ans = min(ans,mpS[t[i]] / mpT[t[i]]);
            }
        }
        return ans;
        
    }
};
4
class Solution {
public:

    vector<int> heap_top_k(vector<int>& nums, int k) {
        // write code here
        vector<int>ans;
        sort(nums.begin(),nums.end());
        for(int i =nums.size()-1;i > nums.size() - k-1;i--) ans.push_back(nums[i]);
        return ans;
    }
};
第一题恶心心,只能过60% ,我直接改了一个多小时,改上头了
double nowNum = 0.0;
class Solution {
public:
    string toString(double num){
        string ans = "";
        num *= 100;
        num += 0.5;
        long long p = (long long)num;
        long long x = p;
        int cnt = 0;
        while(p){
            ans.push_back(p % 10 + '0');
            cnt++;
            if(cnt == 2) ans.push_back('.');
            p /= 10;
        }
        if(x <= 9){
            ans.push_back('0');
            ans.push_back('.');
            ans.push_back('0');
            
        }
        else if(x <= 99){
            ans.push_back('0');
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }

    double getNum(double needCost){
        double ans = 0.0;
        if(nowNum + needCost > 960000.0){
            double p = min(needCost,(nowNum + needCost - 960000));
            ans += p * 0.45;
            needCost -= p;
        }
        if(needCost < 0.01) return ans;
        if(nowNum + needCost > 660000.0){
            double p = min(needCost,(nowNum + needCost - 660000));
            ans += p * 0.35;
            needCost -= p;
        }
        if(needCost < 0.01) return ans;
        if(nowNum + needCost > 420000.0){
            double p = min(needCost,(nowNum + needCost - 420000));
            ans += p * 0.30;
            needCost -= p;
        }
       if(needCost < 0.01) return ans;
        if(nowNum + needCost > 300000){
            double p = min(needCost,(nowNum + needCost - 300000));
            ans += p * 0.25;
            needCost -= p;
        }
        if(needCost < 0.01) return ans;
        if(nowNum + needCost > 144000.0){
            double p = min( (nowNum + needCost - 144000),needCost );
            ans += p * 0.20;
            needCost -= p;
        }
        if(needCost <= 0.01) return ans;
        if(nowNum + needCost > 36000){
            double p = min ( needCost, (nowNum + needCost - 36000) );
            ans += p * 0.1;
            needCost -= p;
        }
        if(needCost <= 0.01) return ans;
        if(nowNum + needCost > 0){
            ans += ( needCost) * 0.03;
        }
        
        return ans;
    }
    vector<string> calcTax(vector<double>& income) {

        nowNum = 0.0;
        vector<string>ans;
        
        for(int i=0; i < income.size(); i++){
            if(income[i] <= 5000){
                ans.push_back("0.00");
            }
            else {
                double realNum = getNum( income[i] - 5000 );
                string x = toString(realNum);
                if(x == "" || realNum < 0.01) x = "0.00";
                nowNum += (income[i] - 5000);
                ans.push_back(x);
            }
        }
        return ans;
    }
};




#博乐科技##笔经#
全部评论
我是约的下周四
1 回复 分享
发布于 2022-03-25 00:29
第一题还需要退税,过了80%
点赞 回复 分享
发布于 2022-04-14 15:42
刚做完笔试,第一题我题目都读不懂,看不明白实例是怎么算的...
点赞 回复 分享
发布于 2022-04-10 00:05
小兄弟,你约面试了么
点赞 回复 分享
发布于 2022-04-03 17:08
有没有第一题a了的老哥讲讲怎么做的😭我也是60%,感觉是遇到极端数据了,比如月收入50w那种
点赞 回复 分享
发布于 2022-03-29 19:51
有没有老哥解释一下第一题啥意思
点赞 回复 分享
发布于 2022-03-27 23:18
第一题我也是60%,但后来想了想,确实是考虑不全,下个月的税率并非只有不变和变成下一个税率,而是当前税率以后的税率都有可能。但是做题做迷糊被绕住了😥
点赞 回复 分享
发布于 2022-03-21 15:29
我第一题题都没读懂😅
点赞 回复 分享
发布于 2022-03-21 01:05
我今天才做的 早知道看下了 说不定能到面试 哈哈
点赞 回复 分享
发布于 2022-03-20 19:50
这是A卷还是B卷啊
点赞 回复 分享
发布于 2022-03-20 12:29

相关推荐

01-23 10:37
已编辑
门头沟学院 C++
25.07&nbsp;xxx有限公司,上位机视觉软件开发,实习转正岗(等年后才会出hc)25.12凌云光技术有限公司,应用软件开发工程师,业务面过(拒,要出国)25.12&nbsp;CVTE,嵌入式Linux软件开发,技术面过,HR面十分钟解决战斗(挂,感觉是kpi)25.12库犸科技,应用软件开发,一面挂25.12白日梦游戏,服务端开发,笔试挂,至今没回音25.12睿联技术,g26.1.4&nbsp;软牛科技,C++逆向开发,(1.9面试)26.1.5&nbsp;广电运通集团股份有限公司,初筛中26.1.5&nbsp;新凯来,初筛中26.1.5&nbsp;金域医疗,初筛中26.1.5&nbsp;舜宇集团有限公司,初筛中26.1.6&nbsp;多益网络,等笔试中...笔试预期(公司差评太多了,没时间不想写了)--------------1.6最新------------26.1.6收到高新兴科技集团面试(c++音视频方向),非常突然,18.40约我19.00面试,刚下班到家就开始视频面试了,技术初面问的问题:1.自我介绍2.信号和槽几种连接方式3.问项目,停车系统的自动识别是如何实现的4.qt线程的实现5.虚函数和多态的关系6.list和vector的区别7.vector怎么扩容的8.问实习,qt界面是如何做的9.TCP和UDP的区别10.问项目11.c++模板12.函数重写和函数重载的区别13.公司产品有了解吗(我回答不太了解,然后面试官开始介绍,聊了会)技术初面大概就这些问题,还有测评和复试,26.1.7早九点,技术初面应该过了,发测评了--------------1.8最新------------26.1.7移远通信(自动化测试工具开发)&nbsp;发来一面通知26.1.8高新兴科技集团(c++音视频方向),测评,技术面复试(主要问项目,介绍产品了解你的状况)通过,下周入职1.9号还有两场面试(软牛科技和移远通信),先面试吧锻炼一下,个人感觉这两家没有高新兴科技好--------------1.9最新------------1.朝歌科技(嵌入式软件开发):面向对象特性抽象类的特性?C和C++中Struct的区别C和C++中static的区别C语言中怎么去使用C++的面向对象思想为什么会出现数据竞争,底层是什么线程数据同步?进程传递数据?环形缓存?深拷贝主要是解决什么问题常量指针和指针常量友元函数虚函数实现原理Linux内核启动过程TCP,UDP区别UDP不稳定如何解决丢包粘包解决方案还有其他八股想不起来了,另外就是问了很多项目问题,但是没有深挖,有进4/1八股不会我都没背过我靠,只能按照自己理解答了,应该要G,面试官很好,预计12号出一面结果2.软牛科技面试拒了,hr发我的加密和解密这本书压根没时间看,就不去丢脸了3.移远通信面试推迟到10号4.广州4399网申挂...5.忆联网申挂...--------------1.9最新------------移远通信(自动化测试工具开发)一面结束,问的东西非常简单(约个二面没啥问题)常用的数据结构TCP,UDP区别(三次握手,四次挥手)如何确保显出数据安全数据库相关堆和栈的区别opencv相关其他全是项目--------------1.12最新------------移远通信发来晚上九点钟二面,拒了不想干测开,薪资有点低柏楚电子网申挂诗悦网络网申挂邵音科技初筛中云智研发初筛中小天才初筛中中广核集团初筛中珠海金智维发笔试邀请主包累了,高新兴那边集训一两个月签三方,明年四月多谈薪资在8-9k看具体表现,吃住几乎是包了的,够了,杭州这家开发开差不多10k但是不包吃住,杭州14薪,广州13薪+年终,每月固定花销4k,主包湖南人还是去广东吧--------------1.12最新------------朝歌科技发来二面通知1.16&nbsp;号面试两个人面试轮流问,纯问项目和场景题,巴拉巴拉一个多小时,八股就只问了些&nbsp;ffmpage&nbsp;相关的,待遇&nbsp;7k&nbsp;左右东莞吃饭补&nbsp;25&nbsp;一天不包住,做流媒体协议啥的,实习考核两个月🥲才给签三方目前无回音,应该&nbsp;j&nbsp;了,要求快速到岗,我到不了这么快--------------1.23&nbsp;最新------------已在&nbsp;gxx&nbsp;当牛马,朝歌科技打电话说面试通过...
点赞 评论 收藏
分享
评论
1
36
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务