![](https://img-blog.csdnimg.cn/2020122120114212.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leetcode
文章平均质量分 70
以高质量排版和内容分享Leetcode题目
乾小二
大家好!我是专注于云原生、数据库技术的元小二!
展开
-
@LeetCode翻转数位--Reverse Bits LCCI[C++]
@LeetCode翻转数位--Reverse Bits LCCI[C++]问题描述解决方法代码实现问题描述给定一个32位整数 num,你可以将一个数位从0变为1。请编写一个程序,找出你能够获得的最长的一串1的长度。示例1输入: num = 1775(11011101111)输出: 8解决方法需要解决的核心问题是,找出前后连续 1 最长的 0,然后翻转。可以采用遍历方式记录连续 1 的个数,维持两个数字 cur 与 pre,cur表示当前 0 后面有多少连续 1,pre 表示当前 0 前面有原创 2020-09-15 16:00:55 · 134 阅读 · 0 评论 -
LeetCode单词拆分——动态规划
LeetCode单词拆分——动态规划前言LeetCode #139 单词拆分LeetCode #140 单词划分II前言字符串的问题很多都是动态规划解决的,LeetCode #139 单词拆分、#140 单词拆分II 是典型运用动态规划的两道题。LeetCode #139 单词拆分题目描述给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格...原创 2019-12-17 17:43:31 · 239 阅读 · 0 评论 -
LeetCode回文串专题——最长回文子串,分割回文串
LeetCode 回文串专题整理前言LeetCode #5——最长回文子串题目描述算法思想与代码实现LeetCode #131——分割回文串题目描述算法思路与代码实现LeetCode #132——分割回文串 II题目描述算法思想与代码实现LeetCode #5278 分割回文串 III题目描述算法描述与代码实现前言字符串是算法中常考的数据类型,回溯或动态规划是解决这类问题的常用算法。在字符串...原创 2019-12-02 19:25:26 · 448 阅读 · 1 评论 -
二分查找总结——模板+例题
@二分查找总结——模板+例题前言二分查找模板 I代码关键属性边界判断与语法例题:LeetCode33-搜索旋转数组二分查找模板 II代码关键属性边界判断与语法例题:LeetCode153-寻找旋转排序数组中的最小值二分查找模板 III代码关键属性边界判断与语法例题:LeetCode658-找到 K 个最接近元素参考资料前言二分查找可能是很多人学习的第一类算法。在之前的学习中,没有系统总结这类算...原创 2019-11-29 17:10:31 · 389 阅读 · 0 评论 -
@LeetCode合并K个排序链表--Merge k Sorted Lists[C++]
@LeetCode合并K个排序链表--Merge k Sorted Lists[C++]问题描述解决方法及复杂度分析问题描述合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5, 1->3->4, 2->6 ]输出:1->1-&g原创 2019-03-08 14:21:52 · 118 阅读 · 0 评论 -
@LeetCode最接近的三数之和--3Sum Closest[C++]
@LeetCode最接近的三数之和--3Sum Closest[C++]问题描述解决方法与复杂度分析程序实现问题描述给定一个包括 n 个整数的数组 nums 和一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1, 2, 1, -4],和 target = 1.与 ...原创 2019-03-04 20:35:29 · 132 阅读 · 0 评论 -
@LeetCode电话号码的字母组合--Letter Combinations of a Phone Number[C++]
@LeetCode电话号码的字母组合--Letter Combinations of a Phone Number[C++]问题描述解决方法及复杂度分析程序实现问题描述给定一个包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。数字字母数字字母数字字母12abc3def4...原创 2019-03-04 21:23:50 · 224 阅读 · 0 评论 -
@LeetCode组合总和--Combination Sum[C++]
@LeetCode组合总和--Combination Sum[C++]问题描述解决方法代码实现问题描述给定一个 无重复元素 的数组 candidates 和一个目标数 target,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target )都是正整数。解集不能包含重复的组合。示...原创 2019-04-22 16:16:28 · 161 阅读 · 0 评论 -
@LeetCode缺失的第一个正数--First Missing Positive[C++]
@LeetCode缺失的第一个正数--First Missing Positive[C++]问题描述解决方法与复杂度分析复杂度分析程序实现问题描述给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例1:输入:[1, 2, 0]输出:3示例2:输入:[3, 4, -1, 1]输出:2示例3:输入:[7, 8, 9, 11, 12]输出:1说明:算法时间...原创 2019-04-22 17:16:49 · 107 阅读 · 0 评论 -
@LeetCode二叉树展开为链表--Flatten Binary Tree to Linked List[C++]
@LeetCode二叉树展开为链表--Flatten Binary Tree to Linked List[C++]问题描述解题思路程序实现问题描述给定一个二叉树,原地将它展开为链表。例如:将其展开为:解题思路观察链表,可以看出是先序遍历二叉树后依次放入链表中。因此,我们明确采用深度优先搜索。先将根结点放入 vector 中,再遍历左子树直到空结点为止,之后遍历右子树直到空结点为...原创 2019-05-26 10:19:15 · 139 阅读 · 0 评论 -
@LeetCode括号生成--Generate Parentheses[C++]
@LeetCode括号生成--Generate Parentheses[C++]问题描述解决方法及复杂度分析程序实现问题描述给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n=3n=3n=3,生成结果为:“((()))”,“(()())”,“(())()”,“()(())”,“()()()”解决方法及复杂度分析思路可以...原创 2019-03-05 23:58:03 · 151 阅读 · 0 评论 -
@LeetCode三数之和--3Sum[C++]
@LeetCode三数之和--3Sum[C++]问题描述解决方法及复杂度分析程序实现问题描述给定一个包含 n 个整数的数组 nums,判断nums是否存在三个元素a, b, c,使得 a+b+c=0a+b+c=0a+b+c=0 ?找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。例如,给定数组 nums = [-1, 0, 1, 2, -1, -4].满足要求的三...原创 2019-03-02 19:12:52 · 439 阅读 · 0 评论 -
@LeetCode罗马数字转整数--Roman to Integer[C++]
@LeetCode罗马数字转整数--Roman to Integer[C++]问题描述解决方法及复杂度分析程序实现问题描述罗马数字包含以下七种字符:I, V, X, L, C, D 和 M。例如,罗马数字 2 写做 II,即为两个并列的 1。12 写做 XII,即为 X + II。27 写做 XXVII,即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存...原创 2019-03-01 16:16:34 · 128 阅读 · 0 评论 -
@LeetCode 两数之和--Two Sum [C++]
@LeetCode 两数之和--Two Sum [C++]问题描述解题方法及复杂度分析暴力法程序实现问题描述新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图...原创 2019-01-03 16:20:54 · 344 阅读 · 1 评论 -
@Leetcode无重复字符的最长子串--Longest Substring Without Repeating Characters[C++]
class Solution { public: int lengthOfLongestSubstring(string s) { int n = s.size(); int ans = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j &am原创 2019-01-20 12:08:27 · 169 阅读 · 0 评论 -
@LeetCodeZ字形变换--ZigZag Conversion[C++]
@LeetCodeZ字形变换--ZigZag Conversion[C++]问题描述解决方法及复杂度分析按行排序程序实现按行排序问题描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”...原创 2019-02-01 15:52:43 · 252 阅读 · 0 评论 -
@LeetCode字符串转换整数(atoi)--String to Integer(atoi)[C++]
@LeetCode字符串转换整数--String to Integer[C++]问题描述解决方法及复杂度问题程序实现问题描述请你来实现一个 atoi 函数,使其能将字符串转换成整数。说明:假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231,231−1][-2^{31},2^{31}-1][−231,231−1]。如果数值超过这个范围,请返回 INT_MAX(23...原创 2019-02-01 19:53:22 · 151 阅读 · 0 评论 -
@LeetCode回文数--Palindrome Number[C++]
@LeetCode回文数--Palindrome Number[C++]问题描述解决方法及复杂度分析程序实现问题描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右到左)读都是一样的整数。示例1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读,为 -121。从右向左读,为 121-。因此它不是一个回文数。示例3...原创 2019-02-02 15:56:59 · 227 阅读 · 0 评论 -
@LeetCode寻找两个有序数组的中位数--Median of Two Sorted Arrays[C++]
@LeetCode寻找两个有序数组的中位数--Median of Two Sorted Arrays[C++]问题描述解题方法及复杂度分析递归法程序实现问题描述给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m+n))O(log(m+n))O(log(m+n))。可以假设 nums1 和 nums2 ...原创 2019-01-28 18:27:08 · 277 阅读 · 0 评论 -
@LeetCode正则表达式匹配--Regular Expression Matching[C++]
@LeetCode正则表达式匹配--Regular Expression Matching[C++]问题描述解决方法及复杂度分析程序实现问题描述给定一个字符串(s)和一个字符模式(p)。实现支持 '.‘和’*'的正则表达式匹配。‘.’ 匹配任意单个字符。‘*’ 匹配零个或多个前面的元素。匹配应该覆盖整个字符串(s),而不是部分字符串。说明:s 可能为空,且只包含从 a-z 的小...原创 2019-02-21 15:25:14 · 200 阅读 · 0 评论 -
@LeetCode最长回文子串--Longest Palindromic Substring[C++]
@LeetCode最长回文子串--Longest Palindromic Substring[C++]问题描述解决方法及复杂度分析Manacher算法程序实现问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000.示例1:输入:“babad”输出:“bab”注意:"aba"也是一个有效答案。示例2:输入:“cbbd”输出:“bb”解...原创 2019-01-30 16:51:28 · 196 阅读 · 0 评论 -
@LeetCode整数转罗马数字--Integer to Roman[C++]
@LeetCode整数转罗马数字--Integer to Roman[C++]问题描述解决方法及复杂度分析程序实现问题描述罗马数字包含以下七种字符:I, V, X, L, C, D 和 M。例如,罗马数字 2 写做 II,即为两个并列的 1。12 写做 XII,即为 X + II。27 写做 XXVII,即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存...原创 2019-03-01 15:22:45 · 164 阅读 · 0 评论 -
@LeetCode两数相加--Add Two Numbers[C++]
@LeetCode两数相加--Add Two Numbers[C++]问题描述解题方法及复杂度分析问题分析问题描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字0之外,这两个数都不会以0开头。示例:输入: (2 -> 4...原创 2019-01-04 10:18:25 · 136 阅读 · 0 评论