1 public static int partitionDisjoint(int[] A) {
2 //创建一个链式集合来充当左数组
3 LinkedList<Integer> list = new LinkedList();
4 //创建一个判断标记
5 boolean flag = true;
6 //外循环 循环向左数组进行添加元素
7 for (int a = 0; a < A.length - 1; a++) {
8 //向集合添加元素
9 list.add(A[a]);
10 //排序并获取最大值
11 Collections.sort(list);
12 int max = list.getLast();
13 //重置标记的初值
14 flag = true;
15 //被循环 进行判断
16 for (int b = a + 1; b < A.length; b++) {
17 //当右数组存在小于max的值时,标记更改
18 if (max > A[b]) {
19 flag = false;
20 }
21 }
22 //标记更改 继续循环 未更改 获得长度
23 if (flag) {
24 return (a + 1);
25 }
26 }
27 return 0;
28 }