接着写某狼厂面试题目经验2015
2015-10-13 23:08
330 查看
最大连续子序列问题,也是出自编程之美。
咋做呢?当然是把结果累加,一旦累加和小于0,那么前面部分可以丢弃掉。
但如果需要具体子序列的位置时,采用动态规划的方法更合理,从后往前探测:
int maxSum(int* a,int n)
{
int nStart=a[n-1];
int nAll=a[n-1];
int start=n-1;
int end=n-1;
for(int i=n-2;i>=0;--i)
{
if(nStart<0)
{
nStart=0;
end=i;
start=i;
}
nStart+=a[i];
if(nStart>nAl)
{
nAll=nStart;
start=i;
}
}
cout<<"start="<<start
<<"\t"<<"end="<<end<<endl;
return nAll;
}
希尔排序怎么做?
void shellSort(int* a,int len,int* delta,int m)
{
for(int i=0;i<m;++i)
shellInsert(a,len,dleta[i]);
}
void shellInsert(int* a,int len,int c)
{
int t,j;
for(int i=c;i<len;++i)
{
if(a[i]<a[i-c])
{
t=a[i];
for(j=i-c;j>=0 && t<a[j]; j=j-c)
a[j+c]=a[j];
a[j+c]=t;
}
}
}
用UDP怎么实现TCP?
简单来说,除了三次握手,四次挥手之外,还需要考虑滑动窗口(双方接发收模块协定的窗口大小)。超时和重传,慢启动拥塞控制,安全性,定时器。接口规范。
丢手机测试哪层会摔坏。
x+(x-1)+...+1=N,当N=100时,结果为14。
HTTP协议的主要特点概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
洗牌算法的要求是这样的:将N个数乱序后输出.由于和扑克牌的洗牌过程比较相似所以我也就称为洗牌算法了.很多地方都不自觉的需要这个算法的支持.也可以将这个算法扩展为从N个数中取出M个不重复的数(0<M<=N)。
经典的做法是:
void MySwap(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
void Shuffle(int n)
{
for(int i=n-1; i>=1; i--)
{
MySwap(num[i], num[rand()%(i+1)]);
}
}
这个过程有点像堆排序。
N个连续自然数乱序存放于数组,其中有一个-1。怎么找出来。
我也被问到这个问题。
求和求减。
ip段去重,我也被问到了。
发表于: 2007-10-23 13:37:15
咋做呢?当然是把结果累加,一旦累加和小于0,那么前面部分可以丢弃掉。
但如果需要具体子序列的位置时,采用动态规划的方法更合理,从后往前探测:
int maxSum(int* a,int n)
{
int nStart=a[n-1];
int nAll=a[n-1];
int start=n-1;
int end=n-1;
for(int i=n-2;i>=0;--i)
{
if(nStart<0)
{
nStart=0;
end=i;
start=i;
}
nStart+=a[i];
if(nStart>nAl)
{
nAll=nStart;
start=i;
}
}
cout<<"start="<<start
<<"\t"<<"end="<<end<<endl;
return nAll;
}
希尔排序怎么做?
void shellSort(int* a,int len,int* delta,int m)
{
for(int i=0;i<m;++i)
shellInsert(a,len,dleta[i]);
}
void shellInsert(int* a,int len,int c)
{
int t,j;
for(int i=c;i<len;++i)
{
if(a[i]<a[i-c])
{
t=a[i];
for(j=i-c;j>=0 && t<a[j]; j=j-c)
a[j+c]=a[j];
a[j+c]=t;
}
}
}
用UDP怎么实现TCP?
简单来说,除了三次握手,四次挥手之外,还需要考虑滑动窗口(双方接发收模块协定的窗口大小)。超时和重传,慢启动拥塞控制,安全性,定时器。接口规范。
丢手机测试哪层会摔坏。
x+(x-1)+...+1=N,当N=100时,结果为14。
HTTP协议的主要特点概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
洗牌算法的要求是这样的:将N个数乱序后输出.由于和扑克牌的洗牌过程比较相似所以我也就称为洗牌算法了.很多地方都不自觉的需要这个算法的支持.也可以将这个算法扩展为从N个数中取出M个不重复的数(0<M<=N)。
经典的做法是:
void MySwap(int &x, int &y)
{
int temp = x;
x = y;
y = temp;
}
void Shuffle(int n)
{
for(int i=n-1; i>=1; i--)
{
MySwap(num[i], num[rand()%(i+1)]);
}
}
这个过程有点像堆排序。
N个连续自然数乱序存放于数组,其中有一个-1。怎么找出来。
我也被问到这个问题。
求和求减。
ip段去重,我也被问到了。
发表于: 2007-10-23 13:37:15
相关文章推荐
- Android开发面试题(一)
- 黑马程序员——C基础---二维数组
- 项目经理面试指南
- 在我程序员之路的开始写点东西吧
- 黑马程序员——java基础之多线程
- 《剑指Offer》面试题:寻找的连续序列的和等于某一定值
- 【黑马程序员】【Foundation框架】数组NSArray和NSMutableArray
- 【黑马程序员】【Foundation框架】字典NSDictionary和NSMutableDictionary
- 单链表经典面试题
- 《程序员编程艺术:面试和算法心得》链接
- 【黑马程序员】【Foundation框架】常用类NSString和NSMutableString字符串
- 百度开发测试面试经验2015
- ios面试题
- 是该决定自己以后到底要干什么了,不想干程序员,真的是要干别的了。
- iOS面试小题集锦
- java常见面试题及答案 11-20(JVM)
- 张涛:12年老程序员在小米网干了什么
- C#面试题汇总2
- 关于面试经常被问到的socket的TIME_WAIT状态的原因及解决办法和避免的办法
- 黑马程序员——泛型