
LeetCode
Data-Mining
一枚典型的音视频技术爱好者
展开
-
LeetCode之斐波那契数(五百零九)
分析:递归大法的原始应用场景之一。原创 2020-08-31 22:40:38 · 534 阅读 · 0 评论 -
LeetCode之翻转图像(八百三十二)
分析:根据题意,一步步来即可。原创 2020-08-31 22:17:49 · 442 阅读 · 0 评论 -
LeetCode之机器人能否返回原点(六百五十七)
分析:可以把机器人想象在一个坐标系中移动,上下左右移动相同的距离,上和下相互抵消,左和右相互抵消,最终(x,y)经过移动后还回到(x,y)点即成立。原创 2020-08-28 22:57:50 · 583 阅读 · 0 评论 -
LeetCode之有序数组中出现次数超过25%的元素(一千二百八十七)
分析:可以理解为寻找区间长度大于25%*arr.length的数据。原创 2020-08-26 23:10:24 · 562 阅读 · 0 评论 -
LeetCode之电话号码的字母组合(十七)
分析:首先使用哈希表存储每个数字对应的所有可能的字母,然后进行回溯操作。原创 2020-08-26 23:19:21 · 772 阅读 · 0 评论 -
LeetCode之好数对的数目(一千五百一十二)
分析:利用哈希map的特性,通过空间换时间的方式,减小时间复杂度。以元素值为key,索引值为value构建哈希map,并在遍历数组的同时,查询哈希map中是否存在相同的元素。原理也非常简单,可以直接看代码。原创 2020-08-20 08:51:44 · 593 阅读 · 0 评论 -
LeetCode之子数组最大平均数 I(六百四十三)
分析:该题可以使用滑动窗口来解,首先求得初始窗口之和,然后根据当前滑动窗口之和等于上一个窗口之和减去上一个窗口的第一个数,再加上当前窗口的最后一个数的关系等式进行比较,进而求得最大和,最后再取平均值。原创 2020-08-13 08:30:50 · 513 阅读 · 0 评论 -
LeetCode之种花问题(六百零五)
分析:为了避免首位和尾位的特殊情况,可在首位和尾位都填上一个0,这样所有的元素就都有前一个数和后一个数了,只需要寻找三个连续0的情况有多少个就行了,该个数就是可插花朵的最大值。原创 2020-08-12 23:27:48 · 576 阅读 · 0 评论 -
LeetCode之剑指Offer - II. 0~n-1中缺失的数字(53)
分析:根据题意,答案有三种情况,1)数组从1开始,那么答案数是0;2)答案数在数组中,即大于nums[0]且小于nums[nums.size()-1];3)答案数在数组外,即大于nums[nums.size()-1]。所以直接编码即可,看下边代码。原创 2020-08-11 00:02:59 · 567 阅读 · 0 评论 -
LeetCode之第 k 个缺失的正整数(五千四百六十八)
分析:缺失的正整数的位置有三个可能,(1)缺失的数字比arr[0]小,即在数组之前;(2)缺失的数字比arr[0]大,但比arr[n-1]小,即在数组之间;(3)缺失的数字比arr[n-1]大,即在数组之后。那么按照思路直接编码就行了,直接看下面的代码吧。原创 2020-08-09 16:37:58 · 733 阅读 · 0 评论 -
LeetCode之一维数组的动态和(一千四百八十)
目录题目解题方法一、动态规划题目(原题链接:https://leetcode-cn.com/problems/running-sum-of-1d-array/)给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。请返回 nums 的动态和。示例 1:输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4..原创 2020-08-08 08:47:03 · 549 阅读 · 0 评论 -
LeetCode之相同的树(一百)
分析:先比较当前节点,值相等再依次比较左子树和右子树,自然而然会想到递归的方法。原创 2020-08-07 23:23:28 · 587 阅读 · 0 评论 -
LeetCode之去掉最低工资和最高工资后的工资平均值(一千四百九十一)
分析:既然数组中的每个元素都是唯一的,那么排序后肯定单调递增。去掉最低和最高工资意思就是掐头去尾,然后再求平均值。需要注意的是,返回结果是double类型。原创 2020-08-07 22:50:48 · 756 阅读 · 0 评论 -
LeetCode之打家劫舍 III(三百三十七)
分析:这道其实就是一个二叉树,奇偶深度求和问题。因此,我们可以假设f(o)表示选择 o 节点的情况下,o节点的子树上被选择的节点的最大权值和;g(o) 表示不选择 o 节点的情况下,o 节点的子树上被选择的节点的最大权值和;同时,L和 R代表 o节点的左右孩子。原创 2020-08-05 22:12:29 · 472 阅读 · 0 评论 -
LeetCode之排布二进制网格的最少交换次数(一千五百三十六)
分析:该题仔细分析后,其实类比成排序问题,求解排序完成需要移动的次数。原创 2020-08-04 23:33:29 · 613 阅读 · 0 评论 -
LeetCode之统计好三元组(五千四百七十五)
分析:三元组对应一个三重循环,再增加相应的限制条件即可。原创 2020-08-02 21:30:45 · 742 阅读 · 0 评论 -
LeetCode之换酒问题(一千五百一十八)
小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。原创 2020-07-30 09:58:30 · 950 阅读 · 0 评论 -
LeetCode之数组异或操作(一千四百八十六)
目录题目解题方法一、巧用中间变量题目(原题链接:https://leetcode-cn.com/problems/xor-operation-in-an-array/)给你两个整数,n 和 start 。数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。请返回 nums 中所有元素按位异或(XOR)后得到的结果。示例 1:输入:n = 5, start = 0输出:8解释:数组 n.原创 2020-07-29 14:54:26 · 595 阅读 · 0 评论 -
LeetCode之比较含退格的字符串(八百四十四)
题目(原题链接:https://leetcode-cn.com/problems/backspace-string-compare/)给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输原创 2020-07-29 00:03:09 · 523 阅读 · 0 评论 -
LeetCode之棒球比赛(六百八十二)
题目(原题链接:https://leetcode-cn.com/problems/baseball-game/)你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效回合的分数是无效的,应...原创 2020-07-28 09:38:50 · 703 阅读 · 0 评论 -
LeetCode之用栈操作构建数组(一千四百四十一)
题目(原题链接:https://leetcode-cn.com/problems/build-an-array-with-stack-operations/)给你一个目标数组 target 和一个整数 n。每次迭代,需要从list = {1,2,3..., n} 中依序读取一个数字。请使用下述操作来构建目标数组 target :Push:从 list 中读取一个新元素, 并将其推入数组中。Pop:删除数组中的最后一个元素。如果目标数组构建完成,就停止读取更多元素。题目数据保证...原创 2020-07-26 16:33:35 · 608 阅读 · 0 评论 -
LeetCode之重新排列字符串(五千四百七十二)
目录题目解题方法一、直接法方法二、转换法题目(原题链接:https://leetcode-cn.com/problems/shuffle-string/)给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。示例 1:输入:s = "codeleet", indices = [4,5,6,7,0,2,1,3]输出:"lee..原创 2020-07-26 15:59:25 · 1897 阅读 · 0 评论 -
LeetCode之有效的括号(二十)
题目(原题链接:https://leetcode-cn.com/problems/valid-parentheses/)给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出...原创 2020-07-20 22:37:25 · 586 阅读 · 0 评论 -
LeetCode之最小栈(一百五十五)
目录题目解题题目(原题链接:https://leetcode-cn.com/problems/min-stack/)设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop()—— 删除栈顶的元素。top()—— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop...原创 2020-07-19 23:33:18 · 513 阅读 · 0 评论 -
LeetCode之岛屿数量(两百)
目录题目解题方法一、深度优先搜索法方法二、广度优先搜索法题目(原题链接:https://leetcode-cn.com/problems/number-of-islands/)给你一个由'1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1'..原创 2020-07-17 00:17:58 · 665 阅读 · 0 评论 -
LeetCode之将有序数组转换为二叉搜索树(一百零八)
目录题目解题方法一、中序遍历题目(原题链接:https://leetcode-cn.com/problems/convert-sorted-array-to-binary-search-tree/)将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。示例:解题方法一、中序遍历分析:二叉搜索树的中序遍历是升序排列的,题目给定的数组是按照升序排序的有序数组,...原创 2020-07-03 09:34:42 · 566 阅读 · 0 评论 -
LeetCode刷题福利及技巧(如何赚积分)
目录前言兑换礼物积分领取1. 每日打卡任务奖励2. 圈子任务奖励3.贡献任务奖励4.探索卡片任务奖励5.竞赛任务奖励6.竞赛追加奖励7.完善个人资料前言LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多常见的算法面试题目,同时还收录很多互联网公司的题库内容。如果为了面试刷题,LeetCode绝对是一个绝佳的选择。即使不为了跳槽面试,作为一个程序员,通过LeetCode保持手感也是不错的选择。兑换礼物那么...原创 2020-07-13 14:09:33 · 8590 阅读 · 5 评论 -
LeetCode之二进制求和(六十七)
目录题目解题方法一、中规中矩法题目(原题链接:https://leetcode-cn.com/problems/add-binary/)给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <=...原创 2020-07-02 23:09:31 · 513 阅读 · 0 评论 -
LeetCode之最长公共前缀(十四)
目录题目解题方法一、暴力法方法二、巧用STL函数题目(原题链接:https://leetcode-cn.com/problems/longest-common-prefix)编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:...原创 2020-06-21 09:38:28 · 582 阅读 · 0 评论 -
LeetCode之罗马数字转整数(十三)
目录题目解题题目(原题链接:https://leetcode-cn.com/problems/roman-to-integer)罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字...原创 2020-06-17 23:49:36 · 568 阅读 · 0 评论 -
LeetCode之回文数(九)
题目(原题链接:https://leetcode-cn.com/problems/palindrome-number)判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文.原创 2020-06-14 11:00:49 · 554 阅读 · 1 评论 -
LeetCode打卡集锦
LeetCode 是一个非常棒的 OJ(Online Judge)平台,收集了许多常见的算法面试题目,同时还收录很多互联网公司的题库内容。如果为了面试刷题,LeetCode绝对是一个绝佳的选择。即使不为了跳槽面试,作为一个程序员,通过LeetCode保持手感也是不错的选择。本人就是平时刷刷题,在LeetCode上打打卡,告诉自己除了日常工作内容,还能做一些自己感兴趣的事情。话不多说,看看最新刷过的题目列表,这仅仅是个开始。LeetCode之两数之和(一)LeetCode之两数相加(二)Lee原创 2020-06-22 20:08:24 · 670 阅读 · 0 评论 -
LeetCode之整数反转(七)
题目(原题链接:https://leetcode-cn.com/problems/reverse-integer)给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−2^31,2^31− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解题...原创 2020-06-14 10:24:38 · 593 阅读 · 0 评论 -
LeetCode之寻找两个正序数组的中位数(四)
题目(原题链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays/)给定两个大小为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2...原创 2020-06-11 09:34:59 · 842 阅读 · 0 评论 -
LeetCode之无重复字符串的最大子串(三)
题目(原题链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters)给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入:...原创 2020-06-09 23:28:11 · 612 阅读 · 0 评论 -
LeetCode之两数相加(二)
题目(原题链接:https://leetcode-cn.com/problems/add-two-numbers/)给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -&g...原创 2020-06-07 18:40:31 · 617 阅读 · 0 评论 -
LeetCode之两数之和(一)
目录引言题目解题方法一、纯暴力方法二、哈希表法引言工作久了之后,突然发现大学时候的算法题离自己越来越远了,刷再多的题,也只是在面试的时候用到。也不知怎么的,最近特别想刷题。为了坚持下去,每日在优快云博客打卡。题目(原题链接:https://leetcode-cn.com/problems/two-sum/)给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案...原创 2020-06-06 18:40:33 · 582 阅读 · 0 评论