接着写某狼厂面试题目经验2015

最大连续子序列问题,也是出自编程之美。

咋做呢?当然是把结果累加,一旦累加和小于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值