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