通过选择k个元素来查找数组中的最大数字

时间:2016-02-24 01:10:38

标签: arrays algorithm

给定n个元素的输入数组,其值为0-9且值为k,您可以选择k个元素以形成最大数字,这样数组中k个元素的索引按递增顺序排列。

E.g。

Input [1,4,5,9,1], k = 2. Output - 91
Input [1, 2, 1, 6, 9], k = 3. Output - 269

2 个答案:

答案 0 :(得分:0)

您确实理解任何n位数字都比任何(n-1)数字大(至少在通常的数字约定中)。因此,如果您没有0,则需要在第一个N-(k-1)中找到最大数字,并将其作为您的数字的下一个有效数字添加。它将是您在下一次迭代中开始的地方。 使用0但你需要找到解决方法(仍需要一些脑部用法)。

答案 1 :(得分:0)

如果我正确地理解了这一点,只要所有数字都在上升,你就会形成尽可能大的数字,那么解决方案不会只是:

  1. 对数组进行排序。
  2. 移至元素[n-k],
  3. 连接剩余的数字。
  4. 例如:

      

    输入[1,2,1,6,9],k = 3.

    1. 排序数组:[1,1,2,6,9]
    2. 转到[n-k]:[1,1,(2),6,9]
    3. trim and concat:269