百度北京站2014研发笔试

2024-03-01 08:32

本文主要是介绍百度北京站2014研发笔试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、OSI七层模型

2物理层

3数据链路层

4网络层

5传输层

6会话层

7表示层

8应用层


2、进程间数据共享的方式三种

文件映射

共享内存

信号

匿名管道

命名管道

邮件槽

剪贴板


3、TCP/UDP区别

4、打印数组的所有组合

#include <stdio.h>  int n = 0;  void swap(int *a, int *b) 
{     int m;     m = *a;     *a = *b;     *b = m; 
}  
void perm(int list[], int k, int m) 
{     int i;     if(k > m)     {          for(i = 0; i <= m; i++)             printf("%d ", list[i]);         printf(" ");         n++;     }     else     {         for(i = k; i <= m; i++)         {             swap(&list[k], &list[i]);             perm(list, k + 1, m);             swap(&list[k], &list[i]);         }     } 
} 
int main() 
{     int list[] = {1, 2, 3, 4, 5};     perm(list, 0, 4);     printf("total:%d ", n);     return 0; 
}  


二进制

首先,把数组每一个元素用一个二进位表示,例如:

A B C D E
1 1 1 1 1 ---> 于是它最多有11111(二进制)种不重复组合(即31种)(不考虑顺序--按楼主要求)

于是,只要检查从1到31这些数字的二进位哪些是二进制值1,就可以得出组合了。(位值为1的元素选取,位值为0的元素弃之)

(转自网络)

5、二叉树的面积

深度优先搜索,广度优先搜索的实现

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define  TRUE        1
#define  FLASE       0
#define  OK          1
#define  ERROR       0
#define  INFEASIBLE -1
#define  OVERFLOW   -2
typedef int Status;typedef int TElemType;
typedef struct BiTNode
{TElemType data;struct BiTNode *lchild,*rchild;
} BiTNode,*BiTree;Status CreateBiTree(BiTree &T)
{TElemType e;scanf("%d",&e);if(e==0)  T=NULL;else {T=(BiTree)malloc(sizeof(BiTNode));if(!T)exit(OVERFLOW);T->data =e;CreateBiTree(T->lchild );CreateBiTree(T->rchild );}return OK;
}int max(int a[])
{int max,i;max=a[0];for(i=1;i<20;i++){if(max<a[i])max=a[i];}return max;
}int BiTreeWidth (BiTree T)
{if(T==NULL)return 0;else{static int a[20]={0};static int i=0;a[i]++;i++;BiTreeWidth (T->lchild );if(T->lchild ==NULL)i--;BiTreeWidth (T->rchild  );if(T->rchild ==NULL)i--;return max(a);}
}



另附:

二叉树高度、宽度、结点个数、叶子结点个数


转自网络未经测试
实现二叉树宽度递归算法~
#include <iostream>
using namespace std;
typedef struct node
{
char data;
int lab;
struct node *lchild;
struct node *rchild;
}btree;
int m=0;
void ct(btree *&b,char *str)
{
btree *st[99],*p=NULL;
int top=-1,k,j=0;
char ch;
b=NULL;
ch=str[j];
while(ch!='\0')
{switch(ch){case '(':top++;st[top]=p;k=1;break;case ')':top--;break;case ',':k=2;break;default:p=(btree *)malloc(sizeof(btree));p->data=ch;p->lchild=p->rchild=NULL;if(b==NULL)b=p;else{switch(k){case 1:st[top]->lchild=p;break;case 2:st[top]->rchild=p;break;}}}j++;ch=str[j]; 
}
}
void outbt(btree *b)
{
if(b!=NULL)
{cout<<b->data;outbt(b->lchild);outbt(b->rchild);
}
}
btree *findchild(btree *b,char x)
{
btree *p;
if(b==NULL)
{return NULL;
}
elseif(b->data==x){cout<<"找到结点"<<x<<"!"<<endl;if(b->lchild==NULL)cout<<"左节点为空!"<<endl;elsecout<<"左孩子为:"<<b->lchild->data<<endl;if(b->rchild==NULL)cout<<"右孩子为空!"<<endl;elsecout<<"右孩子为:"<<b->rchild->data<<endl;return b;}else{p=findchild(b->lchild,x);if(p!=NULL)return p;elsereturn findchild(b->rchild,x);}
}
int btreeheight(btree *b)
{
int lchildh,rchildh;
if(b==NULL)return(0);
else
{lchildh=btreeheight(b->lchild);rchildh=btreeheight(b->rchild);return(lchildh>rchildh?(lchildh+1):(rchildh+1));
}
}
int i=-1,a[20];
void btreewide(btree *b)
{
if(b!=NULL)
{if(b->lchild!=NULL){i++;b->lchild->lab=b->lab+1;a[i]=b->lab+1;}if(b->rchild!=NULL){i++;b->rchild->lab=b->lab+1;a[i]=b->lab+1;}btreewide(b->lchild);btreewide(b->rchild);
}
}
void vernum(btree *b)
{
if(b!=NULL)
{m++;vernum(b->lchild);vernum(b->rchild);
}
}
int leafver(btree *b)
{ if(b==NULL)return 0;else if(b->lchild==NULL&&b->rchild==NULL)return 1;else return leafver(b->lchild)+leafver(b->rchild); 
}
void main()
{
char *s;
s="A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))";
btree *bt;
cout<<"将要创建的二叉树:"<<endl<<s<<endl;
ct(bt,s);
cout<<"输出二叉树:"<<endl;
outbt(bt);
cout<<endl;
cout<<"H结点左右孩子结点值:"<<endl;
findchild(bt,'H');
cout<<"二叉树的深度:"<<btreeheight(bt)<<endl;
vernum(bt);
cout<<"二叉树结点个数:"<<m<<endl;
cout<<"二叉树叶子结点个数:"<<leafver(bt)<<endl;
bt->lab=1;
btreewide(bt);
int j,k,num,max=0;
for(j=1;j<=i+1;j++)
{num=0;for(k=0;k<=i;k++)if(a[k]==j)num++;if(max<num){max=num;}
}
cout<<"二叉树宽度为:"<<max<<endl;
}


6、地图的点的文字位置的确定

1、扫描点附近的矩形邻域内是否为空

2改进:搜索算法


这篇关于百度北京站2014研发笔试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761822

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

Imageview在百度地图中实现点击事件

1.首先第一步,需要声明的全局有关类的引用 private BMapManager mBMapMan; private MapView mMapView; private MapController mMapController; private RadioGroup radiogroup; private RadioButton normalview; private RadioBu

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT