题目:一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
分析:
由于是要求数组种所有符合要求的数,所以肯定要遍历数组,时间至少为O(n);
比较直观的想法是依次遍历每个元素,找出左边最大的数,看是否比该元素小,再找出右边最小的数,看是否比该元素大,这样,时间复杂度就为O(n*n),但是题目中,给出了可以用一个额外数组的提示,因此,考虑利用空间来节省时间
在网上看了些思路,有O(n)实现的,但是跟自己的思路有些区别,现将思路描述如下</