题目链接2161. 根据给定数字划分数组中等算法原理解法模拟13ms击败27.42%时间复杂度O(N)思路很简单分别记录小于、等于和大于 pivot 的元素遍历 nums 中的每一个元素 x①xpivot加入到 prev 的顺序表中②xpivot直接记录个数③xpivot加入到 suff 的顺序表中由于加入顺序表的过程中能够保证相对顺序不变所以后续直接拼接即可Java代码class Solution { //2161. 根据给定数字划分数组 public int[] pivotArray(int[] nums, int pivot) { int nnums.length; int cnt0;//统计等于 pivot 的个数 ListInteger prevnew ArrayList(); ListInteger suffnew ArrayList(); for(int x:nums){ if(xpivot) cnt; else if(xpivot) prev.add(x); else suff.add(x); } //拼接 int index0; for(int x:prev) nums[index]x; while(cnt--0) nums[index]pivot; for(int x:suff) nums[index]x; return nums; } }