现在的位置: 首页 > 综合 > 正文

GOOGLE面试题

2013年01月24日 ⁄ 综合 ⁄ 共 2216字 ⁄ 字号 评论关闭

给定一个数组A,里面只出现0-9这10个数字,但不一定全部出现,然后给定一个K的值,求A中大于K的整数当中最小的一个,并输出。例如A={0,1}, k =12,则结果为100.    请编程实现。

 

 

我的思路如下,设输入为M(各位依次为 M(n-1) M(n-2) ..... M1 M0),输出为N。

 

(1).如果在A数组中存在数字M(n-1) ,则问题可转化成,求大于数字M‘(各位依次为 M(n-2) ..... M1 M0)的最小整数;

 

(2).在(1)情况不成立的情况下,如果A中存在大于M(n-1) 的数字A[x],则问题可简化为,求解以A[x]为最高位的、由A中数字组成的最小n位数。

 

(3).在(3)情况不成立的情况下,问题可简化为,求由A中数字组成的,以A[0](A[0]为0,则取A[1])为最高位的最小n位数。

 

 

下面是粗略的实现,欢迎指正:

 

 

抱歉!评论已关闭.