leetcode
BeforeEasy
这个作者很懒,什么都没留下…
展开
-
动态规划专题 -最大子序列和、硬币找零、最长递增子序列、叠箱子、造桥
推荐网站:一个dp学习网站https://people.cs.clemson.edu/~bcdean/dp_practice/最大子序列和描述对于一个数组(有正有负),找到连续的A[i]…A[j]使其和最大可以采用动态规划的算法以M[j]为到下标j时最大的子序列和,那么:M[j] = max(M[j-1]+A[j], A[j])显然从M[j-1]阶段到M[j]阶段,只有这两种情况,比...原创 2019-11-03 16:15:17 · 227 阅读 · 0 评论 -
leetcode 33 搜索旋转排序数组
描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2], ...原创 2019-03-22 20:41:37 · 135 阅读 · 0 评论 -
leetcode 3. 无重复字符的最长子串
描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke...原创 2019-03-26 22:05:14 · 134 阅读 · 0 评论 -
leetcode 35. 搜索插入位置
描述给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 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输出: 0分析蛮简...原创 2019-03-27 21:48:27 · 126 阅读 · 0 评论 -
leetcode 36. 有效的数独 Python
描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,".",...原创 2019-04-12 23:53:50 · 347 阅读 · 0 评论 -
leetcode 39组合总和
描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。样例示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为...原创 2019-06-20 23:28:26 · 151 阅读 · 0 评论 -
leetcode组合总和 II
描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[...原创 2019-07-01 17:08:19 · 128 阅读 · 0 评论 -
LeetCode 第k个排列 c++ 回溯
描述给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: ...原创 2019-07-07 23:22:43 · 484 阅读 · 0 评论 -
leetcode 77 组合 回溯 C++
描述给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combinations著作权归领扣网络所有。商业转载请联系官方授...原创 2019-07-08 12:34:21 · 287 阅读 · 0 评论 -
LeetCode 子集 & 子集II
子集描述给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subset...原创 2019-07-04 10:25:10 · 287 阅读 · 0 评论 -
leetcode 140 单词拆分2 C++ 回溯
描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = “catsanddog”wordDict = [“cat”, “cats”, “and”, “sand”, “dog”]...原创 2019-07-13 21:14:32 · 323 阅读 · 0 评论 -
Leetcode 211. 添加与搜索单词 - 数据结构设计 C++ 字典树 回溯
描述设计一个支持以下两种操作的数据结构:void addWord(word)bool search(word)search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。示例:addWord(“bad”)addWord(“dad”)addWord(“mad”)search(“pad”) -> falsesear...原创 2019-07-14 23:21:08 · 460 阅读 · 0 评论 -
LeetCode 212. 单词搜索 II 字典树 回溯 C++
描述给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。示例:输入:words = [“oath”,“pea”,“eat”,“rain”] and board =[[‘o’,‘...原创 2019-07-15 00:37:16 · 604 阅读 · 0 评论 -
leetcode 131 分隔回文串 C++ 回溯
描述给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-partitioning著作权归领扣网络所有。商业转载请联系官方授权,...原创 2019-07-10 19:15:30 · 428 阅读 · 0 评论 -
LeetCode 44 通配符匹配 C++ 双指针&动态规划
描述给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出...原创 2019-07-11 19:51:21 · 376 阅读 · 0 评论 -
leetcode 79 单词搜索 C++ 回溯
描述给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 ...原创 2019-07-12 10:05:32 · 703 阅读 · 0 评论 -
leetcode 38 报数
描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一...原创 2019-03-26 00:06:55 · 127 阅读 · 0 评论 -
leetCode 移除元素 python
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两...原创 2019-03-18 20:47:21 · 210 阅读 · 0 评论 -
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 C++
描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10]...原创 2019-03-21 20:47:26 · 385 阅读 · 0 评论 -
LeetCode : 7 Reverse Integer C++
DescriptionGiven a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123 Output: 321Example 2:Input: -123 Output: -321Example 3:Input: 120 Output: 21 Note...原创 2018-03-23 15:19:48 · 172 阅读 · 0 评论 -
LeetCode : 12 整数转罗马数字 C++
描述给定一个整数,将其转为罗马数字。 输入保证在 1 到 3999 之间。分析还是关键是罗马数字的规律罗马数字共有7个,即Ⅰ(1)、Ⅴ(5)、Ⅹ(10)、Ⅼ(50)、Ⅽ(100)、Ⅾ(500)和Ⅿ(1000)。按照下述的规则可以表示任意正整数。需要注意的是罗马数字中没有“0”,与进位制无关。一般认为罗马数字只用来记数,而不作演算。重复数次:一个罗马数字重复几次,就表示这个...原创 2018-03-29 23:41:05 · 1030 阅读 · 0 评论 -
Leetcode 3-最长无重复子串
题目:Given a string, find the length of the longest substring without repeating characters.Examples:Given "abcabcbb", the answer is "abc", which the length is 3.Given "bbbbb", the answer is "b", with th...原创 2018-03-20 16:39:54 · 196 阅读 · 0 评论 -
Leetcode : 8 String to Integer (atoi) C++
DescriptionImplement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possib...原创 2018-03-24 16:38:17 · 201 阅读 · 0 评论 -
Leetcode: 5 Longest Palindromic Substring 最长回文子串
Discription:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example:Input: “babad”Output: “bab”Note: “aba” is also a valid answer.Exam原创 2018-03-21 19:40:29 · 193 阅读 · 0 评论 -
Leetcode : 6 ZigZag Conversion C++
描述The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H N A P L S...原创 2018-03-22 11:10:04 · 279 阅读 · 0 评论 -
LeetCode :9 回文数 C++
描述对,就是这么突然的切换到了leetcode-cn,变成了全中文界面 判断一个整数是否是回文数。不能使用辅助空间。 一些提示: 负整数可以是回文数吗?(例如 -1) 如果你打算把整数转为字符串,请注意不允许使用辅助空间的限制。 你也可以考虑将数字颠倒。但是如果你已经解决了 “颠倒整数” 问题的话,就会注意到颠倒整数时可能会发生溢出。你怎么来解决这个问题呢? ...原创 2018-03-26 20:04:06 · 1655 阅读 · 0 评论 -
Leetcode : 13 罗马数字转整数
描述给定一个罗马数字,将其转换成整数。返回的结果要求在 1 到 3999 的范围内。分析摘自维基百科 罗马数字共有7个,即Ⅰ(1)、Ⅴ(5)、Ⅹ(10)、Ⅼ(50)、Ⅽ(100)、Ⅾ(500)和Ⅿ(1000)。按照下述的规则可以表示任意正整数。需要注意的是罗马数字中没有“0”,与进位制无关。一般认为罗马数字只用来记数,而不作演算。重复数次:一个罗马数字重复几次,就表示这个...原创 2018-03-27 23:55:33 · 260 阅读 · 0 评论 -
LeetCode:10 正则表达式匹配 C++
描述实现支持 '.' 和 '*' 的正则表达式匹配。'.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。匹配应该覆盖整个输入字符串(不是部分字符串)。函数:bool isMatch(const char *s, const char *p)>例子:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","a原创 2018-03-28 23:27:09 · 2712 阅读 · 0 评论 -
LeetCode 11 : 盛最多水的容器 C++ 贪心
描述给定 n 个正整数 a1,a2,…,an,其中每个点的坐标用(i, ai)表示。 画 n 条直线,使得线 i 的两个端点处于(i,ai)和(i,0)处。请找出其中的两条直线,使得他们与 X 轴形成的容器能够装最多的水。 注意:你不能倾斜容器,n 至少是2。分析应该很容易想到暴力的从头到尾两两比较,复杂度为O(n^2) 那么有没有简化一点的方法呢? 分别从左边和右边开始 举个...原创 2018-04-04 15:28:33 · 1112 阅读 · 0 评论 -
Freckles -- 考研 最小生成树
题目描述In an episode of the Dick Van Dyke show, little Richie connects the freckles on his Dad’s back to form a picture of the Liberty Bell. so his Ripley’s engagement falls through. Consider Dic...原创 2018-05-24 12:21:05 · 384 阅读 · 0 评论 -
letcode 四数之和 python
描述给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:...原创 2019-02-15 23:27:52 · 270 阅读 · 0 评论 -
leetCode 28实现strStr() Python KMP
描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “...原创 2019-03-19 23:53:56 · 357 阅读 · 0 评论 -
Leetcode 31 下一个排列 python
描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1分析从最后一个开始找,找到第一个非升序的数,记录其位...原创 2019-03-20 21:32:01 · 196 阅读 · 0 评论 -
LeetCode k个一组翻转链表 C++
题目描述给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...原创 2019-03-18 00:13:00 · 955 阅读 · 0 评论 -
LeetCode : 2 Add Two Numbers C++
题意如下:You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and r原创 2018-02-04 23:22:52 · 432 阅读 · 0 评论