美文网首页面试
剑指offer第三天

剑指offer第三天

作者: QJK | 来源:发表于2016-03-31 18:58 被阅读74次

    其实是昨天追太阳的后裔和银魂搞得第二天的内容没写完。
    最近好虐 国足出线 银魂本季完结 心塞...
    不过每天洗完澡照照镜子 又会发觉世界是多么美好

    1.png

    言归正传

    2.4 算法和数据操作

    重点掌握 二分查找 归并排序 快速排序
    tips 如果题目要求在排序的数组(或部分排序的数组)中查找一个数字或统计某个数字出现的次数,我们都可以尝试二分查找算法

    哈希表最主要的优点是能够在O(1)时间查找某一元素。

    快速排序 主要思想 在数组中选择一个数字,把数组中小于该数字的移到数组左边,大的移到右边。
    快排代码

    void qucikSort(int left,int right,int a[]){
    int i,j,t,temp;
    if (left>right) {
        return;
    }
    temp=a[left];
    i=left;
    j=right;
    while (i!=j) {
        while (a[j]>=temp && i<j) {
            j--;
        }
        while (a[i]<=temp && i<j) {
            i++;
        }
        if (i<j) {
            t=a[j];
            a[j]=a[i];
            a[i]=t;
        }
    }
    a[left]=a[i];
    a[i]=temp;
    qucikSort(left, i-1,a);
    qucikSort(i+1, right,a);
    }
    

    如果需要排序的数字在一个较小的范围内,可以考虑桶排

    2.4.2 递归和循环

    如果我们需要重复计算相同的问题,可以选择递归或者循环两种不同的方法。

    斐波那契数列 又想起组合数学了 让我哭一会

    代码

    int Fib(int x){
    if (x<=0) {
        return 0;
    }
    if (x==1 || x==2) {
        return 1;
    }
    return Fib(x-1)+Fib(x-2);
    }
    

    非递归

    //真为自己的单词量感到捉急
    int FibNotDigui(int x){
      if(x==0) return 0;
      if(x==1) return 0;
      int FibOne=1;
      int FibTwo=0;
      int Fib=0;
      //f(n)=f(n-1)+f(n-2) FibOne:f(n-1)   FibTwo:f(n-2)
      for (int i=2; i<=x; i++) {
        Fib=FibOne+FibTwo;
        FibTwo=FibOne;
        FibOne=Fib;
        }
    return Fib;
    }
    

    相关变形 一只一次可以跳上一级,也可以跳上两级,求跳n级台阶共有多少种跳法。
    n级台阶只有从n-1级和n-2级跳上两种方法,设f(n)为n级台阶的跳法
    f(n)=f(n-1)+f(n-2)
    识得唔识得 还是一个斐波那契问题 !

    位运算

    输入一个整数,输出该数二进制中1的个数,如9 1001 输出2
    思路 把n和1做运算 得出最低位是否为1 再把1左移一位 和n做与运算 得出次地位是否为1 依此类推
    代码如下

    void numberofOne(int x){
    int count=0;
     unsigned int test=1;
      if (x==1) {
        printf("%d",1);
        return;
      }
    while (test<x) {
        if (x & test) {
            count++;
        }
       test= test << 1;
        }
    printf("%d",count);
    }
    

    先写那么多 今天看的还得整理下
    ps:希望保安别那么早赶人 让我把剧看完
    pps:今天绝对不能吃宵夜了!

    相关文章

      网友评论

        本文标题:剑指offer第三天

        本文链接:https://www.haomeiwen.com/subject/dcnelttx.html