我有100个对象,其中一些是正确的,另一些可能是不正确的。
我想找到校正只从100个对象。
我有一个函数bool isCorrect(List<object> objs)
(O(1)
),它获取x个对象,如果至少一个对象不正确,则返回false-我无法更改该函数。
每个isCorrect
呼叫都会发出网络请求。因此,您想保存请求。
iv尝试了什么?
1.运行每个对象isCorrect
-2 O(n)
.运行二进制搜索-如果返回100,则错误地拆分为50 50,依此类推...- O(log2(N))
。
最坏的情况是O(log2(N))
+O(N)
我还能找到其他更好的算法吗?
此问题对输出敏感。假设您的输出是正确的对象序列的列表,那么可以达到的最小复杂度是Omega(此列表的长度)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句