【发布时间】:2019-11-11 08:12:15
【问题描述】:
我的一个朋友在对一家公司进行在线评估时遇到了这个问题,并问了我这个问题。
给定一个整数数组,我们必须(可能)排列数组,使得没有两个连续数字的总和可以被 3 整除。
数组大小
n<=10^5。如果没有这样的安排,那么我们必须返回
Not Possible。
我可以考虑贪婪地填充整数,这样连续元素的总和如果不能被 3 整除,就会给出O(n^2) 解决方案(但是我不确定贪婪地填充元素是否会在这里给出解决方案) 或者我可以考虑通过查看所有可能的安排来做一个(蛮力)DFS,但这将是一个指数时间解决方案,并且对于给定的数组大小条件肯定不会在这里工作。
是否有任何O(nlogn) 或O(n) 解决方案可以解决这个问题?
【问题讨论】: