题目

代码示例
import java.util.Scanner;
public class Main {
private static void calc(Integer[] nums){
int start = nums.length - 1;
int end = nums.length - 1;
for(int i = 0; i < nums.length - 1; i++){
if(nums[i] > nums[i + 1]){
start = i;
break;
}
}
for(int i = start + 1; i < nums.length - 1; i++){
if (nums[i] < nums[i + 1]){
end = i;
break;
}
}
if(start < end){
// 判断调换后,能否在连接点递增
if(start > 0 && nums[start - 1] > nums[end]){
System.out.println("no");
return;
}
if(end < (nums.length - 1) && nums[start] > nums[end + 1]){
System.out.println("no");
return;
}
// 判断后面是否是递增
for(int i = end + 1; i < nums.length - 1; i++){
if(nums[i] > nums[i + 1]){
System.out.println("no");
return;
}
}
}
System.out.println("yes");
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNextInt()){
int n = cin.nextInt();
Integer[] nums = new Integer[n];
for(int i = 0; i < n; i++){
nums[i] = cin.nextInt();
}
calc(nums);
}
}
}
还没有评论,来说两句吧...