您已经收到了一袋吃喝玩乐的东西。大家都知道,为了最欣赏不同的口味,您需要在不同的口味之间旋转。
基本:
- 一次只能吃一吃喝玩乐
- 吃吃喝玩乐的顺序必须定期。
- 每个时期最多只能包含一种风味。
- 你的包里只有这么多吃喝玩乐。吃的吃喝玩乐的味道不能超过包中的味道。
- 您想吃尽可能多的吃喝玩乐(可能并不总是可能的)
例子:
假设您以3个红色,2个蓝色和3个绿色彩虹糖开始:
R B G R B G R G Invalid: The last R must be followed by a B, not a G
R B G R B G R Valid, but sub-optimal
R R R Valid, but sub-optimal
R G B R G B R G Valid and optimal
G R B G R B G R Also valid and optimal (there are multiple good solutions)
输入输出
- 您将获得一个非空的正整数列表,用于颜色计数。(以上示例为
[3,2,3])。 - 您需要返回一个包含有效和最佳排序的列表。
- 您将使用输入列表中的索引,而不是使用颜色。(上面的最后一个示例输出是
[2,0,1,2,0,1,2,0])。 - 您的输出可能是0索引或1索引。我的示例将以0索引
测试用例
1 0
4 0 0 0 0
4 1 0 0 0 0
3 1 0 1 0 or 0 0 0
5 2 2 0 1 2 0 1 2 0
2 3 5 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2
2 4 5 2 1 2 1 2 1 2 1 2
3 4 5 2 1 0 2 1 0 2 1 0 2 1 or 1 2 0 1 2 0 1 2 0 1 2
1 1 1 1 1 6 5 0 1 2 3 4 5 (lots of other solutions)
1 1 1 1 1 8 5 5 5 5 5 5 5 5
2 4 6 8 3 2 1 3 2 1 3 2 1 3 2 1 3 2
这是一个代码问题,因此请以您喜欢的语言使您的解决方案尽可能短!
1
可能与此相关
—
Jonathan Allan'3
@JonathanAllan,这就是为什么我需要一台计算机来确保吃喝玩乐的原因:)
—
Nathan Merrill