字节抖音客户端笔试 09-29

#字节笔试#
四道编程 C++解法
第一题 木板可收集雨水的最大量
int main() {
int n;
cin >> n;
priority_queue<int> pq;
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
pq.push(x);
}
pq.pop();
cout << static_cast<long long>(n - 1) * pq.top();
}

第二题 数组按顺序插入双端队列可否保证有序(非严格递增)
int main() {
int T, n;
cin >> T;
for (int i = 0; i < T; ++i) {
cin >> n;
vector<int> nums(n - 1);
int l, r;
cin >> l; r = l;
for (auto&amp; x : nums)cin >> x;
bool flag = true;
for (auto x : nums) {
if (x <= l)l = x;
else if (x >= r)r = x;
else {
flag = false;
break;
}
}
cout << (flag ? &quot;YES\n&quot; : &quot;NO\n&quot;);
}
}

第三题 n天内做超过两件事的天数
int main() {
using ll = long long;
int T, n, a, b, c;
cin >> T;
for (int k = 0; k < T; ++k) {
cin >> n >> a >> b >> c;
ll Nab = lcm<ll, ll>(a, b), Nbc = lcm<ll, ll>(b, c), Nac = lcm<ll, ll>(a, c);
ll N = lcm<ll, ll>(Nab, c);
int res = n / Nab + n / Nbc + n / Nac - n / N * 2;
cout << res << '\n';
}
}

第四题 最大值不重复的子数组个数(没做出来,通过10%)
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (auto&amp; x : nums)cin >> x;
using pii = pair<int, int>;
stack<pii> stk;
queue<pii> q;
for (int i = 0; i < n; ++i) {
int x = nums[i];
while (!stk.empty() &amp;&amp; stk.top().first < x) {
stk.pop();
}
if (!stk.empty() &amp;&amp; stk.top().first == x) {
q.emplace(stk.top().second, i);
stk.pop();
}
stk.emplace(x, i);
}
long long res = (long long)n * (1 + n) / 2;
while (!q.empty()) {
auto [l, r] = q.front(); q.pop();
int x = nums[l];
int i = l - 1, j = r + 1;
while (i >= 0 &amp;&amp; nums[i] < x)--i;
while (j < n &amp;&amp; nums[j] < x)++j;
res -= (long long)(l - i) * (j - r);
}
cout << res;
}
全部评论
第三题过了5%,第四题过了15.79%,寄
点赞 回复 分享
发布于 2024-09-29 21:20 山东
第三题暴力25,第四题暴力15
点赞 回复 分享
发布于 2024-09-29 21:23 黑龙江
第二题基本上写的一模一样,一跑就是0%,这么简单跑不出来,我吐了
点赞 回复 分享
发布于 2024-09-29 21:29 辽宁
第一题是要用int64才能过吗?
点赞 回复 分享
发布于 2024-09-29 21:32 黑龙江

相关推荐

-&nbsp;大数据平台研发岗位-&nbsp;如流软件面试,开摄像头,在如流上手撕代码-&nbsp;面试官人很好,经常鼓励人,也会及时给出正确的思路-&nbsp;可惜职责还是有点不匹配,这个部门主要用java和go做平台的开发,类似DolphinScheduler的平台开发##&nbsp;八股-&nbsp;对DolphinScheduler的底层代码和架构有没有了解-&nbsp;你在Spark你在用的过程中,有时候会碰像那种性能不好或者数据倾斜的场景。这种情况下你一般会怎么去做优化?可以就结合你具体遇到的问题,可以来来详细讲一下,就是或者hive遇到的都可以。-&nbsp;你在这过程中,就你项目中接触了这么多个组件,有没有自己去搭过一些集群和组件相关的呢?&nbsp;&nbsp;-&nbsp;搭建过程中有没有碰到过,比如什么问题,比如HDFS不可以用,或者是Yarn出问题,这种问题有没有碰到过?-&nbsp;你对于Hadoop他这边是如何实现这种高可用有了解吗?&nbsp;&nbsp;-&nbsp;Zookeeper是作为分布式锁存在的-&nbsp;HA高可用中多个NN数据是一样的,他们是怎么保证数据相同的&nbsp;&nbsp;-&nbsp;HA高可用中还有什么Node,通过日志的形式保证多个NN的数据一致-&nbsp;主要开发环境是linux还是windows-&nbsp;对linux这边有一些基本的了解吗?-&nbsp;比如我linux有一台有一个linux它有一就是linux他你通过你那个发现他的内存或者CPU占用特别高,它中间可能是某一个进程或者某一个服务占用了大量资源。你这种情况下,你如果是你的话,你怎么去排查?-&nbsp;比如我有一个任务,他你比如说他发现他的日志一直在写,就是一直在打那个没有空间了,就没有磁盘空间了。这种情况下你怎么去查一下是哪些地方磁盘不足了,应该怎么处理?-&nbsp;java中equal和==的区别&nbsp;&nbsp;-&nbsp;自己写过自定义类重写equals方法吗-&nbsp;java类加载的这块你了解过吗?&nbsp;&nbsp;-&nbsp;讲了双亲委派机制&nbsp;&nbsp;-&nbsp;为什么要实现双亲委派机制这个操作?-&nbsp;java反射了解吗-&nbsp;java多线程代码写得多吗&nbsp;&nbsp;-&nbsp;java线程有几种状态&nbsp;&nbsp;-&nbsp;java中如何写代码多线程访问共享资源##&nbsp;手撕-&nbsp;手撕LRU类,要求实现get和put方法,并且规定一个最大容量,如果put时达到最大容量则替换掉存在最久的元素&nbsp;&nbsp;-&nbsp;讲思路,用的事务id,很快实现了-&nbsp;手撕java多线程代码,被我婉拒,实在不怎么记得了
查看20道真题和解析
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客企业服务