- 博客(410)
- 收藏
- 关注
原创 【leetcode】17 电话号码的字母组合(回溯)
题目链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/题目描述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "...
2019-09-12 11:32:51
253
原创 【leetcode】581 最短无序连续子数组(数组)
题目链接:https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray/题目描述给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释...
2019-09-07 14:44:16
189
原创 【leetcode】238 除自身以外数组的乘积(数组)
题目链接:https://leetcode-cn.com/problems/product-of-array-except-self/题目描述给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明:...
2019-09-07 14:18:41
158
原创 【leetcode】1139 最大的以 1 为边界的正方形(数组)
题目链接:https://leetcode-cn.com/problems/largest-1-bordered-square/题目描述给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例 1:输入:grid = [[1,1,1],[1,0,1],[1,1,1]]输出:9示例...
2019-09-07 13:40:16
348
原创 【leetcode】152 乘积最大子序列(数组,动态规划)
题目链接:https://leetcode-cn.com/problems/maximum-product-subarray/题目描述给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能...
2019-09-06 16:26:29
283
原创 【leetcode】713 乘积小于K的子数组(数组,双指针)
题目链接:https://leetcode-cn.com/problems/subarray-product-less-than-k/题目描述给定一个正整数数组 nums。找出该数组内乘积小于 k 的连续的子数组的个数。示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], ...
2019-09-06 15:53:29
373
原创 【leetcode】922 按奇偶排序数组II(数组)
题目链接:https://leetcode-cn.com/problems/sort-array-by-parity/题目描述给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也...
2019-09-06 11:06:22
128
原创 【leetcode】209 长度最小的子数组(前缀和,双指针)
题目链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3]...
2019-09-05 20:12:49
289
原创 【leetcode】560 和为K的子数组(前缀和数组)
题目链接:https://leetcode-cn.com/problems/subarray-sum-equals-k/题目描述给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数...
2019-09-05 15:30:09
393
原创 【leetcode】718 最长重复子数组(数组,动态规划,二分查找)
题目链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/题目描述给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例 1:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出: 3解释: 长度最长的公共子数组是 [3, 2, 1]。说明:1...
2019-09-05 11:06:58
361
原创 【leetcode】74 搜索二维矩阵(二分查找)
题目链接:题目描述编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34, 50]]target = 3输出: true示例 2...
2019-09-05 10:47:07
133
原创 【leetcode】763 划分字母区间(贪心)
题目链接:https://leetcode-cn.com/problems/partition-labels/题目描述字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一个字母只会出现在其中的一个片段。返回一个表示每个字符串片段的长度的列表。示例 1:输入: S = "ababcbacadefegdehijhklij"输出: [9,7,8]解释:划分结果为 "ab...
2019-09-04 22:07:41
208
原创 【leetcode】435 无重叠区间(贪心,动态规划)
题目链接:https://leetcode-cn.com/problems/non-overlapping-intervals/题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [...
2019-08-26 19:43:26
1355
原创 【leetcode】452 用最少数量的箭引爆气球(贪心)
题目链接:https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/题目描述在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。...
2019-08-26 16:11:13
343
原创 【leetcode】644 最大子段和 II(二分查找,数组)
题目链接:https://leetcode-cn.com/problems/maximum-average-subarray-ii/题目描述给定一个包含 n 个整数的数组,找到最大平均值的连续子序列,且长度大于等于 k。并输出这个最大平均值。样例 1:输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释:当长度为 5 的时候,最大平均值是 10.8,当长度...
2019-08-22 20:26:50
1939
1
原创 【leetcode】679 24点游戏(回溯)
题目链接:https://leetcode-cn.com/problems/24-game/题目描述你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:...
2019-08-22 19:35:35
550
原创 【leetcode】225 用队列实现栈(栈,队列)
题目链接:https://leetcode-cn.com/problems/implement-stack-using-queues/题目描述使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/po...
2019-08-21 13:04:39
132
原创 【leetcode】232 用栈实现队列(栈、队列)
题目链接:https://leetcode-cn.com/problems/implement-queue-using-stacks/题目描述使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQu...
2019-08-21 12:49:25
145
原创 十大排序算法
文章目录0、算法概述0.1 算法分类0.2 算法复杂度1 冒泡排序(Bubble Sort)1.1 算法描述2 选择排序(Selection Sort)2.1 算法描述3 插入排序(Insertion Sort)3.1 算法描述4 希尔排序(Shell Sort)4.1 算法描述5 归并排序(Merge Sort)5.1 算法描述6 快速排序(Quick Sort)6.1 算法描述7 堆排序(He...
2019-08-11 13:01:31
783
原创 【leetcode】174 地下城游戏(动态规划)
题目链接:https://leetcode-cn.com/problems/dungeon-game/题目描述一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些...
2019-08-04 20:44:13
160
原创 【leetcode】97 交错字符串(动态规划)
题目链接:https://leetcode-cn.com/problems/interleaving-string/思路给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。示例 1:输入: s1 = "aabcc", s2 = "dbbca", s3 = "aadbbcbcac"输出: true示例 2:输入: s1 = "aabcc", s2...
2019-08-04 20:15:40
194
原创 最长公共子序列(动态规划)
#include <iostream>#include <bits/stdc++.h>using namespace std;/* * 最长公共子序列-动态规划 * dp[i][j]表示str1前i子串和str2前j子串的最长公共子序列长度 * dp[i][j]取决于dp[i-1][j], dp[i][j-1], dp[i-1][j-1] * 时间复杂度O(...
2019-08-04 19:09:46
789
原创 最长公共子串(动态规划)
#include <iostream>#include <bits/stdc++.h>using namespace std;/* * 最长公共子串问题-动态规划 * dp[i][j]表示在必须将str1[i-1]和str2[j-1]作为公共子串最后一个字符的情况下,公共子串最大长度 * dp[i][j]取决于dp[i-1][j], dp[i][j-1], d...
2019-08-04 19:08:49
359
原创 【leetcode】491 递增子序列(回溯)
题目链接:https://leetcode-cn.com/problems/increasing-subsequences/题目描述给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,...
2019-08-04 19:00:16
303
原创 【leetcode】354 俄罗斯套娃信封问题(动态规划)
题目链接:https://leetcode-cn.com/problems/russian-doll-envelopes/题目描述给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。请计算最多能有多少个信封能组成一组“俄罗斯套娃”信封(即可以把一个信封放到另一个信封里面)...
2019-08-03 21:04:01
745
原创 【leetcode】312 戳气球(动态规划)
题目链接:https://leetcode-cn.com/problems/burst-balloons/题目描述有 n 个气球,编号为0 到 n-1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。每当你戳破一个气球 i 时,你可以获得 nums[left] * nums[i] * nums[right] 个硬币。 这里的 left 和 right 代表...
2019-08-01 16:34:43
527
原创 【leetcode】509 斐波那契数(动态规划)
题目链接:https://leetcode-cn.com/problems/fibonacci-number/题目描述斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算...
2019-07-31 21:55:27
207
原创 【leetcode】518 零钱兑换II(动态规划)
题目描述给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]输出: 0解释:...
2019-07-31 21:41:24
311
原创 【leetcode】52 N皇后II(回溯)
题目链接:https://leetcode-cn.com/problems/n-queens-ii/题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[ [".Q.."...
2019-07-26 20:04:20
149
原创 【leetcode】51 N皇后(回溯)
题目链接:https://leetcode-cn.com/problems/n-queens/题目描述n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和...
2019-07-26 19:48:47
440
原创 【leetcode】120 三角形最小路径和(动态规划)
题目描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加分。思...
2019-07-26 11:28:23
149
原创 【leetcode】188 买卖股票的最佳时机(动态规划)
题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [2,4,...
2019-07-26 10:38:50
324
原创 【leetcode】714 买卖股票的最佳时机含手续费(动态规划)
题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/题目描述给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,...
2019-07-26 10:04:18
312
原创 【leetcode】309 最佳买卖股票时机含冷冻期(动态规划)
题目链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/题目描述给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售...
2019-07-26 09:49:49
455
原创 【leetcode】654 最大二叉树(二叉树)
题目链接:https://leetcode-cn.com/problems/maximum-binary-tree/题目描述给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例...
2019-07-25 22:34:51
322
原创 【leetcode】95 不同的二叉搜索树II(二叉树)
题目链接:https://leetcode-cn.com/problems/unique-binary-search-trees-ii/题目描述给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。示例:输入: 3输出:[ [1,null,3,2], [3,2,null,1], [3,1,null,null,2], [2,1,3], [1,null,2...
2019-07-25 22:18:32
484
原创 【leetcode】510 二叉搜索树中的中序后继II(二叉树)
题目链接:https://leetcode-cn.com/problems/inorder-successor-in-bst-ii/题目描述给定一棵二叉搜索树和其中的一个节点,找到该节点在树中的中序后继。一个结点 p 的中序后继是键值比 p.val大所有的结点中键值最小的那个。你可以直接访问结点,但无法直接访问树。每个节点都会有其父节点的引用。示例 1:输入: root = {"$...
2019-07-25 20:35:09
1056
原创 【leetcode】285 二叉搜索树中的顺序后继(二叉树)
题目描述给你一个二叉搜索树和其中的某一个结点,请你找出该结点在树中顺序后继的节点。结点 p 的后继是值比 p.val 大的结点中键值最小的结点。示例 1:输入: root = [2,1,3], p = 1输出: 2解析: 这里 1 的顺序后继是 2。请注意 p 和返回值都应是 TreeNode 类型。示例 2:输入: root = [5,3,6,2,4,null,null,1...
2019-07-25 20:05:18
902
原创 【leetcode】958 二叉树的完全性检验(二叉树)
题目链接:https://leetcode-cn.com/problems/check-completeness-of-a-binary-tree/题目描述给定一个二叉树,确定它是否是一个完全二叉树。百度百科中对完全二叉树的定义如下:若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 ...
2019-07-25 19:49:34
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅