2024年蓝桥杯40天打卡总结


感悟:在整理的时候发现这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相关

预估考点

前缀和 二分 字符串 质数 日期相关 最小公倍数和最小公因数
(阶乘已经连续考了两年了 感觉再考的概率不大)

重点复习考点

时间复杂度

在这里插入图片描述

前缀和

在这里插入图片描述

二分的两个模板

模板1
模板2

public class BinarySearchTemplates {
   

    public static void main(String[] args) {
   
        // 示例数组
        int[] arr = {
   1, 2, 3, 4, 5, 6};
        
        // 目标值 k1 和 k2
        int 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

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.compareTo(str2); // 按字典顺序比较字符串
        int compareIgnoreCaseResult = str1.compareToIgnoreCase(str2); // 忽略大小写比较
        System.out.println("Equal: " + isEqual);
        System.out
  • 50
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值