- 博客(5)
- 问答 (1)
- 收藏
- 关注
原创 快速排序算法
帮助每个子区间(用递归)的首元素(哨兵)找到它在这个区间(按照某种排序方式后的位置,这里为从小到大)应有的位置,因为此时这个位置 i,它左边所有的元素都比它小,右边的元素都比它大,但左边和右边仍然是无序的,所以需要继续使用递归帮助除了位置 i 的子区间的首元素找到各自应有的位置。空间复杂度 O(N)O(N)O(N) : 快速排序的递归深度最好(平均)为 O(logN)O(\log N)O(logN) ,最差情况(即输入数组完全倒序)为 O(N)O(N)O(N)。如下图所示,为哨兵划分操作流程。
2023-04-14 13:10:17
92
原创 子串分值和
暴力可以解决,但会超时,所以要把时间从O(N²)变成O(N),而这时就需要res += (long) (i - lastIndex) * (willIndex - i);
2023-04-07 19:08:30
132
1
原创 k倍区间-蓝桥杯
当新求得余数为 i 的列,可以与之前求得余数也为 i 的区间的数量 n 组成n个 k 倍区间。(余数不等于0则+n,余数等于0则本身也是k倍区间,所以+n+1)考虑前i个数的和对k求余,把余数相同的列进行累加,因为余数相同的列组成的区间相减所得的区间都可以构成k倍区间。
2023-04-07 15:33:33
87
1
原创 剑指 Offer 12. 矩阵中的路径
给定一个 m x n 二维字符网格 board 和一个字符串单词 word。如果 word 存在于网格中,返回 true;否则,返回 false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单词 “ABCCED”(单词中的字母已标出)。
2023-04-07 10:25:00
93
1
空空如也
单链表两个相邻的结点,如何进行交换?
2021-08-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人