華為OD機(jī)試- 跳房子2
跳房子,也叫跳飛機(jī),是一種世界性的兒童游戲游戲參與者需要分多個(gè)回合按順序跳到第1格直到房子的最后一格,然后獲得一次選房子的機(jī)會(huì),直到所有房子被選完,房子最多的人獲勝。
跳房子的過(guò)程中,如果有踩線等違規(guī)行為會(huì)結(jié)束當(dāng)前回合,甚至可能倒退幾步.假設(shè)房子的總格數(shù)是count,小紅每回合可能連續(xù)跳的步數(shù)都放在數(shù)組steps中,請(qǐng)問(wèn)數(shù)組中是否有一種步數(shù)的組合,可以讓小紅三個(gè)回合跳到最后一格? 如果有,請(qǐng)輸出索引和最小的步數(shù)組合(數(shù)據(jù)保證索引和最小的步數(shù)組合是唯一的)。
注意:數(shù)組中的步數(shù)可以重復(fù),但數(shù)組中的元素不能重復(fù)使用
輸入描述:
第一行輸入為房子總格數(shù)count,它是int整數(shù)類(lèi)型
第二行輸入為每回合可能連續(xù)跳的步數(shù),它是int整數(shù)數(shù)組類(lèi)型
輸出描述
返回索引和最小的滿足要求的步數(shù)組合 (順序保持steps中原有順序)
補(bǔ)充說(shuō)明:
count<=10000,3<=steps.length<=10000,-100000<=steps[i]<=100000
示例1
輸入:
9
[1,4,5,2,0,2]
輸出:
[4,5,0]
示例2
輸入:
9
[1,5,2,0,2,4]
輸出:
[5,2,2]
示例3
輸入:
12
[-1,2,4,9]
輸出:
[-1,4,9]
示例4:
輸入
15
[1,9,4,25,10,8,7,5]
輸出
[1, 4, 10]
說(shuō)明
符合條件的步數(shù)集合有
[1, 9, 5]
它的下角標(biāo)之和為:0 + 1 + 7 = 8
[1, 4, 10]
它的下角標(biāo)之和為:0 + 2 + 4 = 6
因?yàn)?6<8,故輸出[1, 4, 10]。
Java 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131023717
Python實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131032854
C++ 實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131295581
JavaScript實(shí)現(xiàn):https://blog.csdn.net/misayaaaaa/category_12199270.html
C實(shí)現(xiàn):https://renjie.blog.csdn.net/article/details/131332040