题目是这样的:给你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个跑道需要多少轮才能选出最快的四匹(详解)?,排序算法数据结构
印度人搞的很全的算法,数据结构,编程技巧试题集合,绝对秒杀中国所有编程站点。如果这些题目和答案都看懂,那么微软,谷歌,亚马逊,IBM,INTEL,Oracle,Autodesk,阿里巴巴,腾讯,百度的笔试都是很轻松能通过。
面试题包含前端基础,数据库,面向对象,PHP核心技术,数据结构及算法 面试题大多来自国内大型互联网公司。新浪,腾讯,阿里,小米,百度等等
单链表常见的几个面试题 新浪,腾讯内部面试题目 题目分析 代码实现 测试用例 一,面试题目 统计链表中有效节点的个数(不含头结点)【新浪】 获取链表中倒数第K个元素【新浪】 单向链表的逆转【腾讯】 二,题目分析...
Awesome-algorithm-interview算法工程师(人工智能cv方向)面试问题及相关资料的网站收集目录网课深度学习面试资料代码...Github「面试算法练级攻略」-「LeetCode题解」-「剑指offer题解」 GithubMVision-awesome Gith
我所收集的intel比试题 面试题 2005年腾讯招聘 微软 微软亚洲技术支持中心面试题目 微创笔试题目(微创,微软在中国的合资公司) Intel笔试面试题目 IBM 社会招聘笔试题 宝洁公司(P&G)面试题目 飞利浦笔试试题 ...
16_单链表小结:腾讯面试题. mp4品17_ 线性表12. mp418_约瑟夫问题. mp4西19_ 线性表14. mp4 20_魔术师发牌问题. mp421线性表16. mp4逾22_ 线性表17. mp423_栈和队列. mp424_栈和队列2. mp4面25_ 进制转换. mp4面26_...
计算机视觉算法工程师面试中手撕代码的算法题总结 微软、商汤、旷视、头条、阿里、腾讯、百度、海康威视、第四范式算法岗,其他公司和岗位的不在此之列。 开始先大概整理,后面会分类 数据结构类 算法类 1.x的n次方...
人工智能算法方面的综合资料合集:包括求职面试、机器学习、深度学习、强化学习等方面的资料和代码(持续更新中) 近期将更新一大波互联网大厂实习内推、校招相关信息(敬请关注!) 资料目录 大厂内推:实习/春招/...
《剑指Offer》面试题Python实现 《剑指Offer》面试题C++实现 TODO 图像处理 TODO 图像处理推荐教程和面试题整理 机器学习 TODO 机器学习推荐教程和面试题整理 深度学习 通过公式、图表和代码实验介绍了 sigmoid、...
微信小程序详细图文教程 泉州大白网络科技 ...2.成本3元(腾讯云支持微信小程序2017年推广期间,3元腾讯云提供整套服务器和系统) 3.腾讯云默认分配:1.云服务器;2.云数据库;3.域名;4.小程序支持系统; 4.只要
经典算法与数据结构 Github 学习日志 2018/07/02:Leetcode完成349、350,参考[玩转数据结构-第七章]学习set和map两种底层数据结构实现 2018/07/03:... 2018/07/04:Leetcode完成347 前K个高频元素,学习优先队列和...
整理这篇内容的目的一个是笔者在之前准备面试时的一点积累,而它确实也帮助笔者在面试算法题中过关斩将,同时呢,也希望能够在金三银四给予拼搏的你,一点点帮助就好!:flexed_biceps: 文末有福利 :):smiling_face...
面试官以提问+代码相结合。问题有:自我介绍,项目介绍,这两个是必须的,在介绍项目的时候,面试官会深入问问题,会对某些细节,例如数据机构,算法复杂度,数据库连接问一些问题。 随后是专业面试,题目都是相当...
这里放的是玉川同学面试算法题,包括字节,腾讯,大厂对算法要求比较高。 我询问字节的面试官,“我作为前端而言,实际需求中可能不需要太复杂的算法,为什么面试的时候有要求呢”,面试官回答我,“实际需求说不定...
1.考察点:技术、算法、思维逻辑 技术:开发、逆向、数据结构、调试反调试、PE结构 一、开发:应用层开发、内核层开发、设计模式 应用层: 1.线程间的同步方式有哪几种? 2.线程分为普通线程和GUI线程,有什么...
其中我做了大致分类参考了bobo老师的和:分类笔记代码斑点发现链表栈阴离子树回溯法动态规划贪心算法数学设计弦乐图 :green_heart:点赞数最高的Leetcode问题-前100名 :fire:最常见的面试题 :penguin:腾讯精选练习 :...
Python算法与数据结构视频教程 课程简介 目前关于Python算法和数据结构的系统中文资料比较欠缺,笔者尝试录制视频教程帮助Python开发者掌握惯用的数据结构和算法是每个程序员需要掌握的基础知识之一,也是面试中跨...