`
soul_fly
  • 浏览: 39497 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

腾讯算法面试题解答

阅读更多

才在JavaEye论坛看一个帖子求助腾讯一道面试题的解法。

题目是这样的:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排对应那个数在下排十个数中出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】

 

JavaEye论坛里面有人给出了一个java实现的算法。

public class Test
{
  public static void main(String[] args)
  {
    NumberTB nTB = new NumberTB(10);
    
    int[] result = nTB.getBottom();
    for(int i=0;i<result.length;i++)
    {
      System.out.print(result[i] + " ");
    }
  }
}

class NumberTB
{
  private int[] top;
  private int[] bottom;
  private int len;
  private boolean success;
  
  //please into len >= 4
  public NumberTB(int len)
  {
    this.len = len <= 4 ? 4 : len;
    this.success = false;
    
    this.top = new int[this.len];
    this.bottom = new int[this.len];
    
    //format top
    for(int i=0;i<this.len;i++)
    {
      this.top[i] = i;
    }
  }
  
  public int[] getBottom()
  {
    int i = 0;
    
    while(!this.success)
    {
      i++;
      setNextBottom();
    }
    
    System.out.println("执行了: " + i + "次循环得到结果");
    
    return this.bottom;
  }
  
  //set next bottom
  private void setNextBottom()
  {
    boolean reB = true;
    
    for(int i=0;i<this.len;i++)
    {
      int frequecy = getFrequecy(i);
      
      if(this.bottom[i] != frequecy)
      {
        this.bottom[i] = frequecy;
        reB = false;
      }
    }
    
    this.success = reB;
  }
  
  //get frequency in bottom
  private int getFrequecy(int num)
  {
    int count = 0;
    
    for(int i=0;i<this.len;i++)
    {
      if(this.bottom[i] == num)
        count++;
    }
    
    return count;
  }
}

 下面给出一个更具一般性的结论:

这个是有规律可循的,不仅0~9有唯一解,0~n都只有唯一解。关键是最后面一个1它可以左右移动,1和2下面的数永远是2和1,0下面对应的数为n-3(n>=3),上排数n-3下面对应的数为1,其它上排数下面对应为0就ok了。有了这个一般性的结论再大的数都可以马上给出答案。
比如 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    12 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0

请大家验证,这个算法可以用到数据压缩领域。

5
0
分享到:
评论
5 楼 soul_fly 2009-06-18  
forgetOneself 写道

这个是有规律可循的,不仅0~9有唯一解,0~n都只有唯一解。? 这个好像在n&lt;6就会有问题吧

0 1 2 3
1 2 1 0
4 楼 forgetOneself 2009-06-18  
这个是有规律可循的,不仅0~9有唯一解,0~n都只有唯一解。?


这个好像在n<6就会有问题吧
3 楼 soul_fly 2009-06-17  
Java控 写道

为什么总是有人自大而自卑······ 自卑的总是认为自己没有能力去做这个没有能力去做那个,认为难题都是大牛去解决的。 而又很自大认为他不会,我就也不会,总是爱教育别人的姿态。 他不了解算法 就认为算法问题都很难···就认为和他一起工作的我 必然没可能比他更了解算法 他不了解验证码 当初只是遇到个最初级的弱智验证码,我们之前都没接触过图形,所以他就认为我是在自不量力。可最后的事实是他不敢做的验证码破解,我用了一天时间破解成功 莫非一定要教育别人 要把别人的能力看低 才能把自己的能力凸显出来? 莫非只是因为他比我到得早?比我干的早?拿钱是我两倍,所以就可以这样做么? 本来对这个题很兴奋的 可现在完全没心情了··

继续努力吧别太悲观。
2 楼 Java控 2009-06-17  
为什么总是有人自大而自卑······
自卑的总是认为自己没有能力去做这个没有能力去做那个,认为难题都是大牛去解决的。
而又很自大认为他不会,我就也不会,总是爱教育别人的姿态。
他不了解算法 就认为算法问题都很难···就认为和他一起工作的我 必然没可能比他更了解算法
他不了解验证码 当初只是遇到个最初级的弱智验证码,我们之前都没接触过图形,所以他就认为我是在自不量力。可最后的事实是他不敢做的验证码破解,我用了一天时间破解成功

莫非一定要教育别人 要把别人的能力看低 才能把自己的能力凸显出来?
莫非只是因为他比我到得早?比我干的早?拿钱是我两倍,所以就可以这样做么?

本来对这个题很兴奋的 可现在完全没心情了··
1 楼 Java控 2009-06-17  
本来想说你那错着呢 ··因为我看到上面有16个数字 而下面12+2+1=15 ····正准备点提交的时候 才发现一堆0里面藏了一个1···郁闷····
这个题很强嘛···

相关推荐

    算法面试经典 100题

    **知识点**:本题考查二叉树的遍历及最长路径的计算。 **解题思路**: 1. **深度优先搜索**:使用深度优先搜索遍历二叉树。 2. **递归计算高度**:计算左右子树的高度,从而得出最大距离。 **实现细节**: - 在...

    腾讯面试题 + 笔试题(全)

    本压缩包包含两份珍贵的资料——“腾讯笔试题专辑(含答案).pdf”和“腾讯面试题.pdf”,它们提供了丰富的腾讯面试及笔试题目,对于准备应聘腾讯或其他IT企业的求职者来说,是一份极具价值的学习资源。 首先,我们来...

    腾讯php面试题解析

    ### 腾讯PHP面试题解析 #### 一、正则表达式的对比 **题目描述:** 对比 POSIX 风格和 Perl 兼容的正则表达式(PCRE)中的主要函数。 1. **eregi vs preg_match** - **eregi** (已废弃):用于检查字符串是否与...

    微软腾讯百度阿里面试 100 题系列-共330题

    一年之前的10月14日,一个名叫July (头像为手冢国光)的人在一个叫csdn的论坛上开帖分享微软等公司数据结构+算法面试100题,自此,与上千网友一起做,一起思考,一起解答这些面试题目,最终成就了一个名为:结构之...

    数据结构+算法面试100题全部答案集锦

    文件描述了一个名为July的人在csdn论坛上分享微软等公司的数据结构与算法面试题集,并与网友共同讨论解答,最终形成了名为“结构之法算法之道”的博客。这说明面试题库对于程序员的准备和提高具有极大的帮助,而且在...

    google百度北电华为腾讯试题及面试

    标题中的“google百度北电华为腾讯试题及面试”暗示了这个压缩包可能包含了这几家知名科技公司(Google、百度、北电、华为、腾讯)在招聘过程中常用的面试问题和相关测试题。这些公司都是信息技术行业的巨头,它们的...

    百度、谷歌、腾讯、微软数据结构算法面试题

    以上内容只是对题目中涉及知识点的初步解析,实际的面试题可能需要更深入的解答,包括具体算法的实现细节、复杂度分析、最优解策略等。对于IT行业的求职者,扎实的数据结构和算法基础至关重要,这直接影响到他们在...

    google百度北电华为腾讯试题及面试.rar

    描述中的重复内容"google百度北电华为腾讯试题及面试.rargoogle百度北电华为腾讯试题及面试.rargoogle百度北电华为腾讯试题及面试.rargoogle百度北电华为腾讯试题及面试.rar"可能是输入错误,但可以理解为强调该...

    IT面试之腾讯笔试面试大礼包.zip

    压缩包内的"IT面试之腾讯笔试面试大礼包.txt"很可能包含了历年的笔试题和面试真题,这些题目往往反映了腾讯对候选人技术能力和逻辑思维的考察标准。求职者可以通过这些题目了解腾讯的出题风格,进行针对性的练习。...

    google北电百度华为腾讯试题及面试

    下面我们将针对这些公司的试题及面试进行详细解析。 首先,让我们来看看Google的笔试题。Google以其严谨的面试流程闻名,其笔试题通常包括编程题和逻辑题。编程题可能涉及数据结构、算法优化等,例如设计高效的排序...

    腾讯校园招聘试题 笔试 面试

    ### 腾讯校园招聘知识点总结 ...对于希望加入腾讯的同学来说,提前了解招聘流程、熟悉常见的面试题型并做好充分准备是非常重要的。同时,也可以参考过往的笔试面试经验,以便更好地应对即将到来的挑战。

    微软等数据结构+算法面试100题全部答案

    - 数据结构和算法面试题是评估求职者基础技能的重要工具。 - 通过解答这类题目,可以检验求职者对基本概念的理解、逻辑思维能力以及问题解决技巧。 - 对于想要进入顶级科技公司工作的求职者来说,掌握这些题目及其...

    腾讯校招面试笔试题.rar

    这份"腾讯校招面试笔试题.rar"的压缩包很可能包含了历年腾讯针对校招所设计的各种题目,涵盖了多个IT领域的核心知识点。以下将对可能涉及的领域进行详细讲解: 1. 数据结构与算法:腾讯作为一家技术驱动的公司,对...

    腾讯php工程师笔试题

    腾讯作为国内知名的互联网巨头,其招聘流程往往包含了严谨的笔试环节,旨在评估应聘者的编程基础、算法理解以及问题解决能力。以下是对几道典型笔试题目的详细解析: 1. 设计程序缓存和查找算法以处理重复登录提醒 ...

    hadoop2面试题 - 2012腾讯笔试的一道算法题.pdf

    ### hadoop2面试题 - 2012腾讯笔试的一道算法题 #### 背景与题目概述 本文档提供了2012年腾讯笔试中一道关于字符串处理的算法题,该题目要求将字符串中的所有大写字母移动到字符串的末尾,同时保持其他字符的相对...

Global site tag (gtag.js) - Google Analytics