广联达笔试题求解答!

本菜鸡今天做了广联达的 笔试题,有几个题一直不会,请诸位大佬帮忙看一下!
选择题:
1.下列哪个不是socket函数的相关参数
   1.mac  2.ip address  3.protocol 4.tcp
2.线性规划和对偶问题有没有最优解
3.有四个矩阵M0,M1,M2,M3维度分别为,6,4,7,10,动态规划的计算顺序是M0(M2(M3*M4))
   还是((M0*M1)M2)M3,或其他顺序?

这几个选择咋做?

此外,还考了
4.死锁
5.delete,truncate
还有大量考C++类的继承封装的题目

编程题:有一个算法,每次都能将一个元素放在最前面。现在有一个随机序列,需要多少次操作才能实现从小到大排序。
此题本菜鸡是暴力破解,一直显示超时,有没有大佬分享一下思路?
本菜鸡暴力破解思路:

比如1,2,3,7,4,6,其中1,2,3,7是已经排好序的,现在4比7小,所以理论上的步骤:
1.要把4放在最前面,即4,1,2,3,7,6,此时需要一步cnt=1;
2.然后把排序好的部分中,比4小的放在前面
3,4,1,2,7,6, cnt=2;
2,3,4,1,7,6 cnt=3;
1,2,3,4,7,6,cnt=4;
以上是题目要求的实现步骤。但实际上,这个过程只需要循环计数就好了,不需要真的把4放在最前,我们只需要把4和七换位,进行排序即可,即排序是按我们自己的思路来拍,计数是按题目要求来计数。排序是swap(7,4),计数是1+排序好的数中比4小的个数
#广联达2021届秋招提前批##内推##笔试题目#
全部评论
就第一题90,,,第二题9,,,第三题没写,,,
5 回复 分享
发布于 2020-07-22 20:26
第三题我输出13,通过9%😂
1 回复 分享
发布于 2020-07-22 23:05
全ac了,第二题用一个栈从后往前存连续的最大值就行了o(n),第三题排序就行。
1 回复 分享
发布于 2020-07-22 22:34
选择做的比较水。。编程题前两个AC,第三个82。。
1 回复 分享
发布于 2020-07-22 21:47
第二题明明就是归并排序,为什么一直是9
1 回复 分享
发布于 2020-07-22 20:44
1、第一题暴力排序,找最大的两个  并且个数超过两个的数字,相乘即可 2、data为原数组,flag为data的副本,对flag sort,然后以排序后的flag为基准,从后往前比较有多少个数是按照现在的顺序排序的,用count-这个数字就行, https://www.nowcoder.com/questionTerminal/adc291e7e79f452c8b59243a5ce68d3a 这个题的变形 3、暴力,就求起始的位置+2*范围的最大值,这样循环加,过了91%
4 回复 分享
发布于 2020-07-22 20:34
第二题我的做法是  1.把它看成一个函数,找到最大的最小值点。比如 2 1 3 4 就是1.2 1 4 3就是3.把这个移到开头就是第一步。 2.找到所有比第一步找到的数小的数,这就是下面要移动的步数。 时间复杂度应该是N,空间复杂度是1。 第三题我就是声明怪物数组,按位置排序,再模仿区间覆盖取走一遍就好了。 代码题还好,选择题好多不会写......
3 回复 分享
发布于 2020-07-22 20:44
做过类似的一道题,思路是求序列中最长递增子序列的长度n,然后用总长减去n
点赞 回复 分享
发布于 2020-07-29 10:25
LZ是哪个卷子啊  为什么看到有人说只有三道编程题,有的人还有选择题
点赞 回复 分享
发布于 2020-07-29 10:17
LZ,我想问一下,广联达用c++编程时,在本地就可以编译成功,而在网上就不过,是什么原因 ?谢谢
点赞 回复 分享
发布于 2020-07-23 17:18
算法题第二题我觉得就是找到最长的连续相邻差为一的最长子序列(可以不连续)长度为k, 直接N-k就是答案,我也没有严格数学证明就是试了几个例子好像是对的。
点赞 回复 分享
发布于 2020-07-23 06:30
从小到大排序那个我感觉求出最长上升子序列就可以了,然后次数就是数组长度减去最长上升子序列长度
点赞 回复 分享
发布于 2020-07-22 23:14
本地全都可以 但是正确率为0 气死了
点赞 回复 分享
发布于 2020-07-22 23:02
您说的例子不是应该先考虑6,将6移到前面,然后再移动4,3,2,1一共5次移动就可以了,如果先考虑4的话不是移动了1,2,3,4之后,再移动6的时候还要移动一遍1,2,3,4么?
点赞 回复 分享
发布于 2020-07-22 22:48
第一题:选择出现偶数次的最大的四个数(4个or2+2个) 第二题:假设输入一个数组a,用一个数组b保存a,然后将b进行排序,逆序找,如果相同就直接continue,否则ans++。 #include <bits/stdc++.h> using namespace std; const int MAXN = 1e5+5; typedef long long LL; int a[MAXN],b[MAXN]; int main() {     int n; cin>>n;     for(int i=0; i<n; i++) {         cin>>a[i];         b[i] = a[i];     }     sort(b, b+n);     int ans = 0;     for(int i=n-1; i>=0; i--) if(a[i] != b[i+ans]) ans++;     cout<<ans<<endl;     return 0; }
点赞 回复 分享
发布于 2020-07-22 22:20
第二题从左到右遍历并记录最大值 如果数比最大值小就说明需要swap 需要的次数就是数的大小 然后求最大就行了
点赞 回复 分享
发布于 2020-07-22 22:10
第二题我是真SB,没看清放最前面就直接憝🙄
点赞 回复 分享
发布于 2020-07-22 21:39
第二题我的思路是,1-n的数,先把n-1的找出来,比如2,3,1,4,6,5;先把5找出来放到list的第一个,变成了5,2,3,1,4,6,这时候已经移动了一次了,这时候就可以一直循环从第一个开始,找比5小1的数就是4,找到了就把4放到第一个位置,再把4移除,就变成了4,5,2,3,1,4,6,再找比4小1的以此类推,直到2,3,4,5,1,6;这时候比2小1的就是1了,把1放到最前面,移除1,就变成了有序的升序序列,每次把一个元素移到最前面都要++,最后输出结果,请大佬们看一下我的方法错在哪了,这些用List的remove和add方法都能实现,就是没AC全部哭了
点赞 回复 分享
发布于 2020-07-22 21:32
第一题,统计各个边长次数,对边长降序排序,取出现次数大于等于2的最大的两个边长,需要注意可能仅有一个边长个数大于等于4的情况
点赞 回复 分享
发布于 2020-07-22 21:23
第三题,特例法可以过部门用例,比如当攻击范围y很大,可以覆盖所有怪物位置时,攻击次数就等于血量最大的那只怪。将怪物坐标从小到大排列,从最左边开始,保持范围2*y依次扫描,暴力求解,直至队列空。
点赞 回复 分享
发布于 2020-07-22 21:21

相关推荐

鼠鼠第一次实习,啥也不懂一直是自己一个人吃的饭,不会做工作老是被嫌弃,大人的世界是这样的吗?
我是星星我会发亮:好的mt有两种,一种愿意教你的,一种几乎什么活都不给你派让你很闲允许你做自己事情的
点赞 评论 收藏
分享
牛客837006795号:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
Twilight_mu:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
8
53
分享

创作者周榜

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