24字节提前批-C++后端-一面

1.TCP怎么建立连接
2.有抓过包吗 (无)
3.TCP的可靠性怎么保证
4.如果同时有大量客户并发建立连接,服务器端有什么机制进行处理(寄)
5.linux命令用过哪些
6.死锁怎么产生
7.怎么避免死锁
8.项目
算法:小于n的最大数(寄)
给一个数n,一个数组A,返回由A中元素组成的小于n的最大数
如n=23121,A={2,4,9| 返回22999
n=23121 A={9} 返回9999
n=23333 A={2,3} 返回23332
n=2222 A={2} 返回222
n=2 A={2} 无解

-----------------------
update: 过了两周突然约了二面,麻了,一面答成这个样子还能过,感谢字节
全部评论
先对原数组维护一个limit的布尔数组 表示当前位后面的数位的最小值是否比可选数字中的最小值小。然后从第一位开始,用二分查找去可选数组中找到≤该数位值的最大值,如果最大值小于数位值,则直接填写该最大值,后面全部设为9。否则,判断limit,如果为true,表示该位置无法选择跟数位相同的值,填写最大值前一位数,后面全部设为9;如果为false,则填写该数位值,并继续下一位的选择。
8
送花
回复 分享
发布于 2023-07-21 17:00 重庆
回溯算法,可重复组合,组合都小于n。输出组合集中最大的。
6
送花
回复 分享
发布于 2023-07-22 00:03 天津
国泰君安
校招火热招聘中
官网直投
为啥我们V专的计网课程实验都要求用wireshark抓包
6
送花
回复 分享
发布于 2023-07-23 19:38 江苏
同校同届同院同挂
5
送花
回复 分享
发布于 2023-07-22 17:56 上海
这个算法题在字节面试非常常见(推荐广大面试同学记住这道题),最基础的方法是回溯
5
送花
回复 分享
发布于 2023-07-23 13:34 北京
校友是本科还是硕士啊
4
送花
回复 分享
发布于 2023-07-21 14:16 广东
同一个算法题😂,也寄了
1
送花
回复 分享
发布于 2023-07-20 23:34 北京
m
1
送花
回复 分享
发布于 2023-07-21 08:30 陕西
从个位往前贪心判断差值最小就行吧,保证前面一致最后一位选小的,或者不一致的那一位后面全选最大数
1
送花
回复 分享
发布于 2023-07-21 14:52 北京
佬 约二面了吗
1
送花
回复 分享
发布于 2023-07-27 22:50 北京
微众银行校招启动啦,扫码选择意向岗位,填图片上码免筛选,详情点击https://www.nowcoder.com/share/jump/85127301693231654506
1
送花
回复 分享
发布于 2023-08-30 12:04 广东
像是数位dp啊
点赞
送花
回复 分享
发布于 2023-07-21 08:05 江苏
这个算法题要老命了
点赞
送花
回复 分享
发布于 2023-07-21 16:34 吉林
周五比较放松给你写一下吧,兄弟们想投我们这边请刷我帖子 #include <bits/stdc++.h> using namespace std; //直接从前往后跑一遍当前数字能不能改取个最值就行,复杂度10*len(n), int main() { int n = 23121; string s = std::to_string(n); vector<int> num = {2, 4, 9}; vector<bool> flag(10, 0); int max_num = 0; for (auto e : num) { flag[e] = 1; max_num = max(max_num, e); } int minl = -1; int pre_num = 0; //特判一下前导零少位的情况 for (int i = 0; s[i]; i++) { pre_num = pre_num * 10 + max_num; if (pre_num < n) { minl = max(minl, pre_num); } } pre_num = 0; for (int i = 0; s[i]; i++) { // 换这一位 int index_num = s[i] - '0'; for (auto e : num) { if (e < index_num) { int ans = pre_num * 10 + e; // 后面放最大 for (int j = 1; j < s.size() - i; j++) { // 这里可以预处理个数组去掉 ans = ans * 10 + max_num; } minl = max(minl, ans); } } pre_num = pre_num * 10 + index_num; } if (minl == -1) minl = -1;// 无解 cout << minl << endl; return 0; }
点赞
送花
回复 分享
发布于 2023-07-21 17:48 北京
从n开始减到min{A},每个数都判断是否由A组成,可以不😥
点赞
送花
回复 分享
发布于 2023-07-22 17:46 福建
感谢分享
点赞
送花
回复 分享
发布于 2023-07-23 00:24 北京
感谢😊
点赞
送花
回复 分享
发布于 2023-07-23 16:27 上海
m
点赞
送花
回复 分享
发布于 2023-07-24 04:22 湖北
佬,字节这个提前批真的不影响秋招正式批吗
点赞
送花
回复 分享
发布于 2023-07-24 20:44 广东
手撕代码是发链接呢?还是在自己的ide上写呀?
点赞
送花
回复 分享
发布于 2023-07-25 10:43 重庆

相关推荐

51 320 评论
分享
牛客网
牛客企业服务