顺序最大差值问题

问题描述: 给一个长度为n的整数序列, A0 - An, 找两个整数Ai, Aj(i < j), 使得Ai - Aj最大, 这里有个最优方案.

枚举所有的j, 我们只需要维护小于j的最大的Ai就可以了, 效率可以达到O(n)

int maxi = A[0], ans = 0;

for (int j = 1; j < n; j++) {

    ans = max(ans, maxi - A[j]);

    maxi = max(maxi, A[j]);

}

同理, 这类问题推广一下, 凡是涉及到顺序当中, 需要最大/最小值的, 都可以使用这种方式.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容