数组/栈/队列
文章平均质量分 56
知北行
不积跬步,无以至千里,不积小流,无以成江海
展开
-
算法---LeetCode 剑指 Offer 51. 数组中的逆序对
1. 题目原题链接在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000???? 420 ???? 02. 题解2.1 解法1: 暴力法(超时) class Solution { public int reversePairs(int[] nums) { int ans =原创 2021-05-26 09:59:37 · 170 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 50. 第一个只出现一次的字符
1. 题目在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "限制:0 <= s 的长度 <= 50000Related Topics 哈希表???? 97 ???? 02. 题解2.1 解法1: 哈希表+两次遍历第一次遍历, 在哈希表中统计元素出现次数第二次遍历, 返回哈希表中第一个元素出现次数为1的元素 class Solution {原创 2021-05-25 16:10:11 · 105 阅读 · 0 评论 -
算法---LeetCode 264. 丑数 II(同剑指offer 49)
1. 题目原题链接我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。注意:本题与主站 264 题相同:https://leetcode-cn.com/problems/ugly-number-ii/Related Topics 数学???? 165 ????原创 2021-05-25 15:56:22 · 126 阅读 · 0 评论 -
算法---LeetCode 3. 无重复字符的最长子串(同剑指offer 48)
1. 题目原题链接请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个原创 2021-05-25 15:20:15 · 121 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 47. 礼物的最大价值
1. 题目原题链接在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物提示:0 < grid.length <= 2000 < grid[原创 2021-05-25 14:28:03 · 94 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 46. 把数字翻译成字符串
1. 题目原题链接给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", “bwfi”, “bczi”, “mcfi"和"mzi”提示:0 <= num < 231???? 228 ???? 02. 题解原创 2021-05-25 10:56:09 · 105 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 43. 1~n 整数中 1 出现的次数
1. 题目原题链接输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。示例 1:输入:n = 12输出:5示例 2:输入:n = 13输出:6限制:1 <= n < 2^31注意:本题与主站 233 题相同:https://leetcode-cn.com/problems/number-of-digit-one/Related Topics 数学???? 175 ?原创 2021-05-24 18:08:26 · 136 阅读 · 0 评论 -
算法---LeetCode 295. 数据流的中位数(同剑指 Offer 41)
1. 题目原题链接如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。例如,[2,3,4] 的中位数是 3[2,3] 的中位数是 (2 + 3) / 2 = 2.5设计一个支持以下两种操作的数据结构:void addNum(int num) - 从数据流中添加一个整数到数据结构中。double findMedian() - 返回目前所有元素的中位数。示例原创 2021-05-24 16:44:49 · 221 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 45. 把数组排成最小的数
1. 题目原题链接输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: “102”示例 2:输入: [3,30,34,5,9]输出: “3033459”提示:0 < nums.length <= 100说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数拼接起来的数字可能会有前导 0,最后结果不需要去掉前导 0Related Topics 排序???? 224 ???? 02.原创 2021-05-24 16:11:07 · 80 阅读 · 0 评论 -
算法——LeetCode53. 最大子序和 (分治法与动态规划法小总结)(剑指offer 42)
53. 最大子序和原题链接题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。题解1:暴力法,两层for循环查找最大子序列主要思路:外层 for 循环控制以 nums[i] 为起始元原创 2020-09-06 17:06:20 · 401 阅读 · 0 评论 -
算法---LeetCode 剑指 Offer 31. 栈的压入、弹出序列
1. 题目原题链接输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push原创 2021-05-21 17:09:25 · 211 阅读 · 0 评论 -
算法---LeetCode 41. 缺失的第一个正数
1. 题目原题链接给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:0 <= nums.length <= 300-231 <= nums[i] <= 231 - 1Rel原创 2021-04-26 17:52:59 · 152 阅读 · 0 评论 -
算法---LeetCode 227. 基本计算器 II
1. 题目原题链接给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。示例 1:输入:s = “3+2*2”输出:7示例 2:输入:s = " 3/2 "输出:1示例 3:输入:s = " 3+5 / 2 "输出:5提示:1 <= s.length <= 3 * 105s 由整数和算符 (’+’, ‘-’, ‘*’, ‘/’) 组成,中间由一些空格隔开s 表示一个 有效表达式表达式中的所有整数都是非负整数,且在范围 [0原创 2021-04-26 17:00:55 · 226 阅读 · 0 评论 -
算法---LeetCode 189. 旋转数组
1. 题目原题链接给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,原创 2021-04-25 18:26:59 · 244 阅读 · 0 评论 -
算法---LeetCode 54. 螺旋矩阵(剑指offer 29)
1. 题目原题链接给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]2. 题解2.1 题解1首先设定上下左右边界其次向右移动到最右,此时第一行因为已原创 2021-04-23 14:51:27 · 102 阅读 · 0 评论 -
算法---LeetCode 162. 寻找峰值
1. 题目原题链接峰值元素是指其值大于左右相邻值的元素。给你一个输入数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1,3,5,6,4]输出:1 或 5解释:你的函数可以返回索引 1,其峰值元素为 2;或者返回索引原创 2021-04-23 11:40:42 · 139 阅读 · 0 评论 -
算法---LeetCode 380. 常数时间插入、删除和获取随机元素
1. 题目原题链接设计一个支持在平均 时间复杂度 O(1) 下,执行以下操作的数据结构。insert(val):当元素 val 不存在时,向集合中插入该项。remove(val):元素 val 存在时,从集合中移除该项。getRandom:随机返回现有集合中的一项。每个元素应该有相同的概率被返回。示例 :// 初始化一个空的集合。RandomizedSet randomSet = new RandomizedSet();// 向集合中插入 1 。返回 true 表示 1 被成功地插入。r原创 2021-04-23 10:50:50 · 271 阅读 · 0 评论 -
算法---LeetCode 150. 逆波兰表达式求值
1. 题目原题链接根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入:tokens = [“2”,“1”,"+",“3”,"*"]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“4”,“13”,“5”,"/","原创 2021-04-22 14:49:22 · 139 阅读 · 0 评论 -
算法---LeetCode 73. 矩阵置零
1. 题目原题链接给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?示例 1:输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输原创 2021-04-22 14:19:37 · 128 阅读 · 0 评论 -
算法---LeetCode 341. 扁平化嵌套列表迭代器
1. 题目原题链接给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。示例 1:输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回 false,next 返回的元素的顺序应该是: [1,1,2,1,1]。示例 2:输入: [1,[4,[6]]]输出: [1,4,6]解释: 通过重复调用 next原创 2021-04-22 11:13:45 · 85 阅读 · 0 评论 -
算法---LeetCode 289. 生命游戏
1. 题目原题链接给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;如果死细胞周围正好有三个活细胞,则该位置死细胞复活;下原创 2021-04-21 17:18:24 · 214 阅读 · 0 评论 -
算法---LeetCode 912. 排序数组 (多种排序算法总结)
1. 题目原题链接给你一个整数数组 nums,请你将该数组升序排列。示例 1:输入:nums = [5,2,3,1]输出:[1,2,3,5]示例 2:输入:nums = [5,1,1,2,0,0]输出:[0,0,1,1,2,5]提示:1 <= nums.length <= 50000-50000 <= nums[i] <= 50000???? 274 ???? 02. 题解2.1 快速排序 class Solution { publ原创 2021-04-13 17:51:39 · 490 阅读 · 0 评论 -
算法---LeetCode 217. 存在重复元素
1. 题目原题链接给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: trueRelated Topics 数组 哈希表???? 380 ???? 02. 题解 class Solution {原创 2021-04-13 16:24:10 · 77 阅读 · 0 评论 -
算法---LeetCode 268. 丢失的数字
1. 题目原题链接给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。进阶:你能否实现线性时间复杂度、仅使用额外常数空间的算法解决此问题?示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范原创 2021-04-13 16:21:57 · 120 阅读 · 0 评论 -
算法---LeetCode 122. 买卖股票的最佳时机 II
1. 题目原题链接给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天原创 2021-04-13 11:19:45 · 57 阅读 · 0 评论 -
算法---LeetCode 88. 合并两个有序数组
1. 题目原题链接给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。示例 1:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]示例 2:输入:nums1原创 2021-04-09 16:54:21 · 99 阅读 · 0 评论 -
算法---LeetCode 66. 加一
1. 题目原题链接给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 &原创 2021-04-08 15:44:44 · 293 阅读 · 0 评论 -
算法---LeetCode 26. 删除有序数组中的重复项
1. 题目原题链接给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。示例 2:输入:nums = [0,0,1,1,1,2,2,原创 2021-04-08 13:08:25 · 75 阅读 · 0 评论 -
算法---LeetCode 118. 杨辉三角
1. 题目原题链接给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]Related Topics 数组???? 473 ???? 02. 题解2.1 题解1: 数学方法 class Solution { public List<List<Integer>>原创 2021-04-07 11:03:21 · 113 阅读 · 0 评论 -
算法---LeetCode 4. 寻找两个正序数组的中位数
1. 题目原题链接给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入:nums1 =原创 2021-04-06 18:08:42 · 68 阅读 · 0 评论 -
算法---LeetCode 85. 最大矩形
1. 题目原题链接给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = [[“0”]]输出:原创 2021-04-02 16:14:46 · 272 阅读 · 0 评论 -
算法---LeetCode 84. 柱状图中最大的矩形
1. 题目原题链接给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10Related Topics 栈 数组???? 1281 ???? 02. 题解2.1 解法1: 暴力解法(超时)遍历每个高度,原创 2021-04-01 15:57:05 · 116 阅读 · 0 评论 -
算法---LeetCode 128. 最长连续序列
1. 题目原题链接给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。进阶:你可以设计并实现时间复杂度为 O(n) 的解决方案吗?示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9提示:0 <= nums.length <= 104-109 <= n原创 2021-04-01 10:48:49 · 152 阅读 · 0 评论 -
算法---LeetCode 42. 接雨水
1. 题目原题链接给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length0 <= n &l原创 2021-03-31 22:37:50 · 294 阅读 · 0 评论 -
算法---LeetCode 581. 最短无序连续子数组
1. 题目原题链接给你一个整数数组 nums ,你需要找出一个 连续子数组 ,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组,并输出它的长度。示例 1:输入:nums = [2,6,4,8,10,9,15]输出:5解释:你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。示例 2:输入:nums = [1,2,3,4]输出:0示例 3:输入:nums = [1]输出:0提示:1 <= num原创 2021-03-31 10:17:18 · 116 阅读 · 0 评论 -
算法---LeetCode 152. 乘积最大子数组
1. 题目原题链接给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。Related Topics 数组 动态规划???? 925 ???? 02. 题解2.1 解法1: 动态规划因为可能存在负数, 所以需要两个原创 2021-02-02 21:48:02 · 145 阅读 · 0 评论 -
算法---LeetCode 79. 单词搜索
1. 题目原题链接给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, 返回 true给定 word = “SEE”, 返回 true给定 word = “ABCB”, 返原创 2021-01-28 14:24:56 · 139 阅读 · 0 评论 -
算法---LeetCode 560. 和为K的子数组
1. 题目原题链接给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。Related Topics 数组 哈希表???? 748 ???? 02. 题解2.1 解法1: 双层循环遍历 c原创 2021-01-27 14:33:08 · 154 阅读 · 0 评论 -
算法---LeetCode 394. 字符串解码
1. 题目原题链接给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“aaabcbc”示例原创 2021-01-26 22:52:22 · 297 阅读 · 0 评论 -
算法---LeetCode 621. 任务调度器
1. 题目原题链接给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks = [“A”,“A”,“A”原创 2021-01-25 21:56:42 · 291 阅读 · 0 评论