2024蓝桥杯40天打卡总结
- 真题题解
- 其它
- 预估考点
- 重点复习考点
- 时间复杂度
- 前缀和
- 二分的两个模板
- 字符串相关 String和StringBuilder
- ArrayList HashSet HashMap相关
- 蓝桥杯Java常用算法
- 大数类BigInteger的存储与运算
- 日期相关考点及函数
- 质数
- 最小公倍数和最大公约数
- 排序库的使用
- 栈
- Math类
- 进制转换
- 补充
感悟:在整理的时候发现这40天的打卡还是很水的,真正学了的时间也就一半左右,还有一些时间只看了网课并未敲代码练习,40天也就15天左右是认真学习了的,考研不能再这样了!!!
真题题解
2023年蓝桥杯真题练习
2021、2022年蓝桥杯真题练习
2023蓝桥杯Java B组省赛:试题ABD
2023蓝桥杯Java B组省赛:试题E
2022蓝桥杯Java B组省赛:试题A
蓝桥杯 2021 省 B 特殊年份和蓝桥杯 2022 省 B 刷题统计
蓝桥杯 2020 省 B 整除序列、蓝桥杯 2019 省 B 特别数的和、蓝桥杯 2023 省 B 冶炼金属
蓝桥杯 2013 省 B 翻硬币 和 蓝桥杯 2015 省 B 移动距离
蓝桥杯 2019 省 B 等差数列
其它
Day37代码练习 数位排序&&阶乘累计和&&句子反转&&k倍区间序列
Java基础类型和输入与输出
蓝桥杯之循环问题
蓝桥杯之排序与算法问题
全排列
栈和队列
排序库的使用
字符串和StringBuilder
蓝桥杯Java常用方法
蓝桥杯eclipse Debug 技巧
CCFCSP备考整理
递归与辗转相除法
字符串排序&&大小写转换&&斐波那契数列 递归解法&&纸张尺寸问题
数字反转&&数字反转优化算法&&sort排序相关&&String字符串相关&&StringBuilder字符串相关&&HashSet相关
预估考点
前缀和 二分 字符串 质数 日期相关 最小公倍数和最小公因数
(阶乘已经连续考了两年了 感觉再考的概率不大)
重点复习考点
时间复杂度
前缀和
二分的两个模板
public class BinarySearchTemplates {public static void main(String[] args) {// 示例数组int[] arr = {1, 2, 3, 4, 5, 6};// 目标值 k1 和 k2int k1 = 3;int k2 = 3;// 使用模板一查找小于 k1 的最大元素下标int result1 = binarySearchTemplate1(arr, k1);// 使用模板二查找大于等于 k2 的最小元素下标int result2 = binarySearchTemplate2(arr, k2);// 打印结果System.out.println("Template 1: [0, left] 区间包含小于 k 的元素,[left + 1, n - 1] 区间包含大于等于 k 的元素");System.out.println("Result for k1 = " + k1 + ": left index = " + result1);System.out.println();System.out.println("Template 2: [0, left - 1] 区间包含小于 k 的元素,[left, n - 1] 区间包含大于等于 k 的元素");System.out.println("Result for k2 = " + k2 + ": left index = " + result2);}/*** 二分查找模板一:* 在有序数组中查找小于目标值 k 的最大元素下标 left* 然后 [0, left] 区间包含小于 k 的元素,[left + 1, n - 1] 区间包含大于等于 k 的元素*/public static int binarySearchTemplate1(int[] arr, int k) {int left = 0, right = arr.length - 1;while (left < right) {// 计算中间值,向右取整,确保区间长度为偶数时 mid 取右端点int mid = left + (right - left + 1) / 2;if (arr[mid] < k) {// 目标值在右侧left = mid;} else {// 目标值在左侧或等于 mid,注意这里不减一,因为要保留可能的解right = mid - 1;}}// 循环结束后,[0, left] 区间包含小于 k 的元素,[left + 1, n - 1] 区间包含大于等于 k 的元素return left;}/*** 二分查找模板二:* 在有序数组中查找大于等于目标值 k 的最小元素下标 left* 然后 [0, left - 1] 区间包含小于 k 的元素,[left, n - 1] 区间包含大于等于 k 的元素*/public static int binarySearchTemplate2(int[] arr, int k) {int left = 0, right = arr.length - 1;while (left < right) {// 计算中间值,普通二分查找取左端点int mid = left + (right - left) / 2;if (arr[mid] >= k) {// 目标值在左侧或等于 mid,注意这里不减一,因为要保留可能的解right = mid;} else {// 目标值在右侧left = mid + 1;}}// 循环结束后,[0, left - 1] 区间包含小于 k 的元素,[left, n - 1] 区间包含大于等于 k 的元素return left;}
}
字符串相关 String和StringBuilder
public class StringExample {public static void main(String[] args) {String str1 = "Hello,";String str2 = " World!";String str3 = "Hello, World!";String subStr = "Hello";// 获取字符串长度int length = str3.length();System.out.println("Length: " + length);// 比较字符串boolean isEqual = str1.equals(str2); // 比较两个字符串内容是否相等boolean isIgnoreCaseEqual = str1.equalsIgnoreCase(str2); // 忽略大小写比较int compareResult = str1.