随笔分类 -  LeetCode && Java

摘要:背景 面试时考了这道题,之前一直都会递归遍历,非递归遍历倒是从来没有实际理解过它的具体过程,包括使用什么数据结构,具体的过程是怎样的?满脑子都是二叉树的层序遍历, 但是这里后序遍历和层序遍历还不太一样。 在仔细梳理并讲出自己的思路的时候,还是觉得并非易事。那就来分析分析。 什么是二叉树的后序遍历? 阅读全文
posted @ 2024-08-09 18:48 heyhy 阅读(236) 评论(0) 推荐(0) 编辑
摘要:###判断一个单链表有没有环?有三种方法。 ###方法一、穷举遍历 如上图,可见在遍历带环的链表时,同一个节点总会被遍历到两次。那么基于这一点出发,我们从头节点开始,遍历每个节点。在遍历的过程中,每遍历到一个新节点的时候,就回头把新节点之前的所有节点遍历一遍,然后看新节点的ID是否和之前节点的ID相 阅读全文
posted @ 2021-07-02 21:00 heyhy 阅读(368) 评论(0) 推荐(0) 编辑
摘要:###拼车 模拟的方法 假设你是一位顺风车司机,车上最初有 capacity 个空座位可以用来载客。由于道路的限制,车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向,你可以将其想象为一个向量)。 这儿有一份乘客行程计划表 trips[][],其中 trips[i] = [num_passen 阅读全文
posted @ 2021-03-28 16:03 heyhy 阅读(81) 评论(0) 推荐(0) 编辑
摘要:代码: ''' package tests; public class Yanghui { public static void main(String[] args) { //声明二维数组的三种方式 //第一种,已经知道数组的元素 int[][]arr1={{1,2},{2,3},{4,5}}; 阅读全文
posted @ 2020-10-21 21:28 heyhy 阅读(179) 评论(0) 推荐(0) 编辑
摘要:###目前为止只有一种思路:位运算+递归小操作 a+b的值可以等价于ab+(a&b)<<1,也就是a异或b的值加上a与b的值再左移一位。a异或b的值被叫做非进位求和,(a&b)<<1是求每位的进位。举个例子就明白为什么是这样了。 比如计算5+4,对于二进制而言,100+101=1001,产生了进位。 阅读全文
posted @ 2020-07-22 17:30 heyhy 阅读(530) 评论(0) 推荐(0) 编辑
摘要:**要求:**实现特定库函数pow. **解决思路:**首先常规的解法大家肯定都会,这里主要是一种高效而且很全面的方法。我们要考虑如果输入的指数小于1,也就是零和负数的时候,怎么办呢? 这样办,可以先对指数求绝对值,然后算出次方的结果后,再取倒数。那么,问题来了,底数是0的时候,0没有倒数啊,假如你 阅读全文
posted @ 2020-06-28 22:35 heyhy 阅读(245) 评论(0) 推荐(0) 编辑
摘要:今天写的这个堆排序算法,用了很久的时间,一是理解编程思想;二是调试出现了诸多的小错误。现在记下来,下不为例。 预备知识 堆排序堆是一种特殊的树形数据结构,即完全二叉树。堆分为大根堆和小根堆,大根堆为根节点的值大于两个子节点的值;小根堆为根节点的值小于两个子节点的值,同时根节点的两个子树也分别是一个堆 阅读全文
posted @ 2020-06-21 18:36 heyhy 阅读(29) 评论(0) 推荐(0) 编辑

Title
点击右上角即可分享
微信分享提示