随笔分类 -  LeetCode

摘要:题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 阅读全文
posted @ 2019-11-06 16:01 菜鸟奋斗史 阅读(672) 评论(0) 推荐(0)
摘要:题目描述: 给出一个区间的集合,请合并所有重叠的区间。 题目解析: 先按首位置进行排序; 接下来,如何判断两个区间是否重叠呢?比如 a = [1,4],b = [2,3] 当 a[1] >= b[0] 说明两个区间有重叠. 但是如何把这个区间找出来呢? 左边位置一定是确定,就是 a[0],而右边位置 阅读全文
posted @ 2019-11-06 15:09 菜鸟奋斗史 阅读(261) 评论(0) 推荐(0)
摘要:题目描述: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 题目解析: 贪心算法: 如果某一个作为起跳点的格子可以跳跃的距离是 3,那么表示后面 3 个格子都可以作为起跳点。可以对每一个能作为起跳点的格子都尝试 阅读全文
posted @ 2019-11-06 10:57 菜鸟奋斗史 阅读(469) 评论(0) 推荐(0)
摘要:题目描述: 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶: 如果你已经实现复杂度为 O(n) 的解法, 阅读全文
posted @ 2019-11-05 16:12 菜鸟奋斗史 阅读(262) 评论(0) 推荐(0)
摘要:题目描述: 给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。 说明: 所有输入均为小写字母。不考虑答案输出的顺序。 题目解析: 这道题关键在于,如何找到可以唯一标识具有相同字母并且个数也一样的键,单词按字典顺序排序 代码实现: 时间复杂度:O(NKlogK),其 阅读全文
posted @ 2019-11-05 15:16 菜鸟奋斗史 阅读(219) 评论(0) 推荐(0)
摘要:题目描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 思路解析: 最直接的想法是先转置矩阵(即原矩阵的行变成新矩阵的列,原矩阵的行变成新矩阵的列,满足公式(AT) 阅读全文
posted @ 2019-11-04 16:42 菜鸟奋斗史 阅读(236) 评论(0) 推荐(0)
摘要:题目描述: 题目解析:来自leetcode@liweiwei1419 以示例输入: [1, 2, 3] 为例,如果让我们手写,要做到不重不漏,我们书写的策略可能是这样:“一位一位确定”,这样说比较笼统,具体是这样的: 1、先写以 1 开始的两个排列:[1, 2, 3]、[1, 3, 2];2、再写以 阅读全文
posted @ 2019-11-04 11:16 菜鸟奋斗史 阅读(583) 评论(0) 推荐(0)
摘要:题目描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例  阅读全文
posted @ 2019-11-01 16:12 菜鸟奋斗史 阅读(381) 评论(0) 推荐(0)
摘要:题目描述: 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], ta 阅读全文
posted @ 2019-10-31 20:20 菜鸟奋斗史 阅读(309) 评论(0) 推荐(0)
摘要:题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂 阅读全文
posted @ 2019-10-31 19:29 菜鸟奋斗史 阅读(192) 评论(0) 推荐(0)
摘要:题目描述: 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2, 阅读全文
posted @ 2019-10-31 16:26 菜鸟奋斗史 阅读(228) 评论(0) 推荐(0)
摘要:题目描述: 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()"] 题目解析:动态规划 首先,面向小白:什么是动态规划?在 阅读全文
posted @ 2019-10-31 14:45 菜鸟奋斗史 阅读(1068) 评论(0) 推荐(0)
摘要:题目描述: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 方法一:拼接两个链表 代码实现: 方法二:递归 思路: 思路标签:链表、递归这道题可以使用递归实现,新链表也 阅读全文
posted @ 2019-10-30 16:59 菜鸟奋斗史 阅读(321) 评论(0) 推荐(0)
摘要:题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。 示例 1: 输入: "()"输出: true示例 2: 输入: "()[] 阅读全文
posted @ 2019-10-30 16:01 菜鸟奋斗史 阅读(260) 评论(0) 推荐(0)
摘要:题目描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 题目解析: 我们 阅读全文
posted @ 2019-10-30 14:53 菜鸟奋斗史 阅读(203) 评论(0) 推荐(0)
摘要:题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管 阅读全文
posted @ 2019-10-29 16:29 菜鸟奋斗史 阅读(402) 评论(0) 推荐(0)
摘要:题目描述: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求 阅读全文
posted @ 2019-10-29 15:46 菜鸟奋斗史 阅读(281) 评论(0) 推荐(0)
摘要:题目描述: 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至 阅读全文
posted @ 2019-10-29 14:34 菜鸟奋斗史 阅读(362) 评论(0) 推荐(0)
摘要:题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。p 可能为空 阅读全文
posted @ 2019-09-05 10:04 菜鸟奋斗史 阅读(321) 评论(0) 推荐(0)
摘要:题目描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2: 输入: "cbbd"输出: "bb" 解法一:扩展中心,中心开花 我们知道回文串一定是对称的,所 阅读全文
posted @ 2019-08-27 20:05 菜鸟奋斗史 阅读(370) 评论(0) 推荐(0)