教学网站开发应用方案,住房和城乡建设部网站三定,公司网站建设网站优化网络推广,东海军事新闻最新消息给定一个数组 A#xff0c;将其划分为两个不相交#xff08;没有公共元素#xff09;的连续子数组 left 和 right#xff0c; 使得#xff1a;
left 中的每个元素都小于或等于 right 中的每个元素。 left 和 right 都是非空的。 left 要尽可能小。 在完成这样的分组后返回…给定一个数组 A将其划分为两个不相交没有公共元素的连续子数组 left 和 right 使得
left 中的每个元素都小于或等于 right 中的每个元素。 left 和 right 都是非空的。 left 要尽可能小。 在完成这样的分组后返回 left 的长度。可以保证存在这样的划分方法。
示例 1
输入[5,0,3,8,6] 输出3 解释left [5,0,3]right [8,6]
代码
class Solution {public int partitionDisjoint(int[] A) {int nA.length,maxInteger.MAX_VALUE,min-1;int[] dnew int[n];for (int in-1;i0;i--)//计算区间【in-1】内的最小值{max Math.min(A[i],max);id[i]max;}for(int i0;in-1;i){min Math.max(min,A[i]);计算区间【0i】内的最大值if(mind[i1]) return i1;//左边区间最大值小于右边区间最小值}return 0;}
}