美文网首页
winng的二月第一周题目

winng的二月第一周题目

作者: winng伍寅 | 来源:发表于2019-01-30 17:05 被阅读0次

    [1] A+B问题 |lintcode1

    思路:题目中要求用位运算,百度位运算实现。然后开心地发现了这篇简书,写的真好https://www.jianshu.com/p/7bba031b11e7
    代码略

    [2] 尾部的0 |lintcode2

    思路:计算出n阶乘中尾部零的个数,返回多少个5,多少个52,多少个53……用递归或者迭代应该都可以~

      long long trailingZeros(long long n) {
        long long num=0,wu=5;
        while(wu<=n){
          num+=n/wu;
          wu*=5;
        }
        return num;
      }
    

    [3] 二分查找 |lintcode14

    思路:简单的二分查找(然额我de了好久bug)

      int binarySearch(vector<int> &nums, int target) {
        if (target<nums.front()||target>nums.back())
          return -1;
        else{
          long num=nums.size(),front=0,back=num-1,mid;
          while(1){
            mid=(back+front)/2;
            if (nums[(int)mid]==target){
              while(nums[(int)mid]==target)
              mid--;
              break;
            }
            else if((back==front||(back-front)==1)&&
                     nums[back]!=target&&nums[front]!=target)
              return -1;    //这里忘掉过判断是否在俩数中间找不到
            else if(nums[(int)mid]>target)
              back=mid;
            else if(nums[(int)mid]<target)
              front=mid;
          }
        return int(++mid);
        }
      }
    

    相关文章

      网友评论

          本文标题:winng的二月第一周题目

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