zoukankan      html  css  js  c++  java
  • 面试算法题目

    1. 看到一篇博客,总结了各种链表相关的问题,mark一下,感觉很不错~
      戳我:http://wuchong.me/blog/2014/03/25/interview-link-questions/
    2. 《编程之美》中“金刚坐飞机”问题:
    3. 《编程之美》中“瓷砖覆盖地板”问题的扩展问题:
    4. 《编程之美》2.3 寻找发帖水王的扩展题目-寻找发帖量最多的三个ID,他们发帖总数超过了帖子总数目N的1/4。参考:
      http://blog.csdn.net/tanyujing/article/details/8622362
    5. 《编程之美》2.10 寻找数组中的最大值的最小值的扩展题目-找出长度为N的数组中的第二大数,需要比较多少次?分治思想能否降低比较次数。
      个人认为:N次,设置两个临时变量保存最大和次大数,初始化为Integer.MIN_VALUE,然后从头到尾扫描一遍数组,如果当前数比最大数大,次大数赋值当前最大数,最大数更新当前数。比较的次数即N次即可。
    6. 《编程之美》 2.20 程序理解和时间分析
      给出程序段
    #include <iostream>
    #include <limits>
    using namespace std;
    int main() {
         int rg[] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
             20,21,22,23,24,25,26,27,28,29,30,31};
         for(__int64 i =1; i < numeric_limits<__int64>::max(); i++) {
             int hit = 0;
             int hit1 = -1;
             int hit2 = -1;
             for(int j = 0; j < sizeof(rg)/sizeof(*rg) && (hit <= 2); j++) {
                  if((i % rg[j]) != 0) {
                       hit++;
                       if(hit == 1) {
                           hit1 = j;
                       } else if(hit == 2) {
                           hit2 = j;
                       } else break;//如果找到第三个不能整除的数,循环退出。
                  }
             }
             //如果hit不为2,就不会输出,只有满足hit为2且两个hit是连续的才输出。
             if(hit == 2 && hit1+1==hit2) {
                  cout << "find " << i << endl;
                  break;
             }
         }
         return 0;
    }

    1)上段代码主要目的是为了找出这样一个数x, 使得数组rg中只有两个不能被x整除且两个不能被整除的数是连续的。
    2)这样的数存在么?求符合这样的数的最小数。
    参考:http://blog.csdn.net/erorr/article/details/5837391

  • 相关阅读:
    虚拟机三种虚拟网络的区别
    关于 三次握手和四次挥手 的生动解析
    Tkinter布局管理器
    F#周报2019年第4期
    F#周报2019年第3期
    ML.NET 0.9特性简介
    F#周报2019年第2期
    浏览器保存数据的几种方法
    F#周报2019年第1期
    ML.NET教程之客户细分(聚类问题)
  • 原文地址:https://www.cnblogs.com/eva_sj/p/6172246.html
Copyright © 2011-2022 走看看