第六题(下排每个数都是先前上排那十个数在下排出现的次数)
腾讯面试题:
给你10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
举一个例子,
数值: 0,1,2,3,4,5,6,7,8,9
分配: 6,2,1,0,0,0,1,0,0,0
0 在下排出现了6 次,1 在下排出现了2 次,
2 在下排出现了1 次,3 在下排出现了0 次....
以此类推..
思路:如果采用暴力穷举法的话,时间效率不好。仔细观察不难得知,下排数字总和加起来为10,可以利用这个性质,通过递归,得到下排可能的排列结果,然后再判断这些结果是否满足下排个数是上排对应位置数字的出现频率,得出最终结果。
代码:
namespace MS100P_6
{const int Len = 10;bool isLegal(int *A, int n){int count = 0;for (int i = 0; i < n; i++){int frequency = 0;for (int j = 0; j < n; j++){if (i == A[j])frequency++;}if (A[i] != frequency)return false;}return true;}void genArray(int *A, int n, int Sum) {if (n < 1) return;if (n == 1){A[0] = Sum;if (isLegal(A, Len)){for (int i = 0; i < Len; i++)cout << A[i] << ' ';cout << endl;}}elsefor (int i = 0; i<Sum; ++i){A[n - 1] = i;genArray(A, n - 1, Sum - i);}}void test(){int A[Len];for (int i = 0; i < Len; i++)cout << i << ' ';cout << endl;genArray(A, Len, Len);}
}
第六题(下排每个数都是先前上排那十个数在下排出现的次数)相关推荐
- 根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数...
如: 上排数组A:0,1,2,3,4,5,6,7,8,9 下排数组B:6,2,1,0,0,0,1,0,0,0 我比较无脑的记住了网上找的一个结论 0出现的次数为n-4,1出现的次数为2.2出现的次数为 ...
- 面试题整理18 根据上排给出十个数,在其下排填出对应的十个数
题目: 给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5,6,7,8 ...
- 【编程题目】给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数...
第 6 题(数组) 腾讯面试题: 给你 10 分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5 ...
- 新方法-根据上排给出十个数,在其下排填出对应的十个数
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5,6,7,8,9] ...
- 腾讯面试题:根据上排给出的十个数,在其下排填出对应的十个数。
版权所有.所有权利保留. 欢迎转载,转载时请注明出处: http://blog.csdn.net/xiaofei_it/article/details/17172769 根据上排给出的十个数,在其下排 ...
- 腾讯面试题,给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
题目: 给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5,6,7,8,9] 举一个例子 ...
- c语言10个数输出最大数,C语言怎么输入十个数输出最大值
C语言怎么输入十个数输出最大值 C语言求输入的10个数中最大值的编程方法如下: 1.首先需要定义一个整型数组空间,因为这里需要输入十个数,所以数组空间为10个.int a[10]; 2.接着定义一个最 ...
- (Google)谷歌笔试算法题:要求相邻的两个数都不小于或者不大于其本身的排序
如题,要求相邻的两个数都不小于或者不大于其本身的排序, 那么也就是说每个数字必须同时大于等于或者小于等于它左右两边的数字,例如 3>=2<=6,那么这里2就是同时同于等于3且小于等于6 ...
- 合肥工业大学机器人技术五十六题
合肥工业大学机器人技术五十六题 题目要求 //拿球后行为,利用已有 Worldmodel(21) (1)在 playOn 模式下,拿到球以后朝前方快速带球. (2)在 PlayOn 模式下,拿到球以后 ...
最新文章
- Xamarin Essentials教程数据传输DataTransfer
- 基于Mahout的电影推荐系统
- python绘制指数函数图像及性质_指数函数图像及其性质正式版
- 数据结构与算法一篇帮助你吃下KMP算法
- P5290-[十二省联考2019]春节十二响【贪心,堆】
- gradle-com.android.build.api.transform.TransformException:Error while generating the main dex list
- js List 对象封装【原创】
- n平方的求和公式_高中数学:数列求和及数列的综合应用,掌握常见模型
- 抽象数据类型和Python类的基础
- python 实现字典树_python字典树(Trie)的实现
- call 在mysql,在MYSQL上选择CASE和CALL程序
- mybatis 高级映射 - 一对多查询 - collection
- CAd常用的系统变量
- python与金融工程的区别_科研进阶 | 纽约大学 | 金融工程、量化金融、商业分析:Python金融工程分析...
- HTML5实现的树叶飘落动画特效
- [SPOJ P104]HIGH - Highways(Matrix-Tree定理)
- w7设置双显示器_Win7如何设置双显示器?设置双显示器的方法
- 小峰峰的pat甲级刷题记录1030
- 开源项目【LikeCloudMusic 云音】仿网易云音乐
- 英语学习(Spring文档阅读生词 2)