8.24京东
1.分最大块,使得每个小块排完序和大块排完序序列是一样的。
从右往左,先保存当前位置往后最小的值,然后,再从头到尾遍历一遍
[2,1,3,4,4]分成[2,1],[3],[4],[4]最多分4块,[5,4,3,2,1]最多分一块[5,4,3,2,1]
public int maxChunksToSorted(int[] arr) { if (arr.length == 0) return 0; int[] mins = new int[arr.length]; mins[arr.length - 1] = arr[arr.length - 1]; for (int i = arr.length - 2; i >= 0; i--) { mins[i] = Math.min(arr[i], mins[i + 1]); } int count = 1; int pre = arr[0]; for (int i = 1; i < arr.length; i++) { if (pre > mins[i]) { if (arr[i] > pre) pre = arr[i]; } else { count++; pre = arr[i]; } } return count; }
2.从一个图里面删除点,问最小删除多少个点,可以断开所有的线:
不会:
和POJ1966有点像
本文来自博客园,作者:LeeJuly,转载请注明原文链接:https://www.cnblogs.com/peterleee/p/11407218.html

浙公网安备 33010602011771号