Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode852-山脉数组的峰顶索引

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

题目链接

英文链接:https://leetcode.com/problems/peak-index-in-a-mountain-array/

中文链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/

题目详述

我们把符合下列属性的数组 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] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1] 的 i 的值。

示例 1:

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

示例 2:

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

提示:

  1. 3 <= A.length <= 10000
  2. 0 <= A[i] <= 10^6
  3. A 是如上定义的山脉
阅读全文 »

LeetCode878-第N个神奇数字

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

题目链接

英文链接:https://leetcode.com/problems/nth-magical-number/

中文链接:https://leetcode-cn.com/problems/nth-magical-number/

题目详述

如果正整数可以被 A 或 B 整除,那么它是神奇的。

返回第 N 个神奇数字。由于答案可能非常大,返回它模 10^9 + 7 的结果。

示例 1:

1
2
输入:N = 1, A = 2, B = 3
输出:2

示例 2:

1
2
输入:N = 4, A = 2, B = 3
输出:6

示例 3:

1
2
输入:N = 5, A = 2, B = 4
输出:10

示例 4:

1
2
输入:N = 3, A = 6, B = 4
输出:8

提示:

  1. 1 <= N <= 10^9
  2. 2 <= A <= 40000
  3. 2 <= B <= 40000
阅读全文 »

LeetCode441-排列硬币

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

题目链接

英文链接:https://leetcode.com/problems/arranging-coins/

中文链接:https://leetcode-cn.com/problems/arranging-coins/

题目详述

你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币。

给定一个数字 n,找出可形成完整阶梯行的总行数。

n 是一个非负整数,并且在32位有符号整型的范围内。

示例 1:

1
2
3
4
5
6
7
8
n = 5

硬币可排列成以下几行:
¤
¤ ¤
¤ ¤

因为第三行不完整,所以返回2.

示例 2:

n = 8

1
2
3
4
5
6
7
硬币可排列成以下几行:
¤
¤ ¤
¤ ¤ ¤
¤ ¤

因为第四行不完整,所以返回3.
阅读全文 »

LeetCode275-H指数II

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

题目链接

英文链接:https://leetcode.com/problems/h-index-ii/

中文链接:https://leetcode-cn.com/problems/h-index-ii/

题目详述

给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列。编写一个方法,计算出研究者的 h 指数。

h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)至多有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)”

示例:

1
2
3
4
输入: citations = [0,1,3,5,6]
输出: 3
解释: 给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 0, 1, 3, 5, 6 次。
由于研究者有 3 篇论文每篇至少被引用了 3 次,其余两篇论文每篇被引用不多于 3 次,所以她的 h 指数是 3。

说明:

如果 h 有多有种可能的值 ,h 指数是其中最大的那个。

进阶:

这是 H指数 的延伸题目,本题中的 citations 数组是保证有序的。
你可以优化你的算法到对数时间复杂度吗?

阅读全文 »

LeetCode274-H指数

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

题目链接

英文链接:https://leetcode.com/problems/h-index/

中文链接:https://leetcode-cn.com/problems/h-index/

题目详述

给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。

h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)至多有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)”

示例:

1
2
3
4
输入: citations = [3,0,6,1,5]
输出: 3
解释: 给定数组表示研究者总共有 5 篇论文,每篇论文相应的被引用了 3, 0, 6, 1, 5 次。
由于研究者有 3 篇论文每篇至少被引用了 3 次,其余两篇论文每篇被引用不多于 3 次,所以她的 h 指数是 3。

说明: 如果 h 有多种可能的值,h 指数是其中最大的那个。

阅读全文 »

LeetCode374-猜数字大小

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

题目链接

英文链接:https://leetcode.com/problems/guess-number-higher-or-lower/

中文链接:https://leetcode-cn.com/problems/guess-number-higher-or-lower/

题目详述

我们正在玩一个猜数字游戏。 游戏规则如下:
我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。
每次你猜错了,我会告诉你这个数字是大了还是小了。
你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):

1
2
3
-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜!你猜对了!

示例 :

1
2
输入: n = 10, pick = 6
输出: 6
阅读全文 »

LeetCode556-下一个更大元素III

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

题目链接

英文链接:https://leetcode.com/problems/next-greater-element-iii/

中文链接:https://leetcode-cn.com/problems/next-greater-element-iii/

题目详述

给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n。如果不存在这样的32位整数,则返回-1。

示例 1:

1
2
输入: 12
输出: 21

示例 2:

1
2
输入: 21
输出: -1
阅读全文 »

LeetCode503-下一个更大元素II

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

题目链接

英文链接:https://leetcode.com/problems/next-greater-element-ii/

中文链接:https://leetcode-cn.com/problems/next-greater-element-ii/

题目详述

给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。

示例 1:

1
2
3
4
5
输入: [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数;
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。

注意: 输入数组的长度不会超过 10000。

阅读全文 »

LeetCode496-下一个更大元素I

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

题目链接

英文链接:https://leetcode.com/problems/next-greater-element-i/

中文链接:https://leetcode-cn.com/problems/next-greater-element-i/

题目详述

给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。

nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。

示例 1:

1
2
3
4
5
6
输入: nums1 = [4,1,2], nums2 = [1,3,4,2].
输出: [-1,3,-1]
解释:
对于num1中的数字4,你无法在第二个数组中找到下一个更大的数字,因此输出 -1。
对于num1中的数字1,第二个数组中数字1右边的下一个较大数字是 3。
对于num1中的数字2,第二个数组中没有下一个更大的数字,因此输出 -1。

示例 2:

1
2
3
4
5
输入: nums1 = [2,4], nums2 = [1,2,3,4].
输出: [3,-1]
解释:
对于num1中的数字2,第二个数组中的下一个较大数字是3。
对于num1中的数字4,第二个数组中没有下一个更大的数字,因此输出 -1。

注意:

  1. nums1和nums2中所有元素是唯一的。
  2. nums1和nums2 的数组大小都不超过1000。
阅读全文 »

LeetCode162-寻找峰值

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

题目链接

英文链接:https://leetcode.com/problems/find-peak-element/

中文链接:https://leetcode-cn.com/problems/find-peak-element/

题目详述

峰值元素是指其值大于左右相邻值的元素。

给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。

数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞。

示例 1:

1
2
3
输入: nums = [1,2,3,1]
输出: 2
解释: 3 是峰值元素,你的函数应该返回其索引 2。

示例 2:

1
2
3
4
输入: nums = [1,2,1,3,5,6,4]
输出: 1 或 5
解释: 你的函数可以返回索引 1,其峰值元素为 2;
或者返回索引 5, 其峰值元素为 6。

说明:

你的解法应该是 O(logN) 时间复杂度的。

阅读全文 »
1…151617…47
Jerring

Jerring

Talk is cheap, show me the code.

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