这是一道面试题:
在整数数组中找到最大可能的差异,使得较小的整数出现在数组的前面。
约束:数字不是唯一的。范围是java的整数范围。(或任何其他语言)
例子:
输入 1:{1, 100, 2, 105, -10, 30, 100}
最大的差异在 -10 和 100 -> 110 之间(这里 -10 位于第 5 个索引处,100 位于第 7 个索引处)
输入 2:{1、100、2、105、-10、30、80}
最大的差异在 1 和 105 -> 104 之间(这里 1 位于第 1 个索引处,105 位于第 4 个索引处)
可能的解决方案:
一种方法是检查所有可能的差异并跟踪迄今为止发现的最大差异 O(n^2) 复杂度。
这可以在 O(n^2) 时间内完成吗?