题目描述
对于一个长度为n的整数序列,你需要检查这个序列是否可以是非递减序列,假如你最多可以改变其中的一个数。
非递减序列的定义是:array[i]<=array[i+1], for 1<=i<n;
输入描述:
输入是一个长度为n的整数序列。
输出描述:
输出为; 是为1; 否为0
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String inputString = br.readLine();
String[] numberStrings = inputString.split("\\s+");
int[] numbers = new int[numberStrings.length];
for (int i=0; i<numbers.length; ++i) {
numbers[i] = Integer.parseInt(numberStrings[i]);
}
int count = 0;
if (numbers.length==1) {
System.out.println("1");
} else {
if (numbers[0]>numbers[1]) {
++count;
}
if (numbers[numbers.length-1]<numbers[numbers.length-2]) {
++count;
}
for (int i=1; i<numbers.length-1; ++i) {
if (numbers[i-1]>numbers[i]||numbers[i]>numbers[i+1]) {
++count;
numbers[i] = numbers[i-1];
}
if (count>1) {
break;
}
}
if (count>1) {
System.out.println("0");
} else {
System.out.println("1");
}
}
}
}