LeetCode
luncy_yuan
这个作者很懒,什么都没留下…
展开
-
LeetCode_计算右侧小于当前元素的个数
题目说明给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。输入: [5,2,6,1]输出: [2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1 个更小的元素 (1)....原创 2020-02-08 00:28:07 · 222 阅读 · 0 评论 -
LeedCode_整数反转
题目说明给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。输入: [1,2,3]输入: -123输出: -321链接:https://leetcode-cn.com/problems/reverse-integer分析:注意本题中的范围信息 int reverse(int x) { long long int res = 0; ...原创 2020-02-07 18:16:24 · 155 阅读 · 0 评论 -
LeedCode_删除链表的倒数第N个节点
题目说明给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list分析:采用...原创 2020-02-07 17:54:45 · 116 阅读 · 0 评论 -
LeedCode_通配符匹配
题目说明给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘’ 的通配符匹配。‘?’ 可以匹配任何单个字符。'’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。链接:https://leetcode-cn.com/proble...原创 2020-02-07 17:01:59 · 119 阅读 · 0 评论 -
LeetCode_会议室Ⅱ
题目说明给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间 [[s1,e1],[s2,e2],…] (si < ei),为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排输入: [[0, 30],[5, 10],[15, 20]]输出: 2链接:https://leetcode-cn.com/problems/mee...原创 2020-02-07 16:05:35 · 1050 阅读 · 0 评论 -
LeedCode_买卖股票的最佳时机
题目说明给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不...原创 2020-02-06 22:05:07 · 134 阅读 · 0 评论 -
LeedCode_解码方法
题目说明一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)本题比较坑的测试用例:“10”-----------------------1“27”-------...原创 2020-02-06 21:00:31 · 118 阅读 · 0 评论 -
LeedCode_数组中第K个最大元素
题目说明在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,1,5,6,4] 和 k = 2输出: 5链接:https://leetcode-cn.com/problems/kth-largest-element-in-an-array分析:采用快排的思想int backfind(vect...原创 2020-02-06 17:57:01 · 132 阅读 · 0 评论 -
LeetCode_完全平方数
题目说明给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。输入: n = 12输出: 3解释: 12 = 4 + 4 + 4.链接:[https://leetcode-cn.com/problems/perfect-squares分析:使用动态规划解决问题参考文章:https://leetco...原创 2020-02-06 16:48:40 · 102 阅读 · 0 评论 -
LeedCode_最长连续序列
题目说明给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。链接:https://leetcode-cn.com/problems/longest-consecutive-sequence分析:本题降低时间复杂度的关键...原创 2020-02-06 14:48:57 · 117 阅读 · 0 评论 -
LeedCode_最小覆盖子串
题目说明给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字母的最小子串。输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”链接:https://leetcode-cn.com/problems/minimum-window-substring分析:采用滑动窗口的机制滑动窗口算法的思路是这样:1、我们在字符串 S...原创 2020-02-03 23:41:25 · 119 阅读 · 0 评论 -
LeedCode_有效的括号
题目说明给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: “()[]{}”输出: true链接:https://leetcode-cn.com/problems/valid-parentheses分析:使用栈...原创 2020-02-03 17:24:07 · 135 阅读 · 0 评论 -
LeedCode_盛最多水的容器
题目说明给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。输入: [1,8,6,2,5,4,8,3,7]输出: 49链接:https://...原创 2020-02-03 16:58:27 · 108 阅读 · 0 评论 -
LeedCode_爬楼梯
题目说明假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶 2. 2 阶链接:https://leetcode-cn.com/problems/climbing-stairs分析:本题的解法可以参照斐...原创 2020-01-30 17:28:28 · 166 阅读 · 0 评论 -
LeedCode_有序矩阵中第K小的元素
题目说明给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。请注意,它是排序后的第k小元素,而不是第k个元素。matrix = [[ 1, 5, 9],[10, 11, 13],[12, 13, 15]],k = 8,返回 13。链接:https://leetcode-cn.com/problems/kth-smallest-elem...原创 2020-01-30 17:12:56 · 154 阅读 · 0 评论 -
LeedCode_天际线问题
题目说明城市的天际线是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。现在,假设您获得了城市风光照片(图A)上显示的所有建筑物的位置和高度,请编写一个程序以输出由这些建筑物形成的天际线(图B)。每个建筑物的几何信息用三元组 [Li,Ri,Hi] 表示,其中 Li 和 Ri 分别是第 i 座建筑物左右边缘的 x 坐标,Hi 是其高度。可以保证 0 ≤ Li, Ri ≤ INT_MAX, ...原创 2020-01-30 16:22:40 · 239 阅读 · 0 评论 -
LeedCode_二叉树中的最大路径和
LeedCode_二叉树中的最大路径和题目说明给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。输入: [1,2,3]1/ \2 3输出: 6链接:https://leetcode-cn.com/problems/binary-tree-maximum-path-sum...原创 2020-01-29 17:19:35 · 166 阅读 · 0 评论 -
LeedCode_矩阵中的最长递增路径
LeedCode_矩阵中的最长递增路径题目说明给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。链接:https://leetcode-...原创 2020-01-29 16:39:34 · 209 阅读 · 0 评论 -
LeedCode_岛屿数量
LeedCode_岛屿数量题目说明给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。输入:11000110000010000011输出: 3链接:https://leetcode-cn.com/problems/number-of-island...原创 2020-01-23 16:21:56 · 189 阅读 · 0 评论 -
LeedCode_螺旋矩阵
LeedCode_螺旋矩阵题目说明给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]链接:https://leetcode-cn.com/problems/spiral-matrix分析:常...原创 2020-01-23 14:37:46 · 99 阅读 · 0 评论 -
LeedCode_最大数
LeedCode_最大数题目说明给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。输入: [3,30,34,5,9]输出: 9534330链接:https://leetcode-cn.com/problems/largest-number分析:关键是明确比较函数,转化为字符串之间比较,针对相同长度,不同长度进行比较bool cmp(const string&...原创 2020-01-23 11:51:57 · 118 阅读 · 0 评论 -
LeedCode_合并两个有序链表
LeedCode_合并两个有序链表题目说明将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4链接:https://leetcode-cn.com/problems/merge-two-sorted-lists...原创 2020-01-23 11:18:01 · 146 阅读 · 0 评论 -
LeedCode_合并K个排序链表
LeedCode_合并K个排序链表题目说明合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6链接:https://leetcode-cn.com/problems/merge-k...原创 2020-01-23 10:59:41 · 178 阅读 · 0 评论 -
LeedCode_零钱置换
LeedCode_零钱置换题目说明给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1链接:https://leetcode-cn.com/problem...原创 2020-01-23 10:38:55 · 324 阅读 · 0 评论 -
LeedCode_三数之和
LeedCode_三数之和题目说明给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]...原创 2020-01-23 10:10:43 · 138 阅读 · 0 评论 -
LeedCode_全排列
LeedCode_最大子序和题目说明给定一个没有重复数字的序列,返回其所有可能的全排列。输入: [-2,1,-3,4,-1,2,1,-5,4],输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]链接:https://leetcode-cn.com/problems/permutation...原创 2020-01-22 18:17:13 · 122 阅读 · 0 评论 -
LeedCode_最大子序和
LeedCode_最大子序和题目说明给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。链接:https://leetcode-cn.com/problems/maximum-subarray分析:采用...原创 2020-01-22 17:48:50 · 121 阅读 · 0 评论 -
LeedCode_两数相加
LeedCode_最长上升子序列题目说明给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4...原创 2020-01-22 17:41:13 · 109 阅读 · 0 评论 -
LeedCode_最长上升子序列
LeedCode_最长上升子序列题目说明给定一个无序的整数数组,找到其中最长上升子序列的长度。输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。链接:https://leetcode-cn.com/problems/longest-increasing-subsequence方法一:动态规划,时间复...原创 2020-01-22 16:42:58 · 159 阅读 · 0 评论 -
LeedCode_ 无重复字符的最长子串
题目说明给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters分析:采用滑动窗口的思路int len...原创 2020-01-22 14:50:15 · 101 阅读 · 0 评论 -
LeedCode_接雨水
LeedCode_接雨水题目说明给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6链接:https://leetcode-cn.com/problems/trapping-rain-water参考文章:https://blog.csdn.net/kexuanxi...原创 2020-01-22 12:39:20 · 136 阅读 · 0 评论 -
LeedCode_拓扑排序相关题目
拓扑排序类的题目明显的特点是,做某一件事情有先决条件,使用拓扑排序需要一个边表和入度表,使用对列结构。课程表现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?输入: 2, [[1,0]]输出...原创 2020-01-22 11:21:31 · 244 阅读 · 1 评论 -
LeedCode_直线上最多的点数
LeedCode_直线上最多的点数题目说明给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o±------------>0 1 2 3 4链接:https://leetcode-cn.com/problems/max-poi...原创 2020-01-21 15:28:20 · 218 阅读 · 1 评论 -
LeedCode_LRU缓存机制
LeedCode_LRU缓存机制题目说明运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时...原创 2020-01-21 14:19:05 · 109 阅读 · 0 评论 -
LeedCode_最长回文子串
LeedCode_最长回文子串题目说明给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。链接:https://leetcode-cn.com/problems/longest-palindromic-substring/方法一:中心扩展法(时间复杂度O(n2))...原创 2020-01-21 12:58:05 · 237 阅读 · 0 评论 -
LeedCode_最长公共前缀
LeedCode_最长公共前缀题目说明编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。输入: [“flower”,“flow”,“flight”]输出: “fl”链接:https://leetcode-cn.com/problems/longest-common-prefix/方法:使用纵向比较的方法。string longestCom...原创 2020-01-20 23:12:29 · 97 阅读 · 0 评论 -
LeedCode_两数之和
LeedCode_两数之和题目说明给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [...原创 2020-01-20 18:23:10 · 85 阅读 · 0 评论