摘要: 1 二叉树递归灵魂三问 这个函数应该干什么? 函数功能 正向逻辑推理 base case是啥? 得到递归结果后,会做什么? 反向逻辑推理 下面使用一个题目来示例一下。 2 题目 2.1 236. 二叉树的最近公共祖先 2.1.1 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百 阅读全文
posted @ 2020-12-24 23:07 Cigar丶 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 1. 内部类 在Java中有一种类,被定义在一个类的内部,它被称为内部类(Nested Class)。Java中常见的内部类有三种,Inner Class,Anonymous Class,Static Nested Class。 2. Inner Class 有如下代码 public class M 阅读全文
posted @ 2020-12-24 20:52 Cigar丶 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 1. 抽象类和接口的区别 类可以实现无限个接口,但只能从一个抽象类继承。 抽象类中可以存在并实现非抽象方法,但接口里面的方法只能是public且没有实现的。 抽象类的成员变量可以被不同的修饰符来修饰,但接口的成员变量只能是静态常量(static final)。 抽象类是对象的抽象,接口是一种行为规范 阅读全文
posted @ 2020-12-23 21:39 Cigar丶 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 1. 继承 1.1 super的用法 在Java中,任何class的构造方法,第一行语句必须是调用父类的构造方法。 如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句super()。 下面代码定义了人和学生类的继承关系: class Person { String name; int age 阅读全文
posted @ 2020-12-22 20:14 Cigar丶 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.09. 字符串轮转 字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。 示例1: 输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True 阅读全文
posted @ 2020-12-21 22:50 Cigar丶 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.08. 零矩阵 编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输出: [ [1,0,1], [0,0,0], [1,0,1] ] 示例 2: 输入: [ [0,1,2,0] 阅读全文
posted @ 2020-12-21 22:49 Cigar丶 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵, 阅读全文
posted @ 2020-12-21 22:48 Cigar丶 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.06. 字符串压缩 字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。 示例1: 输入:"aa 阅读全文
posted @ 2020-12-21 22:47 Cigar丶 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.05. 一次编辑 字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。 示例 1: 输入: first = "pale" second = "ple" 输出: True 示例 2: 输入: fi 阅读全文
posted @ 2020-12-21 22:46 Cigar丶 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 原题目 面试题 01.04. 回文排列 给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。 回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。 回文串不一定是字典当中的单词。 示例1: 输入:"tactcoa" 输出:true(排列有"tacocat"、"atcocta" 阅读全文
posted @ 2020-12-21 22:45 Cigar丶 阅读(94) 评论(0) 推荐(0) 编辑