1210. 连号区间数
蓝桥杯暴力过80%
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] res = new int[n];int[] copy = new int[n];for(int i=0;i<n;i++)res[i] = sc.nextInt();System.arraycopy(res, 0, copy, 0, n);int sum = 0;for(int i=0;i<n;i++) {for(int j=i;j<n;j++) {System.arraycopy(copy, 0, res, 0, n);Arrays.sort(res,i,j+1);//注意boolean f = true;for(int k=i+1;k<=j;k++) {if(res[k]!=res[k-1]+1) {f = false;break;}}if(f) {sum++;}}}System.out.println(sum);}
}
AC
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] res = new int[n];for(int i=0;i<n;i++)res[i] = sc.nextInt();int s = 0;for(int i=0;i<n;i++) {int MAX = Integer.MIN_VALUE;int MIN = Integer.MAX_VALUE;for(int j=i;j<n;j++) {MAX = Math.max(MAX, res[j]);MIN = Math.min(MIN, res[j]);if((MAX-MIN) == (j-i)) s++;}}System.out.println(s);}
}
1236. 递增三元组
蓝桥杯暴力过62.5%
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();int sum = 0;for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {for(int k=1;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}
排序二分75%
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {for(int j=1;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j]) r = mid;else l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];for(int i=1;i<=n;i++)a[i] = sc.nextInt();for(int i=1;i<=n;i++)b[i] = sc.nextInt();for(int i=1;i<=n;i++)c[i] = sc.nextInt();Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {int sl = 1,sr = n;while(sl<sr) {int mid = (sl+sr)/2;if(b[mid]>=a[i]) sr = mid;else sl = mid+1;}for(int j=sl;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j]) r = mid;else l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}System.out.println(sum);}
}
加上快读75%
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Scanner;public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));int n = Integer.parseInt(br.readLine());int[] a = new int[n+1];int[] b = new int[n+1];int[] c = new int[n+1];String[] s1 = br.readLine().split(" ");for(int i=1;i<=n;i++)a[i] = Integer.parseInt(s1[i-1]);String[] s2 = br.readLine().split(" ");for(int i=1;i<=n;i++)b[i] = Integer.parseInt(s2[i-1]);String[] s3 = br.readLine().split(" ");for(int i=1;i<=n;i++)c[i] = Integer.parseInt(s3[i-1]);Arrays.sort(a);Arrays.sort(b);Arrays.sort(c);//排序int sum = 0;for(int i=1;i<=n;i++) {int sl = 1,sr = n;while(sl<sr) {int mid = (sl+sr)/2;if(b[mid]>=a[i]) sr = mid;else sl = mid+1;}for(int j=sl;j<=n;j++) {int l = 1,r = n;while(l<r) {int mid = (l+r)/2;if(c[mid]>=b[j]) r = mid;else l = mid+1;}for(int k=l;k<=n;k++) {if(a[i]<b[j] && b[j]<c[k])sum++;}}}pw.println(sum);pw.close();}
}
1245. 特别数的和
import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int sum = 0;for(int i=1;i<=n;i++) {String ss = i+"";char[] s = (i+"").toCharArray();boolean f = false;for(int j=0;j<s.length;j++) {if(s[j] == '2'||s[j] == '0'||s[j] == '1'||s[j] == '9') {
// System.out.println(s);f = true;break;}}if(f) {sum+=Integer.parseInt(ss);}}System.out.println(sum);}
}
1204. 错误票据
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();Map<Integer,Integer> map = new HashMap<>();sc.nextLine();while(n-- != 0) {String[] s = sc.nextLine().split(" ");for(int i=0;i<s.length;i++)map.put(Integer.parseInt(s[i]),map.getOrDefault(Integer.parseInt(s[i]), 0)+1);}int MAX = Integer.MIN_VALUE;int MIN = Integer.MAX_VALUE;int y = 0;for(Entry<Integer, Integer> entry:map.entrySet()) {MAX = Math.max(MAX, entry.getKey());MIN = Math.min(MIN, entry.getKey());if(entry.getValue() == 2)y = entry.getKey();}for(int i=MIN;i<=MAX;i++) {if(!map.containsKey(i)) {System.out.print(i+" "+y);return ;}} }
}
466. 回文日期
import java.util.Scanner;public class Main{static int[] days = new int[]{0,31,28,31,30,31,30,31,31,30,31,30,31};public static boolean check(int date) {int year = date/10000;int month = date%10000 /100;int day = date%100;//年if(month == 2) {boolean f = (year%100!=0 && year%4==0)||(year%400==0);//闰年if(f) {if(day>28+1) {//是闰年的话看看2月是不是超过了29天return false;}}else {if(day>28) {//不是闰年的话看看2月是不是超过了28天return false;} }}//月if(month == 0 || month > 12)//肯定是正数其次看看是不是1到12之间return false;//日if(day == 0 || (month!=2 && day>days[month]))//正数其次是除了二月之外的月份天数不可以超过days数组对应的值return false;return true;}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int date1 = sc.nextInt();int date2 = sc.nextInt();int res = 0;//遍历四位数for(int i=1000;i<10000;i++) {int date = i,x = i;for(int j=0;j<4;j++) {date = date*10+x%10;x/=10;}//构成回文数if(date1 <= date && date <= date2 && check(date))//判断构成的回文数是不是正确日期res++;}System.out.println(res);}
}