
Leecode
龍龍哥
这个作者很懒,什么都没留下…
展开
-
力扣——连续的子数组和(官方解法三详解)
题目描述给定一个包含 非负数 的数组和一个目标 整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,且总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。示例 1:输入:[23,2,4,6,7], k = 6输出:True解释:[2,4] 是一个大小为 2 的子数组,并且和为 6。示例 2:输入:[23,2,6,4,7], k = 6输出:True解释:[23,2,6,4,7]是大小为 5 的子数组,并且和为 42。官方解法:(解法链接)方法 3: 使用原创 2020-11-19 22:24:11 · 491 阅读 · 0 评论 -
力扣——朋友圈思路分析
题目描述班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入:[[1,1,0],[1,1,0],[0,0,1]]输出:2解释:已知学生 0 和原创 2020-11-01 14:33:19 · 507 阅读 · 2 评论 -
力扣——亲密字符串思路分析
题目分析给定两个由小写字母构成的字符串 A 和 B ,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回 true ;否则返回 false 。示例 1:输入: A = “ab”, B = “ba”输出: true示例 2:输入: A = “ab”, B = “ab”输出: false示例 3:输入: A = “aa”, B = “aa”输出: true示例 4:输入: A = “aaaaaaabc”, B = “aaaaaaacb”输出: true示例 5:输原创 2020-07-30 20:00:09 · 206 阅读 · 0 评论 -
力扣——按摩师思路分析
题目描述:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。注意:本题相对原题稍作改动示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: [2,7,9,3,1]输出: 12解释: 选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2 +原创 2020-07-21 12:13:23 · 341 阅读 · 0 评论 -
力扣——丑数思路分析
题目描述:编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1 是丑数。输入不会超过 32 位有符号整数的范围: [−231, 231 − 1]。解题思路1:首先看到这道题,我们可以将它理解为一类体型来处理原创 2020-07-20 11:49:29 · 237 阅读 · 0 评论 -
力扣——有效的山脉数组思路分析
题目描述:给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < … A[i-1] < A[i]A[i] > A[i+1] > … > A[A.length - 1]示例 1:输入:[2,1]输出:false示例 2:输入原创 2020-07-16 10:26:43 · 259 阅读 · 0 评论 -
力扣——质数排列思路分析
题目描述:请你帮忙给从 1 到 n 的数设计排列方案,使得所有的「质数」都应该被放在「质数索引」(索引从 1 开始)上;你需要返回可能的方案总数。让我们一起来回顾一下「质数」:质数一定是大于 1 的,并且不能用两个小于它的正整数的乘积来表示。由于答案可能会很大,所以请你返回答案 模 mod 10^9 + 7 之后的结果即可。示例 1:输入:n = 5输出:12解释:举个例子,[1,2,5,4,3] 是一个有效的排列,但 [5,2,3,4,1] 不是,因为在第二种情况里质数 5 被错误地放在索引原创 2020-07-15 12:28:52 · 577 阅读 · 0 评论 -
力扣——数组中出现次数超过一半的数字思路分析
题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000解题思路1:对于这种寻找众数的方法,当然最先想到的会是使用数组来计数,每读到一个数,就在相应的位置去加1,最后只需找到累加数超过数组一半的值返回即可,然后我就想到了用桶排序的思想,用每一个值减去最小值作为他的记录个数位。(其实可以直原创 2020-07-14 11:24:44 · 409 阅读 · 0 评论 -
力扣——汉明距离思路分析
题目描述:两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。解题思路1:最最最最简单的想法,一定是先将两个数转换为二进制数,然后将他们二进制值存入数组,再遍历比较两个数组中的每一个值,若相减的绝对值不为0,就存在差异,然后给总数加一就能得到最初的结果。所遇问题1:解题思路相当清晰,代码完成度也很高,进行检验,虽然通过了测试,但是感觉效率太低,完成所用空间和时间都相当的低。 public int hammingDistance原创 2020-07-13 14:23:13 · 309 阅读 · 0 评论 -
力扣——数组序号转换思路分析
题目:给你一个整数数组 arr ,请你将数组中的每个元素替换为它们排序后的序号。序号代表了一个元素有多大。序号编号的规则如下:序号从 1 开始编号。一个元素越大,那么序号越大。如果两个元素相等,那么它们的序号相同。每个数字的序号都应该尽可能地小。示例 1:输入:arr = [40,10,20,30]输出:[4,1,2,3]解释:40 是最大的元素。 10 是最小的元素。 20 是第二小的数字。 30 是第三小的数字。示例 2:输入:arr = [100,100,100]输出:[1,原创 2020-07-10 14:19:12 · 715 阅读 · 0 评论