zoukankan      html  css  js  c++  java
  • 百度2011面试题+答案解析

    1、进程切换需要注意哪些问题?

     

     

     

    2、输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。

     

     

     

    3、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未知的,请设计一个算法,快速找个这个人中的那个名人。  已知已经实现了一个函数  bool know(int a,int b) 这个函数返回true的时候,表明a认识b,返回false的时候表明a不认识b。

     

     

     

    4、有一类数组,例如书序[1,2,3,4,6,8,9,4,8,11,18,19,100] 前半部分是是一个递增数组,后面一个还是递增数组,但整个数组不是递增数组,那么怎么最快的找出其中一个数?

     

     

    5、判断一个自然数是否是某个数的平方。当然不能使用开方运算。

    参考答案(欢迎讨论)转载请注明来源http://www.cnblogs.com/jerry19880126/

    1. 进程“上下文切换”问题,将旧进程状态保存在其PCB(进程控制块)中,然后装入经调度要执行的新进程的PCB。

    2. 两个指针low和high,一个指向数组首,一个指向数组尾。

    If(a[low]+a[high] == target) 返回a[low]和a[target]

    Else if(a[low] + a[high] < target)

    {

               向右移动low,直到a[low]+a[high]>=target为止

    }

    Else

    {

               向左移动high,直到a[low]+a[high]<=target

    }

    ++low, --high

    直到low>=high为止

    算法复杂度为O(N)

    3. 设有N个人,将之两两分组,A1B1, A2B2, …, AN/2, BN/2(或者A(N/2+1)挂单)

    然后两两比较,即know(A1, B1), know(A2, B2), …

    分析返回的结果,若淘汰结果为true的Ai,即若know(Ai, Bi) = true,则淘汰Ai,对剩下的所有人再进行分组,并重复淘汰,直到剩下最后一个人为止,总共比较N次,所以算法复杂度为O(N)

    4. 第一步是找出两个数组的分界线,有两个,一个是前一个数组的最末元素,另一个是后一个数组的最初元素,分别设为preMax和aftMin。

    第二步分析要查找的数,若此数刚好等于preMax或aftMin,则返回相应位置,否则,若此数小于preMax,则在前一个数组二分查找,若此数大于aftMin,则在后一个数组二分查找

    算法复杂度为O(N)+O(logN)+O(logN)=O(N)

    5. 判断自然数x是否是某个数y的平方。

    若y本身是给定的,则直接return x/y = y? true: false;

    题目想表达的意思应该是y是未知的,要去查找。

    注意x有自然数的限制,所以可以用二分查找法。

    Low = 1;

    High = x;

    循环:

    Mid = (low + high) / 2;

    If(mid * mid == x) return mid;

    Else if(mid * mid < x) low = mid + 1;

    Else high = mid – 1;

    重复以上步骤直到low > high为止

    算法复杂度为O(logx)

  • 相关阅读:
    Spring Bean Scope 有状态的Bean 无状态的Bean
    管理Mysql常用指令
    mysql处理特殊字符
    linux下memcached安装 和redis安装,jdk,tomcat,mysql 安装
    Jenkins
    tomcat站点配置
    tomcat配置jdbc
    spring 深入reading
    JAVA随机数之多种方法从给定范围内随机N个不重复数
    Intellij IDEA 快捷键整理
  • 原文地址:https://www.cnblogs.com/jerry19880126/p/2624596.html
Copyright © 2011-2022 走看看