Leet代码中有一个算法叫做K空槽我不明白这些限制。我试图对这个问题作一个更好的解释,但找不到具体如下:
有一个有N个槽的花园。每一个槽里都有一朵花N
花将在N天内一朵朵绽放。每天都会有
只有一朵花在开花
从那时起。
给定一个数组,花由1到N的数字组成
这个数组代表了花在那天开放的地方。
例如,flowers[i]=x表示开花的唯一花
在第二天,我会在X位置,我和X会在范围内
从1到N。
也给出了整数k,你需要输出哪一天存在
两朵花在盛开的状态,以及花的数量
它们之间是k,这些花没有开花。
如果没有这一天,输出-1。
例1:
输入:
花:[1,3,2]
K:1分
输出:2
说明:第二天,第一朵花和第三朵花
变得盛开。
例2:
输入:
花:[1,2,3]
k:1分
输出:-1
注:
给定的数组将在[12000]范围内。
我想自己解决我想知道这个问题是否有更简单的解释。我不明白k输入。我不明白为什么第一个示例返回2,而第二个示例返回-1。
最佳答案
根据问题陈述:
1)有一个有N个槽的花园。每一个槽里都有一朵花N朵花将在N天内一朵朵绽放每天都会有一朵花盛开,从那时起它就处于盛开状态
它基本上告诉我们有一个大小为N的数组,这是一个可以让花每天开花的槽所以数组大小会告诉你花的数目。
2)给定一个数组,花的数目从1到N。数组中的每个数字代表当天花开放的地方。
arr[i]将告诉你花将在哪一个时隙开花,而i(索引)将告诉你花将在哪一天开花。
例如:
[1,3,2]这里说明
第一天:花将在第一个插槽开花。
第二天:花将在3号槽开花。
第三天:花将在2号槽开花
3)也给出一个整数K,你需要输出哪一天在开花的状态下存在两朵花,并且它们之间的花数是K,这些花不开花。
从这句话中,我们了解到当两朵开花的花在这些槽中时,我们必须输出它们之间的槽应该是空的,并且它们之间的槽数等于k。如果没有这样的槽,则返回-1。
第一个例子[1,3,2]如上所述,在第2天,花将在第3槽开花,在第1天,花将在第1槽开花,因此第2天空闲的槽数为1(等于k)因此,产出是第2天。
对于第二个例子,我们看到花在连续的槽中,所以在它们之间不存在未开花的花槽,因此输出是-1。
希望这有帮助!