Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode328-奇偶链表

发表于 2019-07-08 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/odd-even-linked-list/

中文链接:https://leetcode-cn.com/problems/odd-even-linked-list/

题目详述

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。

示例 1:

1
2
输入: 1->2->3->4->5->NULL
输出: 1->3->5->2->4->NULL

示例 2:

1
2
输入: 2->1->3->5->6->4->7->NULL 
输出: 2->3->6->7->1->5->4->NULL

说明:

  • 应当保持奇数节点和偶数节点的相对顺序。
  • 链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。
阅读全文 »

LeetCode611-有效三角形的个数

发表于 2019-07-07 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/valid-triangle-number/

中文链接:https://leetcode-cn.com/problems/valid-triangle-number/

题目详述

给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。

示例 1:

1
2
3
4
5
6
7
输入: [2,2,3,4]
输出: 3
解释:
有效的组合是:
2,3,4 (使用第一个 2)
2,3,4 (使用第二个 2)
2,2,3

注意:

  1. 数组长度不超过1000。
  2. 数组里整数的范围为 [0, 1000]。
阅读全文 »

LeetCode1078-Bigram分词

发表于 2019-07-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/occurrences-after-bigram/

中文链接:https://leetcode-cn.com/problems/occurrences-after-bigram/

题目详述

给出第一个词 first 和第二个词 second,考虑在某些文本 text 中可能以 “first second third” 形式出现的情况,其中 second 紧随 first 出现,third 紧随 second 出现。

对于每种这样的情况,将第三个词 “third” 添加到答案中,并返回答案。

示例 1:

1
2
输入:text = "alice is a good girl she is a good student", first = "a", second = "good"
输出:["girl","student"]

示例 2:

1
2
输入:text = "we will we will rock you", first = "we", second = "will"
输出:["we","rock"]

提示:

  1. 1 <= text.length <= 1000
  2. text 由一些用空格分隔的单词组成,每个单词都由小写英文字母组成
  3. 1 <= first.length, second.length <= 10
  4. first 和 second 由小写英文字母组成
阅读全文 »

LeetCode1090-受标签影响的最大值

发表于 2019-07-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/largest-values-from-labels/

中文链接:https://leetcode-cn.com/problems/largest-values-from-labels/

题目详述

我们有一个项的集合,其中第 i 项的值为 values[i],标签为 labels[i]。

我们从这些项中选出一个子集 S,这样一来:

  • |S| <= num_wanted
  • 对于任意的标签 L,子集 S 中标签为 L 的项的数目总满足 <= use_limit。

返回子集 S 的最大可能的 和。

示例 1:

1
2
3
输入:values = [5,4,3,2,1], labels = [1,1,2,2,3], num_wanted = 3, use_limit = 1
输出:9
解释:选出的子集是第一项,第三项和第五项。

示例 2:

1
2
3
输入:values = [5,4,3,2,1], labels = [1,3,3,3,2], num_wanted = 3, use_limit = 2
输出:12
解释:选出的子集是第一项,第二项和第三项。

示例 3:

1
2
3
输入:values = [9,8,8,7,6], labels = [0,0,0,1,1], num_wanted = 3, use_limit = 1
输出:16
解释:选出的子集是第一项和第四项。

示例 4:

1
2
3
输入:values = [9,8,8,7,6], labels = [0,0,0,1,1], num_wanted = 3, use_limit = 2
输出:24
解释:选出的子集是第一项,第二项和第四项。

提示:

  1. 1 <= values.length == labels.length <= 20000
  2. 0 <= values[i], labels[i] <= 20000
  3. 1 <= num_wanted, use_limit <= values.length
阅读全文 »

LeetCode1103-分糖果II

发表于 2019-07-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/distribute-candies-to-people/

中文链接:https://leetcode-cn.com/problems/distribute-candies-to-people/

题目详述

排排坐,分糖果。

我们买了一些糖果 candies,打算把它们分给排好队的 n = num_people 个小朋友。

给第一个小朋友 1 颗糖果,第二个小朋友 2 颗,依此类推,直到给最后一个小朋友 n 颗糖果。

然后,我们再回到队伍的起点,给第一个小朋友 n + 1 颗糖果,第二个小朋友 n + 2 颗,依此类推,直到给最后一个小朋友 2 * n 颗糖果。

重复上述过程(每次都比上一次多给出一颗糖果,当到达队伍终点后再次从队伍起点开始),直到我们分完所有的糖果。注意,就算我们手中的剩下糖果数不够(不比前一次发出的糖果多),这些糖果也会全部发给当前的小朋友。

返回一个长度为 num_people、元素之和为 candies 的数组,以表示糖果的最终分发情况(即 ans[i] 表示第 i 个小朋友分到的糖果数)。

示例 1:

1
2
3
4
5
6
7
输入:candies = 7, num_people = 4
输出:[1,2,3,1]
解释:
第一次,ans[0] += 1,数组变为 [1,0,0,0]。
第二次,ans[1] += 2,数组变为 [1,2,0,0]。
第三次,ans[2] += 3,数组变为 [1,2,3,0]。
第四次,ans[3] += 1(因为此时只剩下 1 颗糖果),最终数组变为 [1,2,3,1]。

示例 2:

1
2
3
4
5
6
7
输入:candies = 10, num_people = 3
输出:[5,2,3]
解释:
第一次,ans[0] += 1,数组变为 [1,0,0]。
第二次,ans[1] += 2,数组变为 [1,2,0]。
第三次,ans[2] += 3,数组变为 [1,2,3]。
第四次,ans[0] += 4,最终数组变为 [5,2,3]。

提示:

  • 1 <= candies <= 10^9
  • 1 <= num_people <= 1000
阅读全文 »

LeetCode41-缺失的第一个正数

发表于 2019-07-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/first-missing-positive/

中文链接:https://leetcode-cn.com/problems/first-missing-positive/

题目详述

给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

示例 1:

1
2
输入: [1,2,0]
输出: 3

示例 2:

1
2
输入: [3,4,-1,1]
输出: 2

示例 3:

1
2
输入: [7,8,9,11,12]
输出: 1

说明:

你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。

阅读全文 »

LeetCode48-旋转图像

发表于 2019-07-06 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/rotate-image/

中文链接:https://leetcode-cn.com/problems/rotate-image/

题目详述

给定一个 n × n 的二维矩阵表示一个图像。

将图像顺时针旋转 90 度。

说明:

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

示例 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
给定 matrix = 
[
[1,2,3],
[4,5,6],
[7,8,9]
],

原地旋转输入矩阵,使其变为:
[
[7,4,1],
[8,5,2],
[9,6,3]
]

示例 2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
给定 matrix =
[
[ 5, 1, 9,11],
[ 2, 4, 8,10],
[13, 3, 6, 7],
[15,14,12,16]
],

原地旋转输入矩阵,使其变为:
[
[15,13, 2, 5],
[14, 3, 4, 1],
[12, 6, 8, 9],
[16, 7,10,11]
]
阅读全文 »

LeetCode483-最小好进制

发表于 2019-07-05 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/smallest-good-base/

中文链接:https://leetcode-cn.com/problems/smallest-good-base/

题目详述

对于给定的整数 n, 如果n的k(k>=2)进制数的所有数位全为1,则称 k(k>=2)是 n 的一个好进制。

以字符串的形式给出 n, 以字符串的形式返回 n 的最小好进制。

示例 1:

1
2
3
输入:"13"
输出:"3"
解释:13 的 3 进制是 111。

示例 2:

1
2
3
输入:"4681"
输出:"8"
解释:4681 的 8 进制是 11111。

示例 3:

1
2
3
输入:"1000000000000000000"
输出:"999999999999999999"
解释:1000000000000000000 的 999999999999999999 进制是 11。

提示:

  1. n的取值范围是 [3, 10^18]。
  2. 输入总是有效且没有前导 0。
阅读全文 »

LeetCode172-阶乘后的零

发表于 2019-07-04 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/factorial-trailing-zeroes/

中文链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes/

题目详述

给定一个整数 n,返回 n! 结果尾数中零的数量。

示例 1:

1
2
3
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。

示例 2:

1
2
3
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零。

说明: 你算法的时间复杂度应为 O(log n) 。

阅读全文 »

LeetCode453-最小移动次数使数组元素相等

发表于 2019-07-04 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/minimum-moves-to-equal-array-elements/

中文链接:https://leetcode-cn.com/problems/minimum-moves-to-equal-array-elements/

题目详述

给定一个长度为 n 的非空整数数组,找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。

示例:

1
2
3
4
5
6
7
8
9
10
输入:
[1,2,3]

输出:
3

解释:
只需要3次移动(注意每次移动会增加两个元素的值):

[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]
阅读全文 »
1…111213…47
Jerring

Jerring

Talk is cheap, show me the code.

462 日志
4 分类
24 标签
© 2019 Jerring
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4