会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
SevenCoding
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
5
6
7
8
···
18
下一页
2026年1月23日
Queue & Stack:实现机制与使用场景深度分析
摘要: 为什么不推荐使用Stack Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque 为什么不推荐使用 性能低:是因为 Stack 继承自 Vector, 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目,很难在原有的基础上进行优化,因此 Vector 就被淘汰掉了,使用
阅读全文
posted @ 2026-01-23 09:00 程序员Seven
阅读(40)
评论(0)
推荐(0)
2026年1月22日
剑指offer-67、剪绳⼦
摘要: 题目描述 给你⼀根⻓度为n 的绳⼦,请把绳⼦剪成整数⻓的m 段( m 、n 都是整数, n>1 并 且m>1 , m<=n ),每段绳⼦的⻓度记为k[1],...,k[m]。请问k[1]x...xk[m] 可能的最⼤乘积是多少?例如,当绳⼦的⻓度是8 时,我们把它剪成⻓度分别为2 、3 、3 的三段
阅读全文
posted @ 2026-01-22 09:00 程序员Seven
阅读(34)
评论(0)
推荐(0)
2026年1月21日
剑指offer-66、机器⼈的运动范围
摘要: 题目描述 地上有⼀个 m ⾏和 n 列的⽅格。⼀个机器⼈从坐标(0,0) 的格⼦开始移动,每⼀次只能向左,右,上,下四个⽅向移动⼀格,但是不能进⼊⾏坐标和列坐标的数位之和⼤于 k 的格⼦。 例如,当k 为 18 时,机器⼈能够进⼊⽅格(35,37) ,因为 3+5+3+7 = 18 。但是,它不能进
阅读全文
posted @ 2026-01-21 09:00 程序员Seven
阅读(27)
评论(0)
推荐(0)
2026年1月20日
剑指offer-65、矩阵中的路径
摘要: 题目描述 请设计⼀个函数,⽤来判断在⼀个矩阵中是否存在⼀条包含某字符串所有字符的路径。路径可以从矩阵中的任意⼀个格⼦开始,每⼀步可以在矩阵中向左,向右,向上,向下移动⼀个格⼦。如果⼀条路径经过了矩阵中的某⼀个格⼦,则该路径不能再进⼊该格⼦。 例如矩阵: 中包含⼀条字符串 " bcced " 的路径,
阅读全文
posted @ 2026-01-20 09:00 程序员Seven
阅读(26)
评论(0)
推荐(0)
2026年1月19日
InheritableThreadLocal,从入门到放弃
摘要: InheritableThreadLocal相比ThreadLocal多一个能力:在创建子线程Thread时,子线程Thread会自动继承父线程的InheritableThreadLocal信息到子线程中,进而实现在在子线程获取父线程的InheritableThreadLocal值的目的。 关于Th
阅读全文
posted @ 2026-01-19 09:00 程序员Seven
阅读(673)
评论(1)
推荐(0)
2026年1月16日
PriorityQueue的秘密:堆结构的高效应用与实现原理
摘要: 介绍 优先级队列的作用是能保证每次取出的元素都是队列中权值最小(或最大)的。这里元素大小的评判可以通过元素本身的自然顺序(natural ordering),也可以通过构造时传入的比较器(Comparator)。 Java中PriorityQueue实现了Queue接口,不允许放入null元素;其通
阅读全文
posted @ 2026-01-16 09:00 程序员Seven
阅读(43)
评论(0)
推荐(0)
2026年1月15日
剑指offer-62、⼆叉搜索树的第k个结点
摘要: 题⽬描述 给定⼀棵⼆叉搜索树,请找出其中的第 k ⼩的 TreeNode 结点。 示例1 输⼊:{5,3,7,2,4,6,8},3 返回值:{4} 思路及解答 二叉搜索树的关键性质 二叉搜索树具有一个重要特性:中序遍历(左-根-右)BST会得到一个升序排列的节点值序列。因此,寻找第k小的节点本质上就
阅读全文
posted @ 2026-01-15 09:00 程序员Seven
阅读(38)
评论(0)
推荐(0)
2026年1月14日
剑指offer-64、滑动窗⼝的最⼤值
摘要: 题⽬描述 给定⼀个数组和滑动窗⼝的⼤⼩,找出所有滑动窗⼝⾥数值的最⼤值。例如,如果输⼊数组 {2,3,4,2,6,2,5,1} 及滑动窗⼝的⼤⼩ 3 ,那么⼀共存在 6 个滑动窗⼝,他们的最⼤值分别为 {4,4,6,6,6,5} ; 针对数组 {2,3,4,2,6,2,5,1} 的滑动窗⼝有以下6个
阅读全文
posted @ 2026-01-14 09:00 程序员Seven
阅读(36)
评论(0)
推荐(0)
2026年1月13日
剑指offer-63、数据流中的中位数
摘要: 题⽬描述 如何得到⼀个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使⽤ Insert() ⽅法读取数据流,使⽤ GetMedian() ⽅法获取当前读取数据的中位数。
阅读全文
posted @ 2026-01-13 09:00 程序员Seven
阅读(35)
评论(0)
推荐(0)
2026年1月12日
SPI机制:服务扩展的核心技术
摘要: 为什么需要SPI机制 SPI和API的区别是什么 SPI是一种跟API相对应的反向设计思想:API由实现方确定标准规范和功能,调用方无权做任何干预; 而SPI是由调用方确定标准规范,也就是接口,然后调用方依赖此接口,第三方实现此接口,这样做就可以方便的进行扩展,类似于插件机制,这是SPI出现的需求背
阅读全文
posted @ 2026-01-12 09:00 程序员Seven
阅读(71)
评论(0)
推荐(0)
2026年1月9日
数据结构-图
摘要: 概述 图是一种较为复杂的非线性结构。 为啥说其较为复杂呢? 根据前面的内容,我们知道: 线性数据结构的元素满足唯一的线性关系,每个元素(除第一个和最后一个外)只有一个直接前趋和一个直接后继。 树形数据结构的元素之间有着明显的层次关系。 但是,图形结构的元素之间的关系是任意的。 何为图呢? 简单来说,
阅读全文
posted @ 2026-01-09 09:00 程序员Seven
阅读(56)
评论(0)
推荐(0)
2026年1月8日
剑指offer-61、序列化二叉树
摘要: 题⽬描述 请实现两个函数,分别⽤来序列化和反序列化⼆叉树 ⼆叉树的序列化是指:把⼀棵⼆叉树按照某种遍历⽅式的结果以某种格式保存为字符串,从⽽使得内存中建⽴起来的⼆叉树可以持久保存。序列化可以基于先序、中序、后序、层序的⼆叉树遍历⽅式来进⾏修改,序列化的结果是⼀个字符串,序列化时通过 某种符号表示空节
阅读全文
posted @ 2026-01-08 09:00 程序员Seven
阅读(80)
评论(0)
推荐(0)
2026年1月7日
剑指offer-60、将⼆叉树打印成多⾏
摘要: 题⽬描述 从上到下按层打印⼆叉树,同⼀层结点从左⾄右输出。每⼀层输出⼀⾏。 给定的⼆叉树是 {1,2,3,#,#,4,5} : 该⼆叉树多⾏打印层序遍历的结果是: [ [1], [2,3], [4,5] ] 示例1 输⼊:{8,6,10,5,7,9,11} 返回值:[[8],[6,10],[5,7,
阅读全文
posted @ 2026-01-07 09:00 程序员Seven
阅读(31)
评论(0)
推荐(0)
2026年1月6日
剑指offer-59、按之字形顺序打印⼆叉树
摘要: 题⽬描述 请实现⼀个函数按照之字形打印⼆叉树,即第⼀⾏按照从左到右的顺序打印,第⼆层按照从右⾄左的顺序打印,第三⾏按照从左到右的顺序打印,其他⾏以此类推。 示例1 输⼊:{8,6,10,5,7,9,11} 返回值:[[8],[10,6],[5,7,9,11]] 思路及解答 双向链表(推荐) 借助双向
阅读全文
posted @ 2026-01-06 09:00 程序员Seven
阅读(26)
评论(0)
推荐(0)
2026年1月5日
数据结构-堆
摘要: 什么是堆 堆是一种满足以下条件的树: 堆中的每一个节点值都大于等于(或小于等于)子树中所有节点的值。或者说,任意一个节点的值都大于等于(或小于等于)所有子节点的值。 大家可以把堆(最大堆)理解为一个公司,这个公司很公平,谁能力强谁就当老大,不存在弱的人当老大,老大手底下的人一定不会比他强。这样有助于
阅读全文
posted @ 2026-01-05 09:00 程序员Seven
阅读(48)
评论(0)
推荐(0)
2026年1月4日
剑指offer-58、对称二叉树
摘要: 题⽬描述 请实现⼀个函数,⽤来判断⼀棵⼆叉树是不是对称的。注意,如果⼀个⼆叉树同此⼆叉树的镜像是同样 的,定义其为对称的。 例如:下⾯这棵⼆叉树是对称的 下⾯这个就不是对称的: 示例1 输⼊:{8,6,6,5,7,7,5} 返回值:true 示例2: 输⼊:{8,6,9,5,7,7,5} 返回值:f
阅读全文
posted @ 2026-01-04 09:00 程序员Seven
阅读(30)
评论(0)
推荐(0)
2025年12月31日
剑指offer-57、二叉树的下一个节点
摘要: 题⽬描述 给定⼀个⼆叉树和其中的⼀个结点,请找出中序遍历顺序的下⼀个结点并且返回。注意,树中的结点不仅包含左右⼦结点,同时包含指向⽗结点的指针。 复杂的节点结构如下: public class TreeLinkNode { int val; TreeLinkNode left = null; Tre
阅读全文
posted @ 2025-12-31 09:00 程序员Seven
阅读(42)
评论(0)
推荐(0)
2025年12月30日
剑指offer-56、删除链表中重复的节点
摘要: 题⽬描述 在⼀个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表 1->2->3->3->4->4->5 处理后为 1->2->5 示例1 输⼊:{1,2,3,3,4,4,5} 返回值:{1,2,5} 思路及解答 hash统计 第一次遍历统计频率
阅读全文
posted @ 2025-12-30 09:00 程序员Seven
阅读(54)
评论(0)
推荐(0)
2025年12月29日
回溯算法总结
摘要: 概述 其实回溯算法和我们常说的 DFS 算法非常类似,本质上就是一种暴力穷举算法。回溯算法和 DFS 算法的细微差别是:回溯算法是在遍历「树枝」,DFS 算法是在遍历「节点」 抽象地说,解决一个回溯问题,实际上就是遍历一棵决策树的过程,树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍,把叶子节
阅读全文
posted @ 2025-12-29 09:00 程序员Seven
阅读(43)
评论(0)
推荐(0)
2025年12月26日
动态规划
摘要: 什么是动态规划 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的, 例如:有N件物品和一个最多能背重量为W 的背
阅读全文
posted @ 2025-12-26 09:00 程序员Seven
阅读(737)
评论(1)
推荐(2)
上一页
1
2
3
4
5
6
7
8
···
18
下一页
公告