声明:蓝桥杯练习系统中的Java环境为1.8.0

ALGO-1


import java.util.*;

/** * 该题最容易犯错的一个点就是,你会先排序,再选出来数,但是 * 题中的要求意思是,先选数再排序,切记! */
public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc=new Scanner(System.in);
		//输入数n表示序列的长度
		int n=sc.nextInt();
		int[] a=new int[n];
		//将输入的序列数存入数组中
		for (int i = 0; i < a.length; i++) {
   
			a[i]=sc.nextInt();
		}
		//输入询问个数m
		int m=sc.nextInt();
		int[] result=new int[m];
		for (int i = 0; i < m; i++) {
   
			//第i+1次询问
			int l=sc.nextInt();
			int r=sc.nextInt();
			int k=sc.nextInt();
			int[] c=sort(a,l,r);
			//将获取到的第K大数存入数组中
			result[i]=c[c.length-k];
		}
		//循环输出结果
			for (int i = 0; i < result.length; i++) {
   
				System.out.println(result[i]);
			}
		
		}
		

	//按照要求排序566
		static int[] sort(int[] a,int l,int r){
   
			//定义排序好的数组
			int[] b=new int[r-l+1];
			for (int i = 0; i < b.length; i++) {
   
				//将选定区间的数存入数组中
				b[i]=a[l-1+i];
			}
			Arrays.sort(b);
			return b;
		}		
	}

ALGO-2


import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   
		Scanner sc = new Scanner(System.in);
		// 输入数n表示序列的长度
		long N = sc.nextLong();	
		System.out.println(getMax(N));
	}
	static long getMax(long n) {
   
		if (n < 3)
			return 2;
		// 如果n为奇数
		if (n % 2 == 1) {
   
			return n * (n - 1) * (n - 2);
		} else {
   
			// 如果n为偶数
			if (n % 3 == 0) {
   
				return (n - 1) * (n - 2) * (n - 3);
			} else {
   
				return n * (n - 1) * (n - 3);
			}
		}
	}
}

ALGO-3

	 遇到不会的题,多读几遍题,多研究,总有那么一瞬间你会恍然大悟的	


package test;

import java.util.*;

public class Main {
   

	public static void main(String[] args) {
   

		Scanner reader = new Scanner(System.in);
		// 输入K值
		int k = reader.nextInt();
		// 输入l的值
		int l = reader.nextInt();
		// 这个二维数组里面存放符合题意的数
		int[][] KGood = new int[l][k];
		// 首先当l=1的时候,所有的条件都满足,注意是从1开始
		for (int i = 1; i < k; i++) {
   
			KGood[0][i] = 1;
		}
		// 开始寻找两位数
		// i表示的是第几位
		for (int i = 1; i < l; i++) {
   
			// 第i位的数
			for (int j = 0; j < k; j++) {
   
				// 遍历每一位的数,然后进行比较看是否符合题意
				for (int m = 0; m < k; m++) {
   
					if (j != m - 1 && j != m + 1) {
   
						KGood[i][j]+=KGood[i-1][m];
						KGood[i][j]%=1000000007;
						
					}
				}
			}

		}
		int sum = 0;
		for (int i = 0; i < k; i++) {
   
			sum+=KGood[l-1][i];
			sum=sum%1000000007;
		}
		System.out.println(sum);

	}
}