牛客春招刷题训练营-2025.4.9题解

活动地址: 牛客春招刷题训练营 - 编程打卡活动

简单题 求最大连续bit数

位运算。
遇到 则当前连续段的长度 ,否则当前连续段的长度清零。
输出连续段的最大值。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    int ans = 0, tmp = 0;
    for (int i = 0; i < 30; i++) {
        if (((n >> i) & 1) != 0) {
            tmp++;
            ans = max(ans, tmp);
        } else tmp = 0;
    }
    cout << ans << '\n';
    return 0;
}

中等题 小红的排列构造

时,构造 ,则会在第一个 出现的地方漏掉一个 ,记为
时,如果 ,则把前面漏掉的数补上,,否则正常构造
最后一个位置一定是 ,否则就无法构造,输出

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
    int n;
    cin >> n;
    string s;
    cin >> s;
    vector<int> a(n);
    int l = 1, r = 2;
    for (int i = 0; i < n; i++) {
        if (s[i] == '0') {
            a[i] = i + 2;
        } else {
            a[i] = l;
            l = i + 2;
        }
    }
    for (int i = 0; i < n; i++)
        if (a[i] > n) {
            cout << -1;
            return 0;
        }
    for (int i = 0; i < n; i++)
        cout << a[i] << ' ';
    return 0;
}

困难题 [NOIP2001]装箱问题

动态规划。
表示是否能装到体积
初始化
装到体积为 的物品时,遍历一遍 数组,如果 则令
最后找出 中最大的 。 使用 bitset 可直接用 <<| 运算符实现状态转移。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int V, n;
    cin >> V >> n;
    bitset<20001> dp;
    dp[0] = 1;
    for (int i = 0; i < n; i++) {
        int v;
        cin >> v;
        dp |= (dp << v);
    }
    for (int i = V; i >= 0; i--) {
        if (dp[i]) {
            cout << V - i << '\n';
            return 0;
        }
    }
    return 0;
}
#牛客春招刷题训练营#
全部评论

相关推荐

我看标题以为40W,我觉得最差也得40k,点进去一看40块。你永远想不到客户的预算有多低...&nbsp;要求&ldquo;前端使用vue+element开发一个pc端宠物网站和vue+vant开发一个移动端网站,类型是宠物网站的。客户预算40&rdquo;&nbsp;全网最受欢迎的嵌入式面经面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,2800+订阅,非常适合在找工作面经薄弱的同学,3000+订阅还会涨价,提前订阅提前享受,持续更新中。原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoMc
野猪不是猪🐗:哎呀,看来这位客户预算确实挺让人意外的呢!不过,别灰心,有时候客户的预算有限,但项目完成后说不定能带来意想不到的收获呢!😊 至于你提到的嵌入式面经,听起来好像很棒的样子!如果你对求职有帮助,那确实值得订阅学习哦!悄悄告诉你,点击我的头像,我们可以私信聊聊更多求职经验和技巧哦~🎉 对了,你对Vue和Element/Vant的开发有什么疑问或者想要分享的经验吗?我们可以一起探讨一下~😉
点赞 评论 收藏
分享
会飞的猿:我看你想进大厂,我给你总结一下学习路线吧,java语言方面常规八股要熟,那些java的集合,重点背hashmap八股吧,jvm类加载机制,运行时分区,垃圾回收算法,垃圾回收器CMS、G1这些,各种乐观锁悲观锁,线程安全,threadlocal这些。在进阶一些的比如jvm参数,内存溢出泄漏排查,jvm调优。我这里说的只是冰山一角,详细八股可以去网上找,这不用去买,都免费资源。mysql、redis可以去看小林coding,我看你简历上写了,你一定要熟,什么底层b+树、索引结构、innodb、mvcc、undo log、redo log、行级锁表级锁,这些东西高频出现,如果面试官问我这些我都能笑出来。消息队列rabbitmq也好kafka也好,学一种就行,什么分区啊副本啊确认机制啊怎么保证不重复消费、怎么保证消息不丢失这些基本的一定要会,进阶一点的比如LEO、高水位线、kafka和rocketmq底层零拷贝的区别等等。计算机网络和操作系统既然你是科班应该理解起来问题不大,去看小林coding这两块吧,深度够了。spring boot的八股好好看看吧,一般字节腾讯不这么问,其他的java大厂挺爱问的,什么循环依赖啥的去网上看看。数据结构的话科班应该问题不大,多去力扣集中突击刷题吧。项目的话其实说白了还是结合八股来,想一想你写的这些技术会给你挖什么坑。除此之外,还有场景题、rpc、设计模式、linux命令、ddd等。不会的就别往简历上写了,虽然技术栈很多的话好看些,但背起来确实累。总结一下,多去实习吧,多跳槽,直到跳到一个不错的中厂做跳板,这是一条可行的进大厂的路线。另外,只想找个小厂的工作的话,没必要全都照这些准备,太累了,重点放在框架的使用和一些基础八股吧。大致路线就这样,没啥太多难度,就是量大,你能达到什么高度取决于你对自己多狠,祝好。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务