题目是这样的:给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排对应那个数在下排十个数中出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
代码如下:
/** */
/**
* http://yydcj.iteye.com/
*/
public class Test {
public static void main(String[] args) {
NumberTB nTB = new NumberTB(18);
int[] result = nTB.getBottom();
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + " ");
}
}
static 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
请大家验证,这个算法可以用到数据压缩领域。
分享到:
相关推荐
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹(详解),排序算法数据结构 知识点1:排序算法的应用场景 在腾讯算法面试题中,要求选出64匹马中最快的四匹,需要使用排序算法来解决这个问题。排序...
在腾讯的面试过程中,面试官会考察候选人的各种技术能力,包括C/C++编程基础、操作系统、Linux知识、数据结构、算法等。以下是一些具体的面试题及其解析: 1. 宏定义比较大小:`#define BIG_THAN(a, b) (((b) – (a...
在IT行业中,尤其是在招聘领域,腾讯作为中国最大的互联网公司之一,其笔试和面试题往往备受关注。这些题目不仅反映了腾讯对技术人才的期待,也揭示了行业内的热门技术和招聘趋势。下面,我们将深入探讨腾讯笔试面试...
《腾讯面试题与笔试题详解》 在求职的道路上,面试和笔试是必不可少的环节,尤其是对于技术人才来说,能够顺利通过大公司的面试更是彰显个人实力的重要标志。本压缩包包含两份珍贵的资料——“腾讯笔试题专辑(含...
10. **算法与数据结构**:虽然前端面试中算法题相对较少,但掌握基础的排序、查找算法和常用的数据结构(如栈、队列、链表、树等)仍然是提高解决问题能力的关键。 通过这份2021年腾讯前端面试题真题解析,求职者...
本文将以“腾讯面试算法”为例,探讨在大数据量下高效算法对于性能优化的影响。在腾讯的面试过程中,面试官可能会考察候选人的算法设计能力,通过解决实际问题来评估其编程效率和逻辑思维。 首先,我们来看一个简单...
### 腾讯PHP面试题解析 #### 一、正则表达式的对比 **题目描述:** 对比 POSIX 风格和 Perl 兼容的正则表达式(PCRE)中的主要函数。 1. **eregi vs preg_match** - **eregi** (已废弃):用于检查字符串是否与...
### Java核心知识点详解 #### 一、面向对象的四大...以上是关于Java中的一些核心概念和技术点的详细介绍,这些知识点不仅对于准备腾讯、阿里、华为、平安等大厂的面试非常有用,也是深入理解Java技术体系的重要基础。
【腾讯2013面试题】相关知识点解析 在IT行业,面试是评估候选人技能、经验和潜力的关键环节,尤其对于大型科技公司如腾讯而言。2013年的腾讯面试题,反映了当时的行业趋势和技术热点,同时也揭示了腾讯对人才的需求...
腾讯作为中国互联网巨头之一,其校招面试笔试题一直备受关注。这些题目涵盖了广泛的IT知识领域,旨在评估应聘者的综合素质和技术能力。以下是基于标题、描述和标签所涉及到的知识点的详细解析: 一、编程基础 腾讯...
8. **大厂面试题**:大公司(如阿里、腾讯、字节跳动等)的面试题可能更加注重实际项目经验、问题解决能力和抽象思维。可能会有更复杂的设计模式、系统架构或性能优化的问题。 9. **高频面试题**:这些题目通常是...
以上就是从《数据结构和算法面试最新100题》中挑选出的部分经典题目及其解题思路,涵盖了二叉树、栈、数组、链表等多个方面的知识点。这些题目不仅能够帮助面试者巩固基础知识,还能提高解决问题的能力。
### 腾讯技术面试题解析 #### 题目一:潼前些(此题表述不清,可能是编码错误或手误) **解析**: - 这个题目看起来不太清晰,可能是由于输入错误或者编码问题导致的文字混乱。如果这是一道关于字符串处理的问题,...
### hadoop2面试题 - 2012腾讯笔试的一道算法题 #### 背景与题目概述 本文档提供了2012年腾讯笔试中一道关于字符串处理的算法题,该题目要求将字符串中的所有大写字母移动到字符串的末尾,同时保持其他字符的相对...
为了准备这些算法面试题,你需要进行系统的学习和实践。通过解决实际问题来加深理解,可以尝试LeetCode、HackerRank等在线平台的练习题。同时,阅读经典的算法书籍,如《算法导论》、《编程珠玑》等,将有助于你巩固...
这份名为“微软、谷歌、百度、腾讯,阿里等各大公司笔试面试题整理”的资源集合了全球顶级科技公司,包括微软、谷歌、百度、腾讯和阿里巴巴等,在招聘过程中的笔试和面试题目,对于软件程序员和求职者来说是极其宝贵...
这份"腾讯面试大礼包"包含了丰富的面经和面试题,旨在帮助求职者更好地应对腾讯的招聘挑战。 首先,对于"腾讯面试",我们应当知道,腾讯作为中国乃至全球领先的互联网科技公司,其面试流程通常包括在线测试、电话...
微软公司面试题通常涉及计算机科学基础、算法与数据结构、操作系统、网络、软件工程等方面。对于计算机科学基础,面试官可能询问关于编程语言特性、设计模式、计算复杂性理论的问题。在算法与数据结构部分,重点是...