简单双指针
先排序、再分段,后插入,左指针每次走一步,右指针如果插入成功就走一步,否则不动。
例如1,3,3,4,5。分成13,345,然后1 看能否插入34之间,可以则看下一个,最后3,1,4,3,5.
public static int reorder (int[] prices) {
Arrays.sort(prices);
int left = 0, right = (prices.length - 1) / 2;
int mid = right;
int count = 0;
while (left < mid && right+1 < prices.length) {
if (prices[left] < prices[right] && prices[left] < prices[right + 1]) {
count++;
right++;
}
left++;
}
return count;
}
京公网安备 11010502036488号