如何解决用通配符对卡片进行排序
| 我正在编写纸牌游戏,我需要按其等级对一叠纸牌进行排序。使它们形成一个无间隙的序列。 在此特殊游戏中,值2的卡可以用作通配卡,例如 2 3 5
应该像这样排序
3 2 5
因为2取代了4,否则将不是有效的序列。
但是卡
2 3 4
应该保持原样。
限制:只能使用一个\'2 \'作为通配符。
2 2 3 4
也会保持原样,因为前2个将替换ACE(或1,无论您叫什么)。
以下内容将不是有效的输入序列,因为必须将2之一用作通配符,而不能将其用作通配符。这样就不可能构成一个无缝的序列。
2 4 2 6
现在我很难弄清楚是否将2用作通配符。一旦知道了,我想我就可以完成其余的排序
感谢您提供有关此问题的算法帮助!
解决方法
根据您对新要求的说明进行编辑:
您的意思是,您永远不会获得无法形成完整序列的数据。 (如果我能在现实世界中获得这样的保证。)
你有2吗?
否:您的顺序必须已经毫无间隙。
是:您需要弄清楚放置位置。
对您的输入进行排序。你看到差距了吗?由于只能将1用作通配符,因此最多可以有一个空格。
否:将2视为合法的第二。
是:将2移动到空白处以进行填充。
根据您的新要求进行编辑:
在这种情况下,只需寻找最大的单个间隙,如果有2个可用间隙,则将其插入2个间隙。
原始答案:
由于您的序列必须是无间隙的,因此您可以算出2的数目以及所有存在的间隙的大小。然后,仅填写您有足够2s的最大间隙。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。