楼主三面那题是不是计算降序的个数, 比如,5,3算1个降序,记录下标(i,j),如果满足 (i == 0 || arr[i - 1] < arr[j]) && (j == arr.length - 1 || arr[j + 1] > arr[i]) 则可以直接交换实现排序。 比如,5,3; 4,2算两个独立的降序,记录它们的下标位置(i1,j1),(i2,j2),如果满足: arr[i1] > arr[i2] && arr[j1] > arr[j2] && (i1 == 0 || arr[i1-1] < arr[j2]) && (j2 == arr.length - 1 || arr[j2+1] > arr[i1]), 说明可以交换实现排序。 再比如, 2,5,4,3, 6算一个连续降序,记录起始位置和终止位置(i, j), 如果满足: (i == 0 || arr[i - 1] < arr[j]) && (j == arr.length - 1 || arr[j + 1] > arr[i]) 则可以通过旋转来实现排序。 而其它情况,比如同时包含连续和独立降序,或两个以上的独立降序,都无法满足条件。如果没有降序存在,则直接是满足条件的。 是这样吗😂
2 3

相关推荐

牛客网
牛客企业服务