![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
南方铁匠
在深度学习和体系结构熔炉的铁匠
展开
-
Leetcode 5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"题解:回文子串是一道老题了,做一个矩阵,初始化对角线[i][i] 以及[i][i+1]的元素,然后像左上方增长即可。class Solution ...原创 2020-04-17 20:38:39 · 116 阅读 · 0 评论 -
Leetcode 61. 旋转链表
给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->...原创 2020-04-17 16:34:41 · 97 阅读 · 0 评论 -
Leetcode 142. 环形链表 II
给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index ...原创 2020-04-15 22:30:52 · 101 阅读 · 0 评论 -
Leetcode 面试题48. 最长不含重复字符的子字符串
请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的...原创 2020-04-14 21:40:48 · 339 阅读 · 0 评论 -
LeetCode 845. 数组中的最长山脉
我们把数组 A 中符合下列属性的任意连续子数组 B 称为 “山脉”:B.length >= 3存在 0 < i< B.length - 1 使得 B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1](注意:B 可以是 A 的任意子数组,包括整个数组 A。)...原创 2020-04-11 11:45:43 · 121 阅读 · 0 评论 -
LeetCode 209. 长度最小的子数组
vector<vector<int>> dp(5);for (int i = 0; i < array.size(); i++) dp[i].resize(5);for (int i = 0; i<array.size();i++) dp[i][i] = array[i];int begin,end;for (int i = 1; ...原创 2020-04-10 10:37:10 · 152 阅读 · 0 评论 -
LeetCode 【回溯】面试题 08.08. 有重复字符串的排列组合
有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1: 输入:S = "qqe" 输出:["eqq","qeq","qqe"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。题解:肯定是用回溯的,一开始想到在每次循环中,都进行遍历,找到当前位置对应的。/abc/ ...原创 2020-03-14 16:30:01 · 700 阅读 · 0 评论 -
Leetcode 39. 组合总和
给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2020-03-14 15:06:03 · 151 阅读 · 0 评论 -
Leetcode 17. 电话号码的字母组合
给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。题解:使用回溯方法,每次调用D...原创 2020-03-09 16:16:29 · 92 阅读 · 0 评论 -
Leetcode 306. 累加数
累加数是一个字符串,组成它的数字可以形成累加序列。一个有效的累加序列必须至少包含 3 个数。除了最开始的两个数以外,字符串中的其他数都等于它之前两个数相加的和。给定一个只包含数字'0'-'9'的字符串,编写一个算法来判断给定输入是否是累加数。说明:累加序列里的数不会以 0 开头,所以不会出现1, 2, 03 或者1, 02, 3的情况。示例 1:输入: "1123...原创 2020-03-08 12:42:12 · 233 阅读 · 0 评论 -
LeetCode 面试题 10.09. 排序矩阵查找
给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target=5,返回tr...原创 2020-03-07 11:55:16 · 325 阅读 · 0 评论 -
Leetcode300. 最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?思路:...原创 2020-03-03 00:30:13 · 97 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"...原创 2020-03-01 15:18:11 · 82 阅读 · 0 评论 -
Leetcode 139. 单词拆分
给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可...原创 2020-03-01 00:43:32 · 123 阅读 · 0 评论 -
背包九讲
背包九讲目录P01:01背包问题P02:完全背包问题P03:多重背包问题P04:混合三种背包问题P05:二维费用的背包问题P06:分组的背包问题P07:有依赖的背包问题P08:泛化物品P09:背包问题问法的变化前言本篇文章是我(dd_engi)正在进行中的一个雄心勃勃的写作计划的一部分,这个计划的内容是写作一份较为完善的NOIP难度...转载 2020-02-27 23:51:31 · 107 阅读 · 0 评论 -
动态规划实现回文字符串问题
问题一:求一个字符串的最大回文字符串长度; 1)思路:动态规划; 2)具体描述:设立一个长度len为字符串str,用一个dp[len][len]的二维数组来表示字符串i-j下标所构成的子串的长度,经过循环计算之后我们返回最大回文子串的长度即可,即返回dp[0][len-1]; 3)dp数组的具体实现:根据动态规划自底向上的思想,从回文子串到求出整个最长回文字符串,首先从str的结...转载 2020-02-27 23:43:43 · 282 阅读 · 0 评论 -
01背包问题 (动态规划算法)
原文链接0-1 背包问题:给定 n 种物品和一个容量为 C 的背包,物品 i 的重量是 wi,其价值为 vi 。问:应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大?分析一波,面对每个物品,我们只有选择拿取或者不拿两种选择,不能选择装入某物品的一部分,也不能装入同一物品多次。解决办法:声明一个 大小为 m[n][c] 的二维数组,m[ i ][ j ] 表示 在面对第...转载 2020-02-27 23:38:55 · 159 阅读 · 0 评论 -
Leetcode 64. 最小路径和
给定一个包含非负整数的 mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。class Solution {public: int minPathSum(ve...原创 2020-02-27 11:11:35 · 89 阅读 · 0 评论 -
Leetcode 62. 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和 n 的值均不超过 100。示例1:输入: m = 3, n = 2输出: 3解释:从左...原创 2020-02-27 00:41:34 · 81 阅读 · 0 评论 -
Leetcode 932. 漂亮数组
对于某些固定的N,如果数组A是整数1, 2, ..., N组成的排列,使得:对于每个i < j,都不存在k 满足i < k < j使得A[k] * 2 = A[i] + A[j]。那么数组 A是漂亮数组。给定N,返回任意漂亮数组A(保证存在一个)。示例 1:输入:4输出:[2,1,4,3]示例 2:输入:5输...原创 2020-02-27 00:02:42 · 329 阅读 · 0 评论 -
Leetcode 95.不同的二叉搜索树II
题目给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树。示例:输入: 3输出:[[1,null,3,2],[3,2,null,1],[3,1,null,null,2],[2,1,3],[1,null,2,null,3]]解释:以上的输出对应以下 5 种不同结构的二叉搜索树: 1 3 3 2 1...转载 2020-02-22 21:10:34 · 84 阅读 · 0 评论 -
Leetcode 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解题思路:需要注意的就是1)[1,2] 12) [1,2...原创 2020-02-21 21:08:05 · 182 阅读 · 0 评论 -
Leetcode 954. 二倍数对数组
给定一个长度为偶数的整数数组A,只有对A进行重组后可以满足 “对于每个 0 <=i < len(A) / 2,都有 A[2 * i + 1] = 2 * A[2 * i]”时,返回 true;否则,返回 false。示例 1:输入:[3,1,3,6]输出:false示例 2:输入:[2,1,2,6]输出:false示例 3:输入:[4,-2,2,-4...原创 2020-02-21 19:44:11 · 231 阅读 · 0 评论 -
Leetcode 951. 翻转等价二叉树
我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点root1 和 root2给出。示例:输入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root...原创 2020-02-21 16:39:53 · 138 阅读 · 0 评论 -
Leetcode 面试题14- II. 剪绳子 II
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] 。请问 k[0]*k[1]*...*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:100...原创 2020-02-21 14:49:24 · 140 阅读 · 0 评论 -
Leetcode 94 二叉树的中序遍历
给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?注意迭代算法的实现,仔细思考迭代算法是怎么处理以下两种情况的:1) 1 / 2 / 3...原创 2020-02-21 14:25:35 · 74 阅读 · 0 评论