我的一个朋友在一家公司的在线评估中遇到了这个问题,并问了我这个问题。
给出了一个整数数组,我们必须(可能)安排该数组,以使两个连续的数字之和不能被3整除。
数组
n<=10^5
的大小。如果没有这种安排,那么我们必须返回
Not Possible
。
我可以想到贪婪地填充整数,这样连续的元素之和如果不能被3整除,将得到一个O(n^2)
解决方案(但是,我不确定贪婪地填充元素是否会得出解决方案),或者我可以考虑通过查找所有可能的安排来做一个(bruteforce)DFS
,但这将是一个指数时间解决方案,对于给定的数组大小条件,在这里肯定是行不通的。
有没有O(nlogn)
或O(n)
解决方案?