![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
奋斗的瘦胖子
作为一个码农小渣渣,开启执着的自驱学习之路!
展开
-
二维数组中的查找(剑指Offer 04)
题目:二维数组中的查找(剑指Offer 04)描述:在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]原创 2021-04-13 10:26:13 · 221 阅读 · 0 评论 -
找出数组中重复的数字(剑指 Offer 03)
题目: 找出数组中重复的数字(剑指 Offer 03)描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000==================================================这道题在考察什么?考原创 2021-04-13 10:12:01 · 138 阅读 · 1 评论 -
LeetCode系列:575. 分糖果
575. 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类...原创 2019-03-31 22:48:45 · 180 阅读 · 0 评论 -
LeetCode系列:693. 交替位二进制数
693. 交替位二进制数给定一个正整数,检查他是否为交替位二进制数:换句话说,就是他的二进制数相邻的两个位数永不相等。示例 1:输入: 5输出: True解释:5的二进制数是: 101示例 2:输入: 7输出: False解释:7的二进制数是: 111示例 3:输入: 11输出: False解释:11的二进制数是: 1011示例 4:输入: 10输出: Tru...原创 2019-03-31 23:05:53 · 201 阅读 · 0 评论 -
LeetCode系列:762. 二进制表示中质数个计算置位
762. 二进制表示中质数个计算置位给定两个整数 L 和 R ,找到闭区间 [L, R] 范围内,计算置位位数为质数的整数个数。(注意,计算置位代表二进制表示中1的个数。例如 21 的二进制表示 10101 有 3 个计算置位。还有,1 不是质数。)示例 1:输入: L = 6, R = 10输出: 4解释:6 -> 110 (2 个计算置位,2 是质数)7 -> 11...原创 2019-04-01 20:07:50 · 281 阅读 · 0 评论 -
LeetCode系列:893. 特殊等价字符串组
893. 特殊等价字符串组你将得到一个字符串数组 A。如果经过任意次数的移动,S == T,那么两个字符串 S 和 T 是特殊等价的。一次移动包括选择两个索引 i 和 j,且 i%2 == j%2,并且交换 S[j] 和 S [i]。现在规定,A 中的特殊等价字符串组是 A 的非空子集 S,这样不在 S 中的任何字符串与 S 中的任何字符串都不是特殊等价的。返回 A 中特殊等价字符串组的...原创 2019-04-01 20:29:33 · 243 阅读 · 0 评论 -
LeetCode系列:821.字符的最短距离
821.字符的最短距离给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。示例 1:输入: S = “loveleetcode”, C = ‘e’输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]说明:字符串 S 的长度范围为 [1, 10000]。C 是一个单字符,且保证是字符串 S 里的...原创 2019-03-28 14:31:36 · 224 阅读 · 0 评论 -
LeetCode系列:908.最小差值I
908.最小差值I给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中。在此过程之后,我们得到一些数组 B。返回 B 的最大值和 B 的最小值之间可能存在的最小差值。示例 1:输入:A = [1], K = 0输出:0解释:B = [1]示例 2:输入:A = [0,10], K = 2输出...原创 2019-03-28 14:38:42 · 167 阅读 · 0 评论 -
LeetCode系列:876. 链表的中间结点
876. 链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = ...原创 2019-04-02 10:10:23 · 147 阅读 · 0 评论 -
LeetCode系列:566. 重塑矩阵
566. 重塑矩阵在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:...原创 2019-04-02 12:48:54 · 131 阅读 · 0 评论 -
LeetCode系列:766. 托普利茨矩阵
766. 托普利茨矩阵如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True。示例 1:输入:matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:在上述矩阵中, 其对角线为:“[9]”, “[5, 5]”, “[1, 1,...原创 2019-04-02 19:22:18 · 194 阅读 · 0 评论 -
LeetCode系列:1019. 链表中的下一个更大节点
1019. 链表中的下一个更大节点给出一个以头节点 head 作为第一个节点的链表。链表中的节点分别编号为:node_1, node_2, node_3, … 。每个节点都可能有下一个更大值(next larger value):对于 node_i,如果其 next_larger(node_i) 是 node_j.val,那么就有 j > i 且 node_j.val > nod...原创 2019-04-03 12:23:11 · 2806 阅读 · 0 评论 -
LeetCode系列:34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: n...原创 2019-04-21 21:49:42 · 164 阅读 · 0 评论 -
LeetCode系列:328. 奇偶链表
328. 奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->...原创 2019-04-17 09:45:52 · 211 阅读 · 0 评论 -
leetcode:二分查找 Python模板
什么是二分查找二分查找是计算机科学中最基本、最有用的算法之一。 它描述了在有序集合中搜索特定值的过程。二分查找中使用的术语:目标 Target —— 你要查找的值索引 Index —— 你要查找的当前位置左、右指示符 Left,Right —— 我们用来维持查找空间的指标中间指示符 Mid —— 我们用来应用条件来确定我们应该向左查找还是向右查找的索引下面介绍三个常用的二分查找模板...原创 2019-06-03 08:08:42 · 1071 阅读 · 0 评论 -
LeetCode系列: 728. 自除数
728. 自除数自除数 是指可以被它包含的每一位数除尽的数。例如,128 是一个自除数,因为 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。还有,自除数不允许包含 0 。给定上边界和下边界数字,输出一个列表,列表的元素是边界(含边界)内所有的自除数。示例 1:输入:上边界left = 1, 下边界right = 22输出: [1, 2, 3, 4, ...原创 2019-03-24 14:18:53 · 332 阅读 · 0 评论 -
LeetCode系列: 922. 按奇偶排序数组 II
922. 按奇偶排序数组 II给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]解释:[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。提示:2 &l...原创 2019-03-24 13:50:50 · 182 阅读 · 0 评论 -
LeetCode系列: 977. 有序数组的平方 & Squares of a Sorted Array
问题描述:给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。示例 1:输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]示例 2:输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]提示:1 <= A.length <= 10000-10000 <= A[i] <= 1000...原创 2019-03-22 12:57:19 · 151 阅读 · 0 评论 -
LeetCode系列: 965.单值二叉树
965.单值二叉树https://leetcode-cn.com/problems/univalued-binary-tree/如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例 1:输入:[1,1,1,1,1,null,1]输出:true示例 2:输入:[2,2,2,5,2]输出:false提...原创 2019-03-26 09:32:12 · 167 阅读 · 0 评论 -
LeetCode系列: 500.键盘行
500.键盘行https://leetcode-cn.com/problems/keyboard-row/给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。American keyboard示例:输入: [“Hello”, “Alaska”, “Dad”, “Peace”]输出: [“Alaska”, “Dad”]注意:你可以重复使用键盘上同一字符。...原创 2019-03-26 09:44:25 · 198 阅读 · 0 评论 -
LeetCode系列:509. 斐波那契数
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-03-26 09:50:29 · 306 阅读 · 0 评论 -
LeetCode系列:867. 转置矩阵
867. 转置矩阵给定一个矩阵 A, 返回 A 的转置矩阵。矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。示例 1:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]]示例 2:输入:[[1,2,3],[4,5,6]]输出:[[1,4],[2,5],[3,6]]提示:1 <= A.length &...原创 2019-03-29 21:45:47 · 211 阅读 · 0 评论 -
LeetCode系列:999. 车的可用捕获量
999. 车的可用捕获量在一个 8 x 8 的棋盘上,有一个白色车(rook)。也可能有空方块,白色的象(bishop)和黑色的卒(pawn)。它们分别以字符 “R”,“.”,“B” 和 “p” 给出。大写字符表示白棋,小写字符表示黑棋。车按国际象棋中的规则移动:它选择四个基本方向中的一个(北,东,西和南),然后朝那个方向移动,直到它选择停止、到达棋盘的边缘或移动到同一方格来捕获该方格上颜色相...原创 2019-03-29 22:21:11 · 208 阅读 · 0 评论 -
LeetCode系列:811. 子域名访问计数
811. 子域名访问计数一个网站域名,如"discuss.leetcode.com",包含了多个子域名。作为顶级域名,常用的有"com",下一级则有"leetcode.com",最低的一级为"discuss.leetcode.com"。当我们访问域名"discuss.leetcode.com"时,也同时访问了其父域名"leetcode.com"以及顶级域名 “com”。给定一个带访问次数和域名...原创 2019-03-29 23:00:13 · 129 阅读 · 0 评论 -
LeetCode系列: 852. 山脉数组的峰顶索引 & Peak Index in a Mountain Array
852. 山脉数组的峰顶索引我们把符合下列属性的数组 A 称作山脉:A.length >= 3存在 0 < i < A.length - 1 使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] &...原创 2019-03-23 12:38:48 · 207 阅读 · 0 评论 -
LeetCode系列:944. 删列造序 & Delete Columns to Make Sorted
944. 删列造序给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等。选取一个删除索引序列,对于 A 中的每个字符串,删除对应每个索引处的字符。 所余下的字符串行从上往下读形成列。比如,有 A = [“abcdef”, “uvwxyz”],删除索引序列 {0, 2, 3},删除后 A 为[“bef”, “vyz”], A 的列分别为[“b”,“v”], [“e”,“y”], ...原创 2019-03-23 12:54:08 · 129 阅读 · 0 评论 -
LeetCode系列:521. 最长特殊序列 Ⅰ
521.最长特殊序列 Ⅰ给定两个字符串,你需要从这两个字符串中找出最长的特殊序列。最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列)。子序列可以通过删去字符串中的某些字符实现,但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列,任何字符串为其自身的子序列。输入为两个字符串,输出最长特殊序列的长度。如果不存在,则返回 -1。示例 :输入: “aba”...原创 2019-03-30 11:18:59 · 149 阅读 · 0 评论 -
LeetCode系列:669. 修剪二叉搜索树
669. 修剪二叉搜索树给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入:1/ \0 2L = 1R = 2输出:12示例 2:输入:3/ 0 4\2/1L = 1R = 3...原创 2019-03-30 22:36:41 · 188 阅读 · 0 评论 -
LeetCode系列:806. 写字符串需要的行数
806. 写字符串需要的行数我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行。我们给定了一个数组 widths ,这个数组 widths[0] 代表 ‘a’ 需要的单位, widths[1] 代表 ‘b’ 需要的单位,…, widths[25] 代表 ‘z’ 需要的单位。现在...原创 2019-03-30 22:57:12 · 158 阅读 · 0 评论 -
LeetCode系列:1002. 查找常用字符
1002. 查找常用字符给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:[“bella”,“label”,“roller”]输出:[“e”,“l”,“l”]示例 2:输入:[“cool”...原创 2019-03-30 23:46:52 · 223 阅读 · 0 评论 -
LeetCode系列:463. 岛屿的周长
463. 岛屿的周长给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛...原创 2019-03-31 10:11:47 · 525 阅读 · 0 评论 -
LeetCode系列: 933. 最近的请求次数
933. 最近的请求次数写一个 RecentCounter 类来计算最近的请求。它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。返回从 3000 毫秒前到现在的 ping 数。任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 ping。保证每次对 ping 的调用都使用比之前更大的 t 值。示例:...原创 2019-03-25 09:53:40 · 306 阅读 · 0 评论