数据结构与算法
剑指offer,lc,牛客笔试面试题
Cedar_Guo
stand as a cedar
展开
-
排序(四)冒泡 选择 插入
冒泡 选择 插入原创 2022-04-05 19:13:26 · 309 阅读 · 0 评论 -
排序(三)快排
快排原创 2022-04-05 16:42:39 · 383 阅读 · 0 评论 -
排序(二)归并排序
归并排序原创 2022-04-04 23:40:15 · 461 阅读 · 0 评论 -
排序(一)堆排序
堆排序原创 2022-04-04 21:19:52 · 572 阅读 · 0 评论 -
二叉搜索树的遍历
二叉树的前中后序遍历:(dfs 递归遍历)前:根(打印) 左(递归) 右(递归)中:左 根 右后:左 右 根递归终止条件 if(root == null) return null;二叉搜索树的中序遍历为 递增序列。求 “二叉搜索树第 k 大的节点” 可转化为求 “此树的中序遍历倒序的第 k 个节点”。求第k大节点,思路:递归遍历(中序遍历倒序 - 右 中 左)时计数,统计当前节点的序号;递归到第 k 个节点时,应记录结果 res,记录当前节点的值;递归到第k个节点时,提前终止递归。递归原创 2022-03-04 13:38:56 · 416 阅读 · 0 评论 -
求二叉树最大深度的两种方法
剑指offer55思路 1、树的后序遍历 / 深度优先搜索往往利用 递归 或 栈 实现,本文使用递归实现。思路:此树的深度和其左(右)子树的深度之间的关系:此树的深度 等于 左子树的深度 与 右子树的深度 中的 最大值 +1思路 2、树的层序遍历 / 广度优先搜索往往利用 队列 实现。思路:每遍历一层,则计数器 +1,直到遍历完成,则可得到树的深度。具体实现:创建一个计数器res,用来记录层数;创建一个queue,存储每一层的所有node;每遍历一层,res+1;直到queue中不再有节点,即qu原创 2022-03-04 09:35:01 · 640 阅读 · 0 评论 -
Java位运算原理及使用讲解
Java位运算原理及使用讲解 剑指offer56Java使用 补 码 来 表 示 二 进 制 数:正数:符号位(最高位)为 0,其余 各 位 代 表 数 值 本 身 (以二 进制 表 示 )负数:把该 数 绝 对 值 的 补 码 (对应的正数)按 位 取 反得到反码 ,然后 对 整 个数 加 1,即得 该 数的 补 码。已知补码,符号位为-1,求十进制数:补码先减一得到反码,反码再按位取反,得到绝对值(正数)的补码,得到十进制数(绝对值),再加负号。按位与 &:只有两个操作数对应位同原创 2022-03-03 14:28:59 · 272 阅读 · 0 评论