Leetcode每日一题打卡
文章平均质量分 54
巫魔灵
这个作者很懒,什么都没留下…
展开
-
Rayman的绝顶之路——Leetcode每日一题打卡21
Leetcode 1190. 反转每对括号间的子串 题目: 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入:s = “(abcd)” 输出:“dcba” 示例 2: 输入:s = “(u(love)i)” 输出:“iloveu” 示例 3: 输入:s = “(ed(et(oc))el)” 输出:“leetcode” 示例 4: 输入:s = “a(bcde原创 2021-05-26 17:55:42 · 234 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡20
Leetcode 226. 翻转二叉树 题目: 翻转一棵二叉树。 示例: 输入: 输出: 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌: 我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 思路: 首先这是一道很经典的二叉树问题。显然,我们从根节点开始,递归地对树进行遍历,并从叶子结点先开始翻转。如果当前遍历到的节点 root 的左右两棵子树都已经翻转,那么我们只需要交换两棵子树的位置,即可完成以 r原创 2020-09-16 10:34:00 · 151 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡19
Leetcode 37. 解数独 题目: 编写一个程序,通过已填充的空格来解决数独问题。 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 ‘.’ 表示。 一个数独。 答案被标成红色。 Note: 给定的数独序列只包含数字 1-9 和字符 ‘.’ 。 你可以假设给定的数独只有唯一解。 给定数独永远是 9x9 形式的。 思路: 类似人的思考方式去尝试,行、列、 3*3原创 2020-09-15 20:13:00 · 125 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡18
Leetcode 14. 最长公共前缀 题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 思路1: 纵向扫描。 从前往后遍历所有字符串的每一列,比较相同列上的字符是否相同,如果相同则继续对下一列进行比较。原创 2020-06-15 15:30:14 · 150 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡17
Leetcode152. 乘积最大子数组 题目: 我胡汉三,又回来了!!!毕业设计答辩可算是告一段落了。。 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 思路:动态规划 dp[i][j]:以 nums[i]原创 2020-05-18 14:45:38 · 204 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡16
Leetcode21. 合并两个有序链表 题目: 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入: 1->2->4, 1->3->4 输出: 1->1->2->3->4->4 思路1(递归): 如果 l1 或者 l2 为空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链...原创 2020-05-01 12:40:03 · 147 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡15
Leetcode347. 前 K 个高频元素 题目: 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输出: [1] 提示: 你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复...原创 2020-04-29 14:47:05 · 129 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡14
Leetcode面试题56 - I. 数组中数字出现的次数 题目: 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 输入: nums = [4,1,4,6] 输出: [1,6] 或 [6,1] 示例 2: 输入: nums = [1,2,10,4,1,4,3,3] 输出: [2...原创 2020-04-28 13:54:45 · 133 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡13
Leetcode33. 搜索旋转排序数组 题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O(log n) 级别。 示例 1: 输入: nu...原创 2020-04-27 13:49:21 · 219 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡12
Leetcode23. 合并K个排序链表 题目: 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 思路1: K 指针:K 个指针分别指向 K 条链表; 遍历,每次取K个指针所...原创 2020-04-26 15:59:01 · 129 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡11
Leetcode46. 全排列 题目: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 思路(回溯): 我们定义递归函数 output(first, output) 表示从左往右填到第first个位置,当前排列为 out。 那么...原创 2020-04-25 14:19:43 · 218 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡10
Leetcode面试题51. 数组中的逆序对 题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 限制: 0 <= 数组长度 <= 50000 1、暴力解法(超时): 这是我最开始想到的方法,花了1分钟写完执行了一下超时,我就说标着困难的题目没这么简...原创 2020-04-24 14:46:01 · 186 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡9
Leetcode面试题 08.11. 硬币 题目: 硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007) 示例1: 输入: n = 5 输出: 2 解释: 有两种方式可以凑成总金额: 5=5 5=1+1+1+1+1 示例2: 输入: n = 10 输出: 4 解释: 有四种方式可以凑成总金额: 10...原创 2020-04-23 18:52:17 · 156 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡8
Leetcode199. 二叉树的右视图 题目: 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 思路1(广度优先搜索): 对二叉树进行层次遍历,每层最右边的结点一定是最后被遍历到的。二叉树的层次遍历可以用广度优先搜索实现。 Java AC代码: import ...原创 2020-04-22 14:12:53 · 122 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡7
Leetcode1248. 统计「优美子数组」 题目: 给你一个整数数组 nums 和一个整数 k。 如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。 请返回这个数组中「优美子数组」的数目。 示例 1: 输入: nums = [1,1,2,1,1], k = 3 输出: 2 解释: 包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。...原创 2020-04-21 14:03:46 · 159 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡6
Leetcode200. 岛屿数量 题目: 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例 1: 输入: 11110 11010 11000 00000 输出: 1 示例 2: 输入: 11000 11000 00100...原创 2020-04-20 15:43:01 · 162 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡5
Leetcode804. 唯一摩尔斯密码词 题目: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。 为了方便,所有26个英文字母对应摩尔斯密码表如下: [".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-...原创 2020-04-19 18:14:19 · 120 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡4
昨天有点忙,今天补一下卡。。 Leetcode466. 统计重复个数 题目: 由 n 个连接的字符串 s 组成字符串 S,记作 S = [s,n]。例如,[“abc”,3]=“abcabcabc”。 如果我们可以从 s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,“abc” 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。 现在给你...原创 2020-04-19 17:47:26 · 138 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡3
Leetcode55. 跳跃游戏 题目: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4]...原创 2020-04-17 22:32:56 · 123 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡2
Leetcode56. 合并区间 题目: 给出一个区间的集合,请合并所有重叠的区间。 示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 示例 2: 输入: [[1,4],[4,5]] 输出: [[1,5]] 解释: 区间 [1,4]...原创 2020-04-16 20:25:39 · 127 阅读 · 0 评论 -
Rayman的绝顶之路——Leetcode每日一题打卡1
Leetcode542. 01 矩阵 题目: 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2: 输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数不超...原创 2020-04-15 19:54:48 · 214 阅读 · 0 评论