腾讯面试题:根据上排给出的十个数,在其下排填出对应的十个数。
版权所有。所有权利保留。
欢迎转载,转载时请注明出处:
http://blog.csdn.net/xiaofei_it/article/details/17172769
根据上排给出的十个数,在其下排填出对应的十个数,要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
0,1,2,3,4,5,6,7,8,9
答案是:
6,2,1,0,0,0,1,0,0,0
我在这里使用DFS,并且使用两个函数互相递归。
代码如下:
#include <iostream>
#define MAX 10
using namespace std;int a[MAX],su;void output()
{for (int i=0;i<MAX;i++)cout<<a[i]<<' ';cout<<endl;
}void alloc(int,int,int);
void go(int n)//尝试第n位
{if (n==MAX){output();return;}int have=0;for (int i=0;i<MAX;i++)if (a[i]==n) have++;int empty=0;for (int i=n;i<MAX;i++)if (a[i]==-1) empty++;int pos;for (pos=n+1;pos<MAX;pos++)if (a[pos]==-1) break;if (a[n]!=-1){if (empty<a[n]-have||a[n]<have)return;alloc(n,a[n]-have,pos);}else{for (a[n]=n>have?n:have;a[n]<=have+empty;a[n]++){if (a[n]!=n)alloc(n,a[n]-have,pos);else if (a[n]-1-have>=0)alloc(n,a[n]-1-have,pos);}a[n]=-1;}
}void alloc(int n,int quantity,int pos)//在pos位之后分配quantity个n
{if (quantity==0){go(n+1);return;}int empty=0;for (int i=pos+1;i<MAX;i++)if (a[i]==-1) empty++;int p;for (p=pos+1;p<MAX;p++)if (a[p]==-1) break;if (pos>=MAX) return;a[pos]=n;alloc(n,quantity-1,p);a[pos]=-1;if (empty>=quantity)alloc(n,quantity,p);
}int main()
{for (int i=0;i<MAX;i++) a[i]=-1;go(0);return 0;
}
腾讯面试题:根据上排给出的十个数,在其下排填出对应的十个数。相关推荐
- 腾讯面试题,给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
题目: 给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数. 上排的十个数如下: [0,1,2,3,4,5,6,7,8,9] 举一个例子 ...
- 面试题整理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] ...
- 根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数...
如: 上排数组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出现的次数为 ...
- 【转】IT名企面试:腾讯笔试题(2)
摘要:想要进入腾讯公司,面试笔试题是一定要有所准备的.那么这里我们总结了一些腾讯笔试题,例如:const的含义及实现机制等问题. 腾讯是国内数一数二的IT企业了.那么每年想要进入腾讯公司的应聘者也是络 ...
- 程序员求助:腾讯面试题,64匹马8个跑道,多少轮选出最快的四匹
昨天,有网友私信我,说去阿里面试,彻底的被打击到了.问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题.无独有偶,今天笔 ...
- java 2017腾讯面试题_腾讯2017刁难面试题,是不是大神就看你会做几题
原标题:腾讯2017刁难面试题,是不是大神就看你会做几题 一.今日头条2017笔试题(决策问题) 现在有两堆石子,小今与小条玩游戏,2个人都足够聪明,两个人规定:每次每人只能从其中一堆中取走1个或2个 ...
- python编辑距离正则匹配_详解一道腾讯面试题:编辑距离
原标题:详解一道腾讯面试题:编辑距离 来自公众号:labuladong 预计阅读时间:8 分钟 前几天在网上看到一份鹅场的面试题,算法部分大半是动态规划,最后一题就是写一个计算编辑距离的函数,今天就专 ...
最新文章
- vs发布免安装文件_戒掉PC,免pc开发,cloud ide and debug设想
- 企业级Python开发大佬利用网络爬虫技术实现自动发送天气预告邮件
- 653. Two Sum IV - Input is a BST
- java中挂起和恢复,应用程序“未能及时恢复”并挂起
- java shirofilter_Spring项目集成ShiroFilter简单实现权限管理
- 初学者python笔记(内置函数_1)
- [Oracle][Standby][PDB]在PDB中修改参数,设置范围为 SPFILE,报 ORA-65099错误
- C语言范例学习03-上
- 换服务器原网站数据会丢失吗,ecs服务器更换操作系统后原服务器数据还在吗?...
- Android小项目--2048小游戏,flutter人脸识别插件
- Asp.Net集成支付宝当面付接口报ISV权限不足
- 私域运营是不是就是社群运营?
- (软考高级、高项)信息系统项目管理师(第三版)过关经验
- 通俗易懂讲清502、503、504是什么
- 常见的python连接数据库包
- 最长回文子串Java
- MySQL分表后,如何做分页查询?
- 五家共井c语言,五家共井—最早的不定方程
- android圆形巡检动画,基于Android平台的工程项目现场巡检管理系统
- 深度学习模型移植的移动端框架