每日一道算法题:Google 2009年某笔试题:求出元素位于0到9之间的集合A中大于某个给定正整数K的组成的最小正整数。
来源:互联网 发布:五十音图 软件 编辑:程序博客网 时间:2024/05/29 20:05
这题是Google 2009年在华南地区的笔试题,题目如下:
给定一个集合A = [0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含),指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。比如,A = [0,1],K = 21,那么输出结构应该为100。
解题思路:读完题目后,最开始想到的是依次求出给定正整数K的最高位、次高位. . .,再遍历集合A,针对K的每个位置的数值,会产生下面三种情况:
(1)如果集合中存在某个等于K的最高位m的正整数A[i],继续比较次高位;
(2)如果集合中存在某个大于K的最高位的最小正整数A[i],继续比较次高位;
(3)如果集合中不存在大于或者等于K的最高位的正整数,则在集合中找出小于K的最高位的最大正整数A[i],并计算出K的位数n,在A[i]后面添加n个0即可。
根据上面这三种情况,依次计算出满足题目要求的数的每一位的数值,再输出该数。
0 0
- 每日一道算法题:Google 2009年某笔试题:求出元素位于0到9之间的集合A中大于某个给定正整数K的组成的最小正整数。
- 谷歌笔试题--给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 给定一个集合A=[0,1,3,8](该集合中的元素都是在0,9之间的数字,但未必全部包含), 指定任意一个正整数K,请用A中的元素组成一个大于K的最小正整数。
- 123 请用 A 中的元素组成一个大于 K 的最小正整数
- 一道算法题:求和为某正整数的所有正整数集合
- 算法笔试题——N个正整数联接,组成最小的长整数
- 利用有限的几个数字(0~9)求一个数A大于正整数K且是最小的那个
- 大于K的最小正整数 的一种解法
- 每日一道算法题:输出和为n的连续正整数序列
- 每日一道算法题:a~z包括大小写与0~9组成的N个数,用最快的方式把其中重复的元素挑出来。
- 正整数数组的最小不可组成和
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”[2014百度笔试题]
- 整型数组处理算法(九)给定任意一个正整数,求比这个数大且最小的“不重复数”(性能优化)[2014百度笔试题]
- 给定一个数组,元素都是正整数,要求返回这些元素所组成的最大数
- (百度笔试题)给定任意一个正整数,求比这个数大且最小的“不重复数”。
- 对于一个n位正整数a,去掉其中任意k(k<=n)个数字后,剩下的数字按原次序排列可以组成一个新的正整数。设计一个删数算法,使得剩下的数字组成的正整数最小。例如,a=13243221,k=5,输出:12
- 给定四个正整数,求出四个数的最大值并输出
- block 防止循环引用
- hdu 1004 Let the Balloon Rise
- MySQL查看状态及简单优化
- 题目1013:开门人和关门人
- 使用Hibernate4中 @DynamicInsert 和 @DynamicUpdate 解决数据库默认值被改变
- 每日一道算法题:Google 2009年某笔试题:求出元素位于0到9之间的集合A中大于某个给定正整数K的组成的最小正整数。
- 九度OJ1003
- nginx相关文章
- android自定义圆形进度条
- 把现有Unity3d游戏向Windows Phone 8.1移植(编译顺序)
- Nachos 课程设计task1.1
- Android NDK编译本地文件以及引用第三方so文件
- [Vim]Mac下如何安装ctags、Exuberant Ctags、以及出现E433: No tags file的解决方法
- 下载并编译CyanogenMod源代码