- 博客(6)
- 收藏
- 关注
原创 判断是否链表有环
创建两个指针 p1和p2,p1每次移动一个节点,p2每次移动两个节点,然后比较p1和p2是否相同,相同则有环,否则继续移动。遍历链表,每到一个新节点,便通过检查前面所有节点查看是否以已经访问过了,有则是有环。时间复杂度o(n) 空间复杂度o(n)当两个节点第一次相遇后,再让他们继续前进,再次相遇就能求出环长。 两个 速度不同的远动员在环形跑道上不停的跑,一定会相遇。设环长为l, t=n-l 为起始点到入环节点的距离。,返回链表开始入环的第一个节点。x为相遇节点于入环节点的距离。
2023-03-18 20:12:19
142
原创 桶排序简单笔记
如果筒的元素分布不均匀当所有元素都集中于一个桶时间复杂度就会退化为O(nlogn)第3步,每个筒的内部做排序,在元素均匀的情况下所有筒的运算量为O(n)第1,2,4步其实都是要遍历所有元素,都是需要O(n)的时间复杂度。对于数列 4.5,0.84,3.25,2.18,0.5。筒的区间跨度为(最大值-最小值)/(筒的数量-1)每一个筒代表了一个区间范围。是一种线性时间的排序算法。总的时间复杂度为O(n)
2023-03-16 22:01:25
124
原创 java堆排序
每次向下调整需要o(log(n))的时间复杂度。我们可以使用利用最大堆的特性来实现堆排序。所以时间复杂度尾o(nlog(n))构建堆需要o(n)的时间复杂度。最大堆:父节点的值大于孩子节点。最小堆:父节点的值小于孩子节点。
2023-03-09 21:07:02
156
原创 二叉堆学习笔记
(H-2),顶点只有1(2^0)个,所以总共的时间复杂度为s = 1 * 2^(H-1) + 2 * 2^(H-2) + …假如有N个节点,那么高度为H=logN ,最后一层每个父节点最多只需要下调1次,倒数第二层最多只需要下调2次,顶点最多需要下调H次,而最后一层父节点共有2。*** 二叉堆本质上是一颗完全二叉树(除最后一层外,各层的节点数达到最大,最后一层的节点都在左边) ***向下调整:比较左右节点,选出大的节点与当前节点比较,若大的节点大于当前节点,则交换位置,继续向下调整。
2023-03-07 16:09:38
260
原创 将list缓存到redis中,黑马点评作业
黑马点评作业,将商店类型列表请求的结果写入redis中。将list转为json作为字符串存入redis中。作为有序列表存入redis。
2023-02-03 15:05:34
623
原创 Springboot整合Redis的序列化
创建RedisTemplate对象,配置连接工厂获取json序列化工具对象设置key和value的序列化方式RedisTemplate对象加入容器中@Bean//1.创建//json序列化工具//设置key的序列化//设置值的valueredisTemplate.opsForValue().set("user",new User("小老虎",11));redis-cli中结果。
2023-02-01 17:00:15
2712
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人