对于一个长度为 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); } }