对于一个长度为 n 的整数序列,你需要检查这个序列最多改变一个数后是否可以是非递减序列。
非递减序列的定义是:array[i]<=array[i+1] , for 1<=i<n;
数据范围:
, 数组中的值满足 
输入是一个长度为n的整数序列。
输出为; 是为1; 否为0
3 4 6 5 5 7 8
1
将6变成4, 序列变成 [3 4 4 5 5 7 8],符合非递减序列,因此输出1
3 4 6 5 4 7 8
0
n的取值范围为: [2, 1000]
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String[] split = sc.nextLine().trim().split(" ");
int[] arr = new int[split.length];
for (int i = 0; i < split.length; i++) {
arr[i] = Integer.parseInt(split[i]);
}
System.out.println(check(arr));
}
}
public static int check(int[] nums) {
if (nums.length == 1) return 0;
boolean flag = nums[0] <= nums[1] ? true : false;
//开始遍历
for (int i = 1; i < nums.length - 1; i++) {
//出现逆序
if (nums[i] > nums[i + 1]) {
//还有修改的机会
if (flag) {
//方案1:将i缩小至 i+1
if (nums[i + 1] >= nums[i - 1]) nums[i] = nums[i + 1];
//方案2:将i+1扩大至i
else nums[i + 1] = nums[i];
flag = false;//用完了唯一的修改机会
} else return 0; //没有机会,直接返回
}
}
return 1;
}
} import java.util.Scanner;
/**
* @Author: coderjjp
* @Date: 2020-05-10 13:59
* @Description: 非递减序列
* @version: 1.0
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] s = sc.nextLine().split(" ");
int nums[] = new int[s.length];
for (int i = 0; i < s.length; i++)
nums[i] = Integer.valueOf(s[i]);
int chance = 1;
for (int i = 1; i < s.length; i++){
if (nums[i] < nums[i-1]){
if (chance ==0){
System.out.println(0);
return;
}else {
chance--;
if (i - 2 < 0 || nums[i] >= nums[i-2])//此时把i-1变小
continue;
else
nums[i] = nums[i-1];
}
}
}
System.out.println(1);
}
} import java.util.*;
public class Main
{
public static void main(String [] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNextLine())
{
String str=sc.nextLine();
String [] arr=str.split(" ");
int [] arr2=new int[arr.length];
for(int i=0;i<arr.length;i++)
{
arr2[i]=Integer.parseInt(arr[i]);
}
int count=0;//不满足要求的次数
for(int i=0;i<arr2.length-1;i++)
{
int a=arr2[i+1]-arr2[i];
if(a<0)
{
count++;
}
}
if(count>1)
{
System.out.println(0);
}
else
{
System.out.println(1);
}
}
}
} import java.util.ArrayList;
import java.util.Scanner;
public class Main {
/**
* 运行时间:33ms
*
* 占用内存:10432k
* */
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] s = scanner.nextLine().split(" ");
ArrayList<Integer> list = new ArrayList<>();
for (String s1 : s) {
list.add(Integer.parseInt(s1));
}
int count=0;
for (int i = 1; i < list.size(); i++) {
if (list.get(i)<list.get(i-1))
count++;
}
System.out.println(count>=2?0:1);
}
}
import java.io.*;
public class Main{
public static void main(String[] args) throws Exception{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] str = bf.readLine().split(" ");
int[] arr = new int[str.length];
int count = 0;
for(int i = 0;i < str.length;i++){
arr[i] = Integer.parseInt(str[i]);
}
for(int j = 0;j < arr.length - 1;j++){
if(arr[j] > arr[j + 1]){
arr[j] = arr[j - 1];
j--;
count += 1;
}
if(count == 2){
System.out.println(0);
break;
}
}
if(count <= 1){
System.out.println(1);
}
}
} import java.util.ArrayList;
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
String[] strs = line.split(" ");
ArrayList<Integer> list = new ArrayList<>();
for (String str : strs) {
String s = String.valueOf(str);
list.add(Integer.parseInt(s));
}
int conut=0;
for (int i = 0; i < list.size(); i++) {
if (i<list.size()-1){
if ( list.get(i) > list.get(i+1) ){
conut++;
}
}
}
if(conut == 1 || conut == 0){
System.out.println(1);
}else {
System.out.println(0);
}
}
} import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc= new Scanner(System.in);
String str=sc.nextLine();
sc.close();
String[] s = str.split(" ");
int count=0;
for(int i=1;i<s.length;i++){
if(Integer.parseInt(s[i-1])>Integer.parseInt(s[i])){
count++;
if(count>1)
break;
if(i>1){
if(Integer.parseInt(s[i-2])<=Integer.parseInt(s[i]))
s[i-1]=s[i-2];
else
s[i]=s[i-1];
}else
s[i-1]=s[i];
}
}
if(count>1)
System.out.println(0);
else
System.out.println(1);
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
String[] strlen = str.split(" ");
int len = strlen.length;
int[] a = new int[len];
int i = 0;
for (i = 0;i<len;i++){
a[i] = Integer.parseInt(strlen[i]);
}
int index = 0;
for (i = 1;i<len;i++){
if (a[i]<a[i-1])
index++;
}
if (index <= 1)
System.out.println(1);
else
System.out.println(0);
}
}