![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetCode刷题之旅
qq_36089856
这个作者很懒,什么都没留下…
展开
-
leetcode——三角形最小路径和(动态规划)
题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为11(即,2+3+5+1= 11)。说明:如果你可以只使用 O(n)的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。自上而下...原创 2020-07-14 20:18:09 · 145 阅读 · 0 评论 -
leetCode——恢复空格
题目描述哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboot"。在处理标点符号和大小写之前,你得先把它断成词语。当然了,你有一本厚厚的词典dictionary,不过,有些词没在词典里。假设文章用sentence表示,设计一个算法,把文章断开,要求未识别的字符最少,返回未识别的字符数。注意:本题相对原题.原创 2020-07-13 15:12:13 · 174 阅读 · 0 评论 -
leetCode——不同路径||
题目描述 不同路径 II一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m和 n 的值均不超过 100。示例1:输入:[ [0,0,0], [0,1,0], [0,0,0]]输出: 2解释:3x3 网格的正...原创 2020-07-06 21:27:19 · 82 阅读 · 0 评论 -
leetCode——长度最小的字数组
题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。方法1:暴力解决这个问题,从窗口大小为1开始遍历数组,如找到一个子数组大于给.原创 2020-06-28 19:35:23 · 166 阅读 · 0 评论 -
leetCode——缺失的第一个正数
题目描述给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例1:输入: [1,2,0]输出: 3示例2:输入: [3,4,-1,1]输出: 2示例3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。第一个困难的题目,困难的地方在于时间复杂度为O(n),空间复杂度为0(1)题目给的提示:Remember that O(2n) = O(n)方法1:所以我们可以先排序,升序排序,然...原创 2020-06-27 19:11:03 · 178 阅读 · 0 评论 -
leetCode——单词拆分
题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。示例 2:输入: s = "applepenapple", wordD..原创 2020-06-25 18:52:24 · 128 阅读 · 0 评论 -
leetCode——二进制求和
题目描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。方法1 将字符串转成数组在翻转,按二进制加法进行计算,将结果保存...原创 2020-06-23 19:07:11 · 125 阅读 · 0 评论 -
leetCode——两数相加||
题目描述给你两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。进阶:如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。示例:输入:(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 8 -> 0 -> 7方法1: 沿用上个题的思路,每一位进行相加,不过需要先..原创 2020-06-22 22:42:52 · 96 阅读 · 0 评论 -
leetCode——两数相加
题目描述:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:最开始的思路有点复杂,发现考虑不周全,还是简单说一下吧,首先..原创 2020-06-21 21:03:09 · 85 阅读 · 0 评论 -
leetCode——两数之和_升序数组
升序数组的两数之和题目描述给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, 15], target = 9输出: [1,2]解释: 2 与 7 之和等于目标数 9 。因此 i...原创 2020-06-20 21:51:57 · 521 阅读 · 0 评论 -
leetCode —— 两数之和
整体思路还是较为简单的,遍历数组,通过给定的target减去遍历的值得到一个差,然后再去数组里寻找这个差,找到则成功,没有找到就继续遍历。这里的重点是如何寻找这个差方法2是再次遍历数组方法3是先转换成字典,也可以理解是hashmap,然后再进行上述过程,由于hashmap查找的效率无限接近与O(1),所以耗时短方法4是在第三种方法的基础上不需要再对整个dict进行寻找,再加入一个新的键值对之前,判断是否满足条件,满足之后就直接返回,不满足就继续这样,这个题其实是考察耗时最短的查找方法暴力.原创 2020-06-18 21:53:17 · 83 阅读 · 0 评论