自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 git 模拟队内协作

git模拟队内协作

2024-03-19 09:59:09 232

原创 集合 小记2

同:都是set的实现类,都能保证元素唯一,都是线程不安全的异:HashSet基于哈希表(HashMap),不需要保证插入和取出的顺序。LinkedHashSet基于链表和哈希表(LinkedHashMap),元素的插入和取出顺序满足FIFO。TreeSet基于红黑树,元素可以自然排序或者定制排序。

2023-09-19 22:49:02 41

原创 第十二关|字符串的转换

字符串转换

2023-09-18 21:22:01 39

原创 集合 小记

集合小记

2023-09-17 22:42:11 36

原创 小 记

多线程小记

2023-09-16 22:38:29 29

原创 第十一关|压缩存储

只有4KB的空间,能寻址8*4*2^10个比特,这个值比32000大,可以创建32000比特的比特数组,其中一个比特位置就代表一个整数。如果发现数组元素是v,那么就将位置为v的设置为1,碰到重复元素,就输出。= 0 判断数组下标的某一位是不是0,下标1个可能对应着4位。给定一个数组,包含从1到N的整数,N最大为32000,数组可能还有重复值,且N的取值不定,若只有4KB的内存可用,如何打印数组中所有重复元素。32000位对应长度1000的字节数组,1字节4bit。

2023-09-15 23:39:05 21

原创 第十一关|位移妙用

法一:每位都判断是否是1,(n >> i) & 1:将每一位移到最低位,与1相与后,其他位为0,最低为是0就是0,最低为1就是1,所以对每一位计算后的结果相加,就得到1的个数。时间复杂度:O(K),K是二进制位数。空间复杂度:O(1)。法二:根据1的数量循环:n & (n - 1)可以消除最后一位1,该位变为0。这样只用进行1的数量个数的循环就可以,消完所有1,值变为0时,就可以统计出1的个数。

2023-09-14 23:32:34 29

原创 第11关|位运算常用技巧

位运算,获取设置清零更新

2023-09-13 21:44:29 52

原创 ArrayList扩容复习小记

ArrayList扩容

2023-09-12 09:36:26 65

原创 第十关|归并排序

合并时,比较两个区间的元素(双指针),谁小,暂存数组存谁,同时移动指针,直到一个数组的元素已经存完,将另一个数组剩下的元素存入暂存数组。不断分成左右两个区间,当每个区间只剩一个元素时不再分了,开始合并。用一个暂存数组,存储不断合并后的结果,将合并的最终结果赋给原数组。不断递归划分左右区间,之后再合并,有点类似于二叉树的后序遍历。

2023-09-11 20:45:28 26

原创 第十关|数组第K大数字

快速排序,数组第K大

2023-09-10 20:07:49 35

原创 第十关|快速排序

快速排序

2023-09-09 23:47:38 22

原创 第九关|中序遍历的应用

要求高度平衡:选择升序序列的中间元素作为根节点,以该元素左边的升序序列构建左子树,以该元素右边的升序序列构建右子树。时间复杂度:o(n),空间复杂度:o(log n)有序数组转为二叉搜索树。

2023-09-08 21:26:00 28

原创 第九关|中序与搜索树

二叉搜索树,leetcode700,leetcode98

2023-09-07 20:54:50 22

原创 第九关|二分查找

二分查找将中间结果与目标进行比较,一次去掉一半,是简单的分治。分治和递归不同,分治可以用递归,而递归不一定是分治。

2023-09-06 11:06:53 21

原创 第八关|公共祖先问题

遇到一个p/q,然后直接向上返回这个p/q(不是p/q都返回null)。如果在某个节点遇到另一子树也返回上来了p/q(即两子树返回值均不为空),这个节点就是最近公共祖先。一直遇不到的话这个被一直向上返回的p/q就最终被返回(另一个没有被发现的q/p是这个节点的后代)。题目给出了p,q都是树里的节点。那么假如第二层的左节点是p,与它同层的节点(即二叉树第二层右节点)没找到q,则q一定在p的子树里,因为q是树里的节点。r代表递归右子树的返回值(即right)l代表递归左子树的返回值(即left)

2023-09-05 10:56:33 22

原创 第八关|二叉树深度问题

通过自下而上遍历每个节点,并且计算差值是否平衡,不平衡返回-1直到最上层,表示不平衡。通过自上而下遍历每个节点,并且对每个节点的左右节点深度做对比。若某节点左右平衡,则把它的高度返回,以便上层节点计算差值。与后序遍历类似,先算出左右子树的结果再进行相关操作。在以层为单位操作时,每层操作结束,将层数+1。

2023-09-04 19:18:35 25

原创 第八关|二叉树双指针

比如对两棵树而言,一般是对称,反转,合并。

2023-09-03 12:18:30 28

原创 第七关|中序、后序的递归过程图

1、中序递归过程图2、后序递归过程图

2023-09-02 11:02:16 32

原创 第七关|迭代法实现二叉树的遍历

如果还有左子树就一直向下找。完了之后再返回从最底层逐步向上向右找。

2023-09-01 22:46:02 34 1

原创 复习 队列 小记

队列方法小记

2023-09-01 16:44:13 48 1

原创 第七关|二叉树的遍历(递归)

递归,二叉树前中后序遍历

2023-08-31 14:57:58 22

原创 第七关|理解递归

以上:1.和2.的n在不断缩小;3.的范围缩小到左子树和右子树在执行递归,一定会有一个终止条件。不然一直递归下去,直到栈溢出,抛出异常。一个方法的递归调用可以多次,加一些逻辑处理。

2023-08-30 20:50:29 27

原创 第六关|层次遍历

层次遍历

2023-08-29 15:04:12 138 1

原创 第六关|中序+后序复原二叉树

中序:左根右;后序:左右根;圈住的代表根节点 右子树完毕,分析左子树

2023-08-28 09:48:45 43 1

原创 第五关|LRU的实现

Hash+双链表实现LRU

2023-08-27 21:13:56 41 1

原创 第五关|队列与栈的互相实现

栈与队列相互实现,leetcode232,leetcode255

2023-08-26 19:15:36 33

原创 第五关|队列和Hash的特征

Hash特征、链表实现队列

2023-08-25 10:10:55 34 1

原创 第四关|栈的表达式问题

计算器问题,逆波兰表达式,leetcode227,leetcode150,栈

2023-08-24 15:39:02 23 1

原创 第四关|栈经典问题

leetcode20示例:输入:s = "()[]{}"输出:true用HashMap将每对左括号作key,右括号作value遍历字符串,当前元素是key则压栈;遇到不是key则弹出栈顶,若栈顶所对应的value值与当前元素不同说明不匹配,不是一对括号。若应当弹出栈顶时,栈中无元素,说明只有右括号,没有左括号,匹配失败。若遍历完后,栈中不为空,则说明有多余的左括号没有匹配上,匹配失败。

2023-08-23 17:04:12 23

原创 第四关|基于数组/链表实现栈

栈:只允许在一端操作的顺序表或链表常用操作:empty(),peek(),pop(),push()

2023-08-22 15:02:10 27 1

原创 第三关|双指针的妙用

快慢型双指针(一起向前走,一快一慢)对撞型(相向型)双指针(两端走向中间)背向型双指针(中间走向两端)

2023-08-21 16:46:31 40 1

原创 第三关|数组的增删改查

觉得对于下标,搞清楚size的位置很有必要。

2023-08-20 17:02:57 28 1

原创 集合 小记

ConcurrentHashMap, jdk7---->分段锁(可重入互斥锁)(有16个),jdk8---->CAS算法,synchronized可重入锁,volatile关键字,线程安全,键不可重复,值可以重复。HashSet -----------> Hashcode和equals比较;Hashtable--------->对象的hashcode。HashMap------>重新计算hash值。Collection--->单列集合顶层接口。Collections---->集合工具类。

2023-08-20 09:25:42 43 1

原创 第二关|区间反转问题解析

示例 1:输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5]

2023-08-20 09:14:47 36 1

原创 JDBC转账

【代码】JDBC转账。

2023-08-04 19:16:15 100

原创 第二关|链表反转

示例1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]

2023-08-04 17:30:26 51 1

原创 第一关|链表经典问题之第一个公共节点

输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点 c1 开始相交。

2023-07-27 20:36:02 50 1

原创 第一关|单链表

多节点链成,每节点最多有1个后继,尾节点无后继头节点:第一个节点,通过它,往后遍历。通常使用带头节点的单链表。

2023-07-20 18:10:52 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除