自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(136)
  • 收藏
  • 关注

原创 LeetCode 0225 -- 用队列实现栈

用队列实现栈题目描述使用队列实现栈的下列操作:push(x) – 元素 x 入栈;pop() – 移除栈顶元素;top() – 获取栈顶元素;empty() – 返回栈是否为空。注意:你只能使用队列的基本操作 – 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。你可以假设所有

2020-05-13 14:04:10 193

原创 LeetCode 0572 -- 另一个树的子树

另一个树的子树题目描述给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \ 1 2给定的树 t: 4 / \ 1 2返回 true,因为 t 与 s 的...

2020-05-07 23:58:54 397

原创 LeetCode 0983 -- 最低消费

最低票价在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的...

2020-05-07 00:30:40 225

原创 LC - 跳跃游戏II

跳跃游戏II题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃次数是 2。  从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3&nbs...

2020-05-04 23:40:23 257

原创 CPU缓存与性能优化

CPU缓存与性能优化如何通过提升CPU缓存的命中率来优化程序的性能?极客时间 - 陶辉 - CPU缓存:怎样写代码能够让CPU执行得更快?https://time.geekbang.org/column/article/230194CPU缓存由更快的SRAM构成(内存由DRAM构成),而且离CPU核心更近,如果运算时需要的数据是从CPU缓存读取,而不是从内存中读取,运算速度就会快很多。...

2020-05-02 23:48:01 1357 4

原创 山脉数组中查找目标值

山脉数组中查找目标值题目描述给你一个 山脉数组mountainArr,请你返回能够使得mountainArr.get(index)等于target的最小下标。如果不存在这样的下标,就请返回-1。何为山脉数组?如果数组A是一个山脉数组的话,那它满足如下条件:首先,A.length >= 3;其次,在0 < i < A.length - 1条件下,存在i使得:A[0...

2020-04-30 00:00:38 186

原创 LC - P03 机器人大冒险

机器人大冒险题目描述力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:U: 向y轴正方向移动一格;R: 向x轴正方向移动一格。不幸的是,在xy平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。给定终点坐标(x, y),返回机器人能...

2020-04-27 23:27:16 252

原创 Golang使用接口和组合实现hook函数

目录Golang使用接口和组合实现hook函数继承和组合的优缺点继承的优缺点优点缺点组合的优缺点优点缺点实现父类调用子类方法的效果Golang使用接口和组合实现hook函数面向对象的高级编程语言(以Java为例)主要有四大特性:抽象、封装、继承和多态:抽象是指提取出某一类事物的共性(包括特征和行为),形成类模型,用类的属性和方法分别表示这类事物的特征和行为。封装是指把抽象出来的特征和行为...

2020-04-25 00:44:47 5049

原创 LeetCode 0232 -- 用栈实现队列

用栈实现队列题目描述使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 ...

2019-12-21 21:50:52 94

原创 LeetCode 0621 -- 任务调度器

任务调度器题目描述给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者...

2019-12-17 20:30:32 247

原创 LeetCode 0647 -- 回文子串

回文子串题目描述给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa", "aaa"....

2019-12-17 14:50:36 140

原创 LeetCode 0378 -- 有序矩阵中第K小的元素

有序矩阵中第K小的元素题目描述给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。解题思路个人AC无。最优解二分查找声明两个变量m...

2019-12-16 11:59:46 119

原创 LeetCode 0171 -- Excel表列序号

Excel表列序号题目描述给定一个Excel表格中的列名称,返回其相应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: "A"输出: 1示例 2:输入: "AB"输出: 28示例 3:输入: "ZY"输出: 701解题思路个人AC...

2019-12-15 18:55:12 111

原创 LeetCode 0173 -- 二叉搜索树迭代器

二叉搜索树迭代器题目描述实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。示例:BSTIterator iterator = new BSTIterator(root);iterator.next(); // 返回 3iterator.next(); // 返回 7iterator.hasNext...

2019-12-15 18:52:32 119

原创 LeetCode 0326 -- 3的幂

3的幂题目描述给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 45输出: false进阶:你能不使用循环或者递归来完成本题吗?解题思路个人ACclass Solution { public boolean isPowerOfThree(int n) {...

2019-12-15 15:59:54 120

原创 LeetCode 0144 -- 二叉树的前序遍历

二叉树的前序遍历题目描述给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]解题思路个人AC迭代法/** * Definition for a binary tree node. * public class TreeNode { * int val;...

2019-12-14 23:01:58 103

原创 LeetCode 0337 -- 打家劫舍III

打家劫舍III题目描述在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。示例 1:...

2019-12-13 15:07:09 133

原创 LeetCode 0240 -- 搜索二维矩阵II

搜索二维矩阵题目描述编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13...

2019-12-13 10:30:22 107

原创 LeetCode 0058 -- 最后一个单词的长度

最后一个单词的长度题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例 1:输入: "Hello World"输出: 5示例 2:输入: "Hello "输出: 5解题思路个人ACclass Solution { public in...

2019-12-12 22:08:05 90

原创 LeetCode 0210 -- 课程表II

课程表II题目描述现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1...

2019-12-12 21:58:38 119

原创 LeetCode 0207 -- 课程表

课程表题目描述现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程0,你需要先完成课程1,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能的。示...

2019-12-12 21:28:52 209

原创 LeetCode 0338 -- 比特位计数

比特位计数题目描述给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]进阶:给出时间复杂度为O(n*sizeof(integer))的解答非常容易。但你可以在线性时间O(n)内用一趟扫描做到吗?要...

2019-12-12 21:27:35 96

原创 LeetCode 1185 -- 一周中的第几天

一周中的第几天题目描述给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}。示例 1:输入:day = 31, mon...

2019-12-11 23:12:24 125

原创 LeetCode 0114 -- 二叉树展开为链表

二叉树展开为链表题目描述解题思路个人AC将左子树放在右子树的位置,并将左子树置空;将原右子树放在原左子树的最右结点的右结点上;考虑新的右子树的根节点,重复上述过程,直到新的右子树为null。/** * Definition for a binary tree node. * public class TreeNode { * int val; * Tree...

2019-12-10 22:06:19 100

原创 LeetCode 0085 -- 最大矩形

最大矩形题目描述给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例:输入:[ ["1","0","1","0","0"], ["1","0","1","1","1"], ["1","1","1","1","1"], ["1","0","0","1","0"]]输出: 6解题思路个人ACclass Solution {...

2019-12-10 10:04:35 169

原创 LeetCode 0035 -- 搜索插入位置

搜索插入位置题目描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...

2019-12-09 23:31:53 94

原创 LeetCode 0096 -- 不同的二叉搜索树

不同的二叉搜索树题目描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 ...

2019-12-08 21:17:57 87

原创 LeetCode 0238 -- 除自身以外数组的乘积

除自身以外数组的乘积题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出...

2019-12-08 19:55:52 96

原创 LeetCode 0236 --二叉树的最近公共祖先

二叉树的最近公共祖先题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4][外链图片转存失败,源...

2019-12-07 23:11:51 122

原创 LeetCode 0230 -- 二叉搜索树中第k小的元素

二叉搜索树中第k小的元素题目描述给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,...

2019-12-06 17:27:01 136

原创 LeetCode 0089 -- 格雷编码

格雷编码题目描述格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列...

2019-12-06 16:46:31 97

原创 LeetCode 0043 -- 字符串相乘

字符串相乘题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 ...

2019-12-05 15:30:53 116

原创 LeetCode 0016 -- 最接近的三数之和

最接近的三数之和题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).解题思路个人...

2019-12-05 14:18:33 103

原创 LeetCode 0235 -- 二叉搜索树的最近公共祖先

二叉搜索树的最近公共祖先题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 ...

2019-12-04 15:22:35 91

原创 LeetCode 0541 -- 反转字符串II

反转字符串题目描述给定一个字符串和一个整数 k,你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符,则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符,则反转前 k 个字符,并将剩余的字符保持原样。示例 :输入: s = "abcdefg", k = 2输出: "bacdfeg"要求:该字符串只包含小写的英文字母。给定字符...

2019-12-04 11:15:27 109

原创 LeetCode 0557 -- 反转字符串中的单词III

反转字符串中的单词III题目描述给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" **注意:**在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解题思路个人ACclass Sol...

2019-12-04 10:46:37 75

原创 LeetCode 0344 -- 反转字符串

反转字符串中的元音字母题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:["h","e","l","l","o"]输出:["o","l","l","e","h...

2019-12-04 10:33:46 73

原创 LeetCode 0231 -- 2的幂

2的幂题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false解题思路个人ACclass Solution { public boolean isPowerOfTwo(int n) { ...

2019-12-04 10:27:18 107

原创 LeetCode 0581 -- 最短无序连续子数组

最短无序连续子数组题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明:输入的数组长度范围在 [1,...

2019-12-03 11:39:04 124

原创 LeetCode 0538 -- 把二叉搜索树转换为累加树

把二叉搜索树转换为累加树题目描述给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18...

2019-12-03 10:21:30 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除