蓝桥杯算法考前复习要点和归纳总结

 

一、重要知识要点

1、穷举法   2、枚举法   3、动态规划   4、回溯法   5、图论   6、深度优先搜索(DFS)   7、广度优先搜索(BFS )

8、二叉树   9、递归  10、分治法、矩阵法   11、排列组合   12、素数、质数、水仙花数  13、欧几里得定理gcd  

14、求最大公约数、最小公倍数  15、海伦公式(求三角形面积)  16、博弈论  17、贪心 18、二分查找法 

19、hash表  20、日期计算  21、矩形快速幂  22、树形DP  23、最短路径  24、最小生成树

二、蓝桥杯解题技巧

1、结果填空题:首先判断是否可以借助日历、计算器、WPS、txt文本、Notepad或者数学方法等工具进行快速求解,

                           最后再选择用Eclipse代码暴力破解。

2、代码填空题:先通过多组数据样本填空测试输出结果是什么,尤其是方法返回的结果。

                           如果经过多组数据测试答案输出结果都正确,则会大大地减少了读题、解题过程的时间。

3、毕竟之前编程压轴题更倾向于乱搞出奇迹。

4、敲代码之前先把所有题目和分数都大致过一遍,先选简单的或者分数很高但很有把握的写,再选其他题目。

5、比较难的题目可以先写伪代码,把思路搞清楚了再码往往比上来直接撸代码来得高效。

6、蓝桥杯考试时间虽然不短,但是题量很大。因此,时间的合理分配显得非常重要。

7、蓝桥杯答题的分数看的是测试数据的通过率,所有务必把能过的都码上去。

三、java代码知识要点

1、输入:static Scannner sc = new Scanenr(System.in);

2、换行:sc.nextLine 整数sc.nextInt 小数sc.nextDouble

3、一维数组输出:java.util.Arrays.toString(A); (A为一维数组)

3、多维数组输出:java.util.Arrays.deepToString(B); (B为多维数组)

4、两数字交换: int temp=a1; a1=a2; a2=temp;

5、一维数组长度:int A[] = {1,2,3,4,5} A.length=5

6、二维数组长度:int[][] A = new int[3][4] A.length=3 A[0].length=4

7、数组长度总结:A.length 表示有多少行 A[i].length表示第行列有多少列

7、break和continue:break结束整个循环体,continue结束单个循环。

8、基本数据类型转大数:Bigdecimal c = Bigdecimal.value(X);

9、强制转换:long b = (long)a;

10、字符串问题:String类型定义的是字符串,char[]定义的是字符数组

11、String转化为char:char[] c1 = s1.toCharArrays(s1);

12、字符串分割:分割的字符串必须用字符串数组存储String[] str = s.split("/");

13、强制结束进程:system.exit(0);

14、int和Integer:自动装箱:Integer.valueOf(int i),自动拆箱:i.intValue()

15、对象类比较用equals,地址比较用==。

16、定义integer类,-128~127存在缓存中,其他的需要创建一个新的Integer对象

17、定义数字变量,int比Integer快。

18、定义当前时间:double startTime = System.currentTimeMillis();

19、声明boolean数组:Boolean Bool[] = new boolean[xx];

20、构造器:public 类名(){}  (构造方法没有返回值, 构造方法:一般用于给对象赋初始值)

21、this关键字:(1)指代当前对象(2)指代当前类(3)指代构造方法(只能放在首行)

22、求最大公约数和最小公倍数时需要求绝对值:Math.abs();

23、java输出换行:System.out.print("\n"+......);

24、java字符串和字符数组的转换

(1)String字符串转化为字符数组:String->char[] char[] a1 = s1.toCharArrays();

(2)char[]字符数组转化为字符串:char[]->String String[] s1 = String.valueOf(a1);

(2)char[]字符数组转化为字符串:char[]->String String s1 = new String(a1);

(3)String查找字符串中的一个字符:char a = String.charAt(index);

(3)String查找字符串中的一个字符:char a = String.codePointAt(index);

(4)String字符串转换成大写:String up = s1.toUppercase();

(5)String字符串转化为小写:String low = s1.toLowercase();

(6)char字符转化成大写:String upch = a1.toString().toLowercase();

(7)char字符转化成小写:String lowch = a1.toString().toUppercase();

(8)String字符串替换:String rep = s1replace(oldChar, newChar);

(9)String字符串字符char的第一次索引:int a = s1.indexOf(String str);

(10)String字符串字符char的最后一次索引:int a = s1.lastIndexOf();

(11)String字符串的子字符串:String sub = s1.substring(beginIndex);

(11)String字符串的子字符串:String sub = s1.substring(beginIndex,endIndex);

(12)String字符串删掉最后一个字符:s = s.subString(0,s.length-1);

(13)BigInteger大数操作:

    (1)定义:BigInteger a,b,c;

    (2)输入:a = sc.nextBigInteger();

    (3)加法:c = a.add(b);

    (4)减法:c = a.subtract(b);

    (5)乘法:c = a.multiply(b);

    (6)除法:c = a.divide(b);

    (7)取余:c = a.remainder(b);

(14)二维数组克隆:

    (1)copy = c.clone(); //直接复制全部

    (2)System.arraycopy(c,0,copy,0,N); //最底层,复制c到copy,从0-N

    (3)copy = Arrays.copyOf(c,N); //复制c到copy,复制的长度为N

    (4)copy = Arrays.copyOfRange(c,0,N);//复制c到copy,从c的第0到N个复制

    效率:System.arraycopy > Arrays.copyOf > for循环 > clone

25、Java线程安全问题

26、字符串切割再赋值操作:

static int year,month,day,Mon;

static Scanner sc = new Scanner(System.in);

static String str = sc.next();

String[] s = str.split("/");

year = Integer.valueOf(s[0]);

month = Integer.valueOf(s[1]);

day = Integer.valueOf(s[2]);

四、Eclipse使用技巧

1、debug调适

F5:跳入方法

F6:向下逐行调试

F7:跳出方法

F8:直接跳转到下一个断点

2、Ctrl+Q 跳回上一操作处

3、Ctrl+D快速删除光标行

4、Ctrl+O查看当前类的所有方法

五、算法编程知识结构体系

 

蓝桥杯算法考前复习要点和归纳总结_第1张图片

 

你可能感兴趣的:(Java算法,蓝桥杯,蓝桥杯,算法复习要点,算法归纳总结,算法解题技巧)