- 博客(100)
- 收藏
- 关注
原创 分治 - 快排 算法专题
i从头开始遍历, 一共有三种情况:第一种情况:nums[i] == 0, 满足左边的区域, 所以将left++, 交换nums[i]和nums[left], 此时交换过来的值一定是已经判断完的, 所以i++第二种情况:nums[i] == 1, 满足中间的区域, 不需要做交换, 直接让i++第三种情况:nums[i] == 2, 满足最右边的区域, 此时让right--, 交换nums[i]和nums[right], 此时交换过来的数据是还没有判断的, 所以i不能++
2024-06-07 15:30:40
418
原创 库存管理III ---- 分治-快排
情况三: 如果不是上述两种情况, 那么第k个最小元素一定落在>key的区间, , 此时需要去[right, r]区间去找, 但是我们要找的是第k-b-c小的元素, 因为我们舍去了=key和<key的区间。情况一: 如果第k个最小元素落在<key的区间, 说明此时a一定是>=k的, 此时只需要去[l, left]区间去找第k个最小元素即可。情况二: 如果第k个最小元素落在=key的区间, 那么b+c一定是>=k的, 此时只需要返回key即可, 因为这个区间都是key。
2024-06-07 15:25:39
372
原创 JDBC编程
全称为, 把这个词理解成"一组类"/"一组方法", 都是现成的(别的大佬写好的), 可以直接进行调用, 就可以实现一些效果对于java来说,java提供了"标准库", 叫做标准库的API, 你只要安装了java,此时就能使用数据库中的类和方法也可以使用其他大佬写好的类和方法, 叫第三方库的API, 就不是自带的了, 需要额外安装全称叫, 有的库提供的API特别多, 形成了一系列的体系, 这种情况, 称为SDK。
2024-06-07 14:05:55
883
原创 事务 ---- mysql
在日常开发中, 很多操作不是通过一个SQL完成的, 往往需要多个SQL配合完成但是当多个SQL操作时, 如果中间出现了特殊的情况(程序崩溃, 系统崩溃, 网络断开, 主机掉电......), 那么可能就会出现, 前面的SQL执行成功, 后面的SQL执行失败了考虑一个场景: 转账如果a要给b转账500, 那么a的余额-500, b的余额+500, 那么如果在a的余额-500之后, 就出现了上述的特殊情况, 那么这个钱就消失了这个时候就要使用到事务。
2024-06-06 10:51:27
1234
2
原创 排序数组 ---- 分治-快排
在处理数据量有很多重复的情况下,效率会大大提升。利⽤随机选择基准函数⽣成⼀个基准元素;利⽤荷兰国旗思想将数组划分成三个区域;递归处理左边区域和右边区域。
2024-06-04 19:13:32
238
原创 位运算专题
< 左移>> 右移~ 按位取反& 按位与 口诀: 有0则0| 按位或 口诀: 有1则1^ 异或 口诀:相同为0,相异为1 / 无进位相加做题时, 能加括号就加括号, 无需管优先级如何解释:约定:从右往左依次是0,1,2....假设这个数n为 0110010, 他的第x位, 假设是第2位想要知道这个数是0还是1, 我们可以把这个数 &1 即可, 如果是0, 那么0&1=1, 如果是1, 那么1&1=1。
2024-06-02 18:27:26
715
原创 索引 ---- mysql
索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引, 并指定索引的类型,各类索引有各自的数据结构实现。数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。索引所起的作用类似书籍目录,可用于快速定位、检索数据。索引对于提高数据库的性能有很大的帮助。要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:数据量较大,且经常对这些列进行条件查询。该数据库表的插入操作,及对这些列的修改操作频率较低。索引会占用额外的磁盘空间。
2024-06-02 16:12:05
859
原创 mysql的增删查改(进阶)
将从表名查询到的结果插入到表名2中insert into 表名2 select .. from 表名1 ...;创建一个学生表:创建一个学生表2, 将学生表中的数据加到学生表2中:注意: 列的类型可以匹配即可插入, 列名和列的类型不一定要完全一致。
2024-05-30 17:08:54
1537
原创 矩阵区域和 ---- 二维前缀和
计算x1应该等于i+k, 但是如果越界, 只能按m-1算, 所以应该取i+k和m-1的最小值, y2同理。计算x1应该等于i-k, 但是如果越界, 只能按0算, 所以应该取i-k和0的最大值, y2同理。所以我们只需要直到要求面积的左上下标x1y1 右下下标x2y2 即可。计算区间的面积, 假设是红色区域。
2024-05-27 13:35:25
395
原创 和可被k整除的子数组 ---- 前缀和
因为要计算[0,i-1] 区间找有多少个前缀和的余数 = (sum[i] % k + k) % k, 所以要先更新有多少个前缀和的余数 = (sum[i] % k + k) % k 的个数, 再将sum[i]放到哈希表中。如果从0到i的位置的和能被k整除, 那么在[0,i-1] 的位置寻找前缀和应该是0, 也是一种情况, 但是哈希表中存的是前缀和的余数, 所以哈希表中应该添加(0 % k,1)2. 不用真的创建一个前缀和数组。1. 前缀和加入哈希表的时机?3. 如果整个前缀和等于k?
2024-05-27 12:34:23
387
原创 除自身以外数组的乘积 ---- 前缀和
此时g[i] 表示: 后i + 1个数的积, 那么g[i + 1] 就表示后i + 2的积, 所以让g[n - 1] = 0, i从n-2开始, 从后往前遍历。此时f[i] 表示: 前i - 1个数的积, 那么f[i - 1] 就表示前i - 2的积, 所以让f[0] = 1, i从1开始, 从前往后遍历。求[i + 1,n - 1]的积 用一个后缀数组g。先求[0,i - 1]的积 用一个前缀数组f。
2024-05-26 17:43:31
185
原创 数据库的约束 not null, unique, default, primary key, foreign key, check
约束可以理解成 数据库提供的一种的机制, 在的时候使用。
2024-05-22 16:52:48
866
原创 x的平方根 ---- 二分查找
因为我们要的结果可能是正好等于target位置, 和取整数部分时可能会小于target的位置, 所以<=在一组, >在一组。为什么分成<= 和 > 而不是 < 和>=?
2024-05-20 19:56:15
404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人