自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 86:分割链表

问题描述给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5思路添加一个头结点,以对整个链表有一个共同的处理方式。如...

2019-12-25 13:50:55 132

原创 82:删除排序链表中的重复元素II

问题描述给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例输入: 1->2->3->3->4->4->5输出: 1->2->5输入: 1->1->1->2->3输出: 2->3思路安个头结点,遍历链表,如果重复则跳过即可。AC代码# Definition ...

2019-12-25 11:29:26 82

原创 81:搜索旋转排序数组II

问题描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例输入: nums = [2,5,6,0,0,1,2], target = 0输出: true输入: nums = [2,5,6,0,...

2019-12-24 23:45:46 136

原创 80:删除排序数组中的重复项II

问题描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后...

2019-12-24 17:32:18 170

原创 79:单词搜索

问题描述给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCE...

2019-12-24 16:49:11 121

原创 78:子集

问题描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]这题有意思,我们可以用77题的结果代码,稍加改巴改巴就能解决。不过这样做的话好像有点…耍...

2019-12-24 15:38:23 184

原创 77:组合

问题描述给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]问题分析全面做过类似的。只要用回溯法+DFS就能解决。但是纯DFS很慢,我们要控制一下递归深度,对没必要递归下去的趁早结束。这样可以beat 80...

2019-12-24 15:15:28 153

原创 75:颜色分类

问题描述给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。...

2019-12-23 20:42:17 90

原创 【0x19】Java字符串和编码

在Java中,String是一个引用类型,它本身也是一个class。但是,Java编译器对String有特殊处理,即可以直接用"…"来表示一个字符串。字符串的表示方式有3种:package program;import java.util.Arrays;public class Main{ public static void main(String[] args){ ...

2019-12-23 13:26:26 464

原创 74:搜索二维矩阵

问题描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true输入:matrix...

2019-12-22 14:19:53 139

原创 73:矩阵置零

问题描述给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出: [ ...

2019-12-22 13:59:18 203

原创 71:简化路径

问题描述以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须...

2019-12-22 12:24:41 150

原创 64:最小路径和

问题描述给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。问题分析没什么好说的,这种要用到过去的结果的题目,都用动态规划来做,这道题显然不能用贪心。...

2019-12-22 11:50:05 116

原创 【0x18】Java模块

从Java 9开始,JDK又引入了模块(Module)。我们知道,.class文件是JVM看到的最小可执行文件,而一个大型程序需要编写很多Class,并生成一堆.class文件,很不便于管理,所以,jar文件就是class文件的容器。但是Jar包也就仅仅是class文件的容器而已。就跟我们为了传输很多文件方便一样,打包成zip。但是我们自己写的代码有时候要用到第三方的jar包(因为有的轮子不...

2019-12-22 11:15:50 237

原创 63:不同路径II

问题描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例输入:[ [0,0,...

2019-12-20 20:56:53 73

原创 Java修饰符详解

Java提供的修饰符主要有两种:访问修饰符非访问修饰符修饰符用来定义类、方法或者变量,通常放在语句的最前端。访问控制修饰符Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。default (即默认,什么也不写,注意与java8的default关键字加以区分): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方...

2019-12-15 14:24:51 171

原创 62:不同路径

问题描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例输入: m = 3, n = 2输出: 3解释:从左上角开始...

2019-12-13 15:05:16 74

原创 61:旋转链表

问题描述给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5...

2019-12-13 14:51:31 76

原创 60:第k个排列

问题描述给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例输入: n = 3, k = 3输出: "2...

2019-12-13 14:18:46 212

原创 59:螺旋矩阵II

问题描述给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]问题分析没啥好分析的,模拟一下旋转即可。AC代码class Solution: def generateMatrix(self, n: int): ...

2019-12-13 12:39:27 87

原创 55:跳跃游戏

问题描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为...

2019-12-13 11:20:36 156

原创 56:合并区间

问题描述给出一个区间的集合,请合并所有重叠的区间。样例输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。问题分析一个朴...

2019-12-12 20:56:14 87

原创 50:pow(x,n)

问题描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例:输入: 2.00000, 10输出: 1024.00000输入: 2.10000, 3输出: 9.26100输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数...

2019-12-12 20:15:56 218

原创 54:螺旋矩阵

问题描述给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,...

2019-12-12 19:27:34 119

原创 49:字母异位词分组

问题描述给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"],输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。问题分析:这题目的...

2019-12-12 16:32:52 123

原创 48:旋转图像

问题描述给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例给定 matrix = [ [1,2,3], [4,5,6], [7,8,9]],原地旋转输入矩阵,使其变为:[ [7,4,1], [8,5,2], [9,6,3]]...

2019-12-12 14:36:13 85

原创 47:全排列 II

问题描述给定一个可包含重复数字的序列,返回所有不重复的全排列。示例输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]写在做题之前hash良好的查找性能是建立在良好的hash算法上的,我们需要有好的散列函数和冲突处理机制,所以我们所说的O(1)只是说hash查找的量级是O(1),并不是说我们就可以不需要计算了。所以如果我们查找用的是数...

2019-12-12 14:10:17 80

原创 46:全排列

问题描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]思路:循环DFS就可以了。注意不能用已经用过的元素。AC代码:class Solution: def permute(self, nums): res ...

2019-12-07 16:29:09 148

原创 40:组合总和II

问题描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例示例1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求...

2019-12-07 15:29:35 83

原创 39:组合总和

问题描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例示例1:输入: candidates = [2,3,6,7], target = 7,所求解...

2019-12-07 14:36:13 159

原创 36:有效的数独

判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例1:输入:[ ["5","3",".",".","7",".","....

2019-12-07 12:38:23 81

原创 33:搜索旋转排序数组

问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。实例:输入: nums = [4,5,6,7,0,1,2], ...

2019-12-06 17:49:01 153

原创 32: 最长有效括号

问题描述:给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。实例1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”实例2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”问题分析,这题在leetcode属于hard难度的问题。而且是题号非常靠前hard级别的问题。面试时遇到的概率非常大。所以要当真。...

2019-12-05 16:59:32 158

原创 31:下一个排列

问题描述:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,2 3,2,1 → 1,2,3 1,1,5 → 1,5,1思路:首先明确,这题是让我们找下一...

2019-12-03 20:58:07 67

原创 110: 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。给定二叉树 [1,2,2,3,3,null,null,4,4] 1...

2019-12-02 13:16:16 164

原创 字节跳动测试开发实习生1面2面hr面面经

一面一个很可爱的小姐姐。问了:你在滴滴的实习内容。输入一个url到打开网页都发生了什么。算法题:一堆括号,统计有多少对。{}{{{{{{}}}}}}{}{}{}{}{}{}{}{}{}{}这个我用了两次遍历。复杂度O(n)。问:还有没有别的做法?答:dp,但是dp复杂度普遍大于等于O(n^2),所以我觉得我这个办法是最好的。linux题目:统计某文件中包含error的行...

2019-12-01 11:32:21 1374 1

空空如也

空空如也

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

TA关注的人

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