算法hot 100全题系列详解(2):c++写编程题需注意小技巧

这是我的算法笔记系列帖子的第2篇文章,因为我走的是java开发方向但算法题都是c++写的,我个人觉得c++写题更方便,所以为了防止大家跟着我的帖子入门不方便,特在此写了这篇介绍c++写编程题需注意小技巧的帖子。

本算法笔记系列帖子里包含的示例是全部完整的lc hot 100原题,后续会详细地分章节介绍链表,字符串,动态规划,图,前缀和等常考知识点及其常见套路模板,同时会给出大量例题,新手小白肯定能快速跟上篮子哥的节奏

这个专栏给的例题的解法我不追求达到最优解法,而是我借鉴了lc的大量解法,加上自己的理解注释,追求尽可能的满足套路模板的解法,让大家尽可能的更容易的接受和理解。

觉得本贴有用的话欢迎点赞收藏订阅关注和评论!

我把这系列算法笔记帖子放入了我的八股大全、算法、项目话术、面试话术全专栏https://www.nowcoder.com/creation/manager/columnDetail/j8ZZk0

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

内容包含: 1.八股大全:多一句没有少一句不行的最精简八股整理,完全可以应付校招八股拷打! 2.速成项目话术:目前有魔改苍穹外卖项目话术(额外扩展了很多技术亮点),能速成拿去面试,后面会更新魔改黑马点评、商城项目等等热门高质量项目话术 3.智力题超详细题解汇总; 4.面试时非技术问题话术整理,绝对震惊面试官一年; 5.算法lc hot100全题系列题解:绝对通俗易懂。 会慢慢涨价,欢迎订阅!

全部评论

相关推荐

#include # include #include # include struct Process {    std::string name;    int arrive;    int service;    int start;    int finish;    float turnaround;    float weighted_ta;};bool compareArrival(const Process& a, const Process& b) {    return a.arrive < b.arrive;}int main() {    std::cout << "先来先服务调度算法\n";    std::cout << "输入进程数目:";    int n;    std::cin >> n;    std::vector processes(n);    for (int i = 0; i < n; ++i) {        std::cout << "请输入进程" << (i+1) << "的信息(名称 到达时间 服务时间):";        std::cin >> processes[i].name >> processes[i].arrive >> processes[i].service;    }    std::sort(processes.begin(), processes.end(), compareArrival);    int current_time = 0;    for (std::vector::iterator it = processes.begin(); it != processes.end(); ++it) {        it->start = std::max(current_time, it->arrive);        it->finish = it->start + it->service;        it->turnaround = it->finish - it->arrive;        it->weighted_ta = it->turnaround / static_cast(it->service);        current_time = it->finish;    }    // 输出运行顺序    std::cout << "\n运行顺序:";    for (std::vector::const_iterator it = processes.begin(); it != processes.end(); ++it) {        std::cout << it->name;        if (it + 1 != processes.end()) {            std::cout << " → ";        }    }    // 输出表格    std::cout << std::fixed << std::setprecision(3);    std::cout << "\n\n"              << std::left << std::setw(8) << "进程"              << std::right << std::setw(12) << "到达时间"              << std::setw(12) << "服务时间"              << std::setw(12) << "开始时间"              << std::setw(12) << "结束时间"              << std::setw(12) << "周转时间"              << "带权周转时间\n";    float total_ta = 0, total_wta = 0;    for (std::vector::const_iterator it = processes.begin(); it != processes.end(); ++it) {        std::cout << std::left << std::setw(8) << it->name                  << std::right << std::setw(12) << it->arrive                  << std::setw(12) << it->service                  << std::setw(12) << it->start                  << std::setw(12) << it->finish                  << std::setw(12) << it->turnaround                  << std::setw(12) << it->weighted_ta                  << "\n";        total_ta += it->turnaround;        total_wta += it->weighted_ta;    }    std::cout << "\n平均周转时间: " << total_ta / n              << "\n平均带权周转时间: " << total_wta / n << std::endl;    return 0;}
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

更多
牛客网
牛客企业服务