- 博客(32)
- 收藏
- 关注
原创 六、第七章 &二进制生成子集(笔记)
问题描述用二进制生成{A,B,C}的子集分析import java.util.ArrayList;public class A035_二进制生成子集 { public static void main(String[] args) { String[] sArr = { "A", "B", "C" }; ArrayList<ArrayList<String&g...
2020-04-14 10:37:08
123
原创 六、第七章 &用硬币表示某个给定数值(笔记)
这里讨论的是有几种方式可以得到这个数值,先上代码和运行结果import java.util.Scanner;public class A034_用硬币表示某个给定数值 { public static void main(String[] args) { int[] book = new int[] { 1, 5, 10, 25 }; Scanner sc = new Scann...
2020-04-11 16:33:59
210
原创 五、数学问题_06 &快速幂 &二进制巧算(笔记)
public class A033_快速幂_二进制巧算 { public static void main(String[] args) { int a = 2; int n = 10; int ans = pow(a, n); System.out.println(ans); } private static int pow(int a, int n) { int ...
2020-04-08 00:16:16
148
原创 五、数学问题_05 &素数的筛法 &埃氏筛法(笔记)
这个筛法是利用数组,将数组能够被其他数除的数,删掉,保留素数来进行解答,要点在于如何开辟数组,也就是数组的长度,那么老师这里直接给了结果,如果要求第num个素数,那么????int n = 2;while (n / Math.log(n) < num) { n++;}int[] arr = new int[n];求出来的n就是数组的长度,然后就可以开始筛啦????int x = 2;...
2020-04-07 23:22:53
143
原创 五、数学问题_04 &扩展欧几里得_贝祖公式 &题:一步之遥(笔记)
推演图示public class A031_扩展欧几里得_贝祖公式_一步之遥 { static int x, y; public static void main(String[] args) { int ans = work(97, -127, 1); if (ans != 999) System.out.println(x + " " + y); else ...
2020-04-07 00:17:30
118
原创 五、数学问题_03 &Nim阶梯尼姆博弈(笔记)
import java.util.Arrays;import java.util.Scanner;public class A030_Nim阶梯尼姆博弈 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a ...
2020-04-06 22:58:44
241
原创 五、数学问题_02 &Nim游戏(笔记)
import java.util.Scanner;public class A029_Nim游戏 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; for (int i = 0...
2020-04-06 22:32:58
140
原创 五、数学问题_01 &天平称重 &进制方方式(笔记)
import java.util.Scanner;public class A028_天平称重_进制方式 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String s = ""; while (n > 0) ...
2020-04-06 18:31:06
283
原创 五、字符串_02 &字符串匹配 &KMP(笔记)
import java.util.Arrays;import java.util.Scanner;public class A026_字符串匹配_KMP { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); String ...
2020-04-04 22:18:58
100
原创 五、字符串_02 &字符串匹配 &RabinKarp(笔记)
import java.util.Scanner;public class A025_字符串匹配_RabinKarp { private static int seed; public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); ...
2020-04-04 12:27:31
152
原创 五、字符串_01 &最短摘要的生成(笔记)
题的意思嘞,其实就是求多个段落中,出现了k个关键字的串的最小长度,这里把它简化到了一个字符串里面:import java.util.Scanner;public class A024_最短摘要的生成 { private static char s1; private static char s2; private static char s3; private static bo...
2020-04-04 00:18:15
206
原创 四、多维数组_06 &子矩阵最大累加和_优化(笔记)
import java.util.Scanner;public class A023_子矩阵最大累加和_优化 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[][]...
2020-04-03 01:30:21
164
原创 四、多维数组_05 &子数组最大累加和(笔记)
import java.util.Arrays;import java.util.Random;public class test { public static void main(String[] args) { int[] a = getRandomArr(10000, 200); System.out.println(Arrays.toString(a)); Sy...
2020-04-03 00:34:55
122
原创 四、多维数组_04 &边界为1的最大子方阵的优化 &动态规划(笔记)
import java.util.Scanner;public class A021_边界为1的最大子方阵的优化 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); int n = sc.nextInt(); int[]...
2020-04-02 23:23:32
175
原创 四、多维数组_03 &边界为1的最大子方阵_普通版(笔记)
import java.util.Scanner;public class A020_边界为1的最大子方阵 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = 6; int n = 6; int[][] arr = new int[m][n]; ...
2020-04-02 16:52:36
169
原创 四、多维数组_02 &Z形打印_简化问题(笔记)
这里可以把题目简化,把Z字形看成是斜着打印数组,比如2-5就是从上往左下打印,然后9-6-3就是从左往右上斜着打印,搞清楚这点后,线上代码和运行结果:import java.util.Scanner;public class A019_Z形打印_简化问题 { public static void main(String[] args) { Scanner sc = new Scan...
2020-04-01 23:54:34
187
原创 四、多维数组_01 &顺时针打印二维数组(笔记)
import java.util.Scanner;public class A018_顺时针打印二维数组 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = 8; int m = 5; int[][] a = new int[n][m]; boo...
2020-04-01 21:30:14
121
原创 三、排序_10 &数组能排成的最小数(笔记)
import java.util.Arrays;import java.util.Comparator;public class A017_数组能排成的最小数 { public static void main(String[] args) { Integer[] a = { 3, 32, 321, 20 }; Arrays.sort(a, new Comparator<...
2020-04-01 15:40:42
134
原创 三、排序_09 &堆排序 &TopK和小顶堆(笔记)
import java.util.Arrays;import java.util.Scanner;public class A016_TopK和小顶堆 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[10]; while (t...
2020-04-01 12:15:37
129
原创 三、排序_08 &需排序的子数组长度|升序&降序(笔记)
先上代码:import java.util.ArrayList;import java.util.Arrays;public class A015_需排序的子数组长度 { public static void main(String[] args) { int[] a = { 1, 5, 3, 4, 2, 6, 7 }; // int[] a = { 3, 2, 5, 6, ...
2020-04-01 01:47:02
138
原创 三、排序_07 &基数排序(笔记)
先上代码:import java.util.ArrayList;import java.util.Arrays;public class A014_基数排序 { public static void main(String[] args) { int[] a = { 73, 22, 93, 43, 55, 114, 28, 65, 39, 81 }; int max = 0;/...
2020-03-31 23:44:17
140
原创 三、排序_06 &大顶堆小顶堆 &堆排序(笔记)
大顶堆小顶堆public class A013_堆排序_大顶堆小顶堆 { public static void main(String[] args) { // int[] a = { 78, 56, 34, 43, 4, 1, 15, 2, 23 }; int[] a = { 5, 6, 3, 2, 8, 1 }; midOrder(a, 0); System.out.pr...
2020-03-31 20:32:01
280
原创 三、排序_06 &用数组表示一颗二叉树 &前、中、后序遍历(笔记)
数组表示二叉树:左节点是2i+1,右节点是2i+2求该节点的父节点是(i - 1)/2代码:public class A012_数组表示二叉树并遍历 { public static void main(String[] args) { int[] arr = { 78, 56, 34, 43, 4, 1, 15, 2, 23 }; preOrder(arr, 0); Sys...
2020-03-31 15:44:34
114
原创 三、排序_05 &数组中的最小可用ID(笔记)
public class A011_数组中的最小可用id { public static void main(String[] args) { int[] arr = { 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16 }; check(arr, 0, arr.length - 1); } public static void check(int...
2020-03-31 00:35:36
126
原创 三、排序_04 &数组中第k小的数(笔记)
同样还是先上代码:import java.util.Arrays;import java.util.Random;public class A010_数组中第K小的元素 { public static void main(String[] args) { int len = 10; int max = 20; int k = 3; int[] arr = getRand...
2020-03-30 18:43:30
101
原创 三、排序_03 &归并排序(笔记)
import java.util.Arrays;import java.util.Random;public class A009_归并排序 { public static void main(String[] args) { int len = 10; int max = 20; int[] arr = getRandomArr(len, max); System.ou...
2020-03-30 00:22:24
142
原创 三、排序_02 &快速排序 &快速排序的优化——三点中值法(笔记)
先上代码import java.util.Arrays;import java.util.Random;public class A008_快排的优化_1_三点中值法 { static int cnt = 0; public static void main(String[] args) { int len = 2000; int max = 1000000000; in...
2020-03-29 22:33:18
1062
原创 二、递归_03 &快速幂(笔记)
public class A007_快速幂 { public static void main(String[] args) { int a = 2; int n = 15; long time = System.currentTimeMillis(); int res = pow(a, n); long now = System.currentTimeMillis() -...
2020-03-29 00:43:31
96
原创 三、排序_01 &希尔排序(笔记)
希尔排序import java.util.Arrays;public class A006_希尔排序 { public static void main(String[] args) { int[] arr = { 9, 8, 7, 6, 5, 4, 3, 2, 1 }; shellsort(arr); System.out.println(Arrays.toString(a...
2020-03-28 21:48:49
109
原创 二、递归_02 &汉诺塔(笔记)
汉诺塔汉诺塔的移动规则本人是懂的,若有不懂游戏规则,可自行百度~图中所示是把所有的饼,从A移到B,但是,我这边些的代码,是从A移动到C。public class A004_递归练习_02 { public static void main(String[] args) { f("A", "B", "C", 3); } private static void f(String f...
2020-03-28 18:28:35
110
原创 二、递归_01 &斐波那契的优化 &最大公约数gcd(笔记)
二、递归递归,就是在原问题中找重复的子问题,概括起来就是1、找重复2、找变化3、找边界譬如求阶乘要求f(n)的阶乘,就要求f(n-1)的阶层,所以在调用的时候,就是static int f(int n){ if(n == 1) return 1; return n * f(n - 1);}每一次进入递归都是求下一个,一直到边界n内部状态变化????return 时候...
2020-03-28 15:29:30
130
原创 一、位运算(笔记)
一、位运算判断奇偶,可以用&符号如果x & 1 = 1,就是奇数如果x & 1 = 0,就是偶数题目:可以用(n-1)&n,去掉最低位的1,进行求解,每一次,cnt++,当n==0的时候,就是终止条件;import java.util.Scanner;public class A001_位运算 { public static void main...
2020-03-27 23:25:45
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人