Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode71-简化路径

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

题目链接

英文链接:https://leetcode.com/problems/simplify-path/

中文链接:https://leetcode-cn.com/problems/simplify-path/

题目详述

以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。

在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径

请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜杠 /。最后一个目录名(如果存在)不能以 / 结尾。此外,规范路径必须是表示绝对路径的最短字符串。

示例 1:

1
2
3
输入:"/home/"
输出:"/home"
解释:注意,最后一个目录名后面没有斜杠。

示例 2:

1
2
3
输入:"/../"
输出:"/"
解释:从根目录向上一级是不可行的,因为根是你可以到达的最高级。

示例 3:

1
2
3
输入:"/home//foo/"
输出:"/home/foo"
解释:在规范路径中,多个连续斜杠需要用一个斜杠替换。

示例 4:

1
2
输入:"/a/./b/../../c/"
输出:"/c"

示例 5:

1
2
输入:"/a/../../b/../c//.//"
输出:"/c"

示例 6:

1
2
输入:"/a//b////c/d//././/.."
输出:"/a/b/c"
阅读全文 »

LeetCode60-第k个排列

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

题目链接

英文链接:https://leetcode.com/problems/permutation-sequence/

中文链接:https://leetcode-cn.com/problems/permutation-sequence/

题目详述

给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。

按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:

  1. “123”
  2. “132”
  3. “213”
  4. “231”
  5. “312”
  6. “321”

给定 n 和 k,返回第 k 个排列。

说明:

  • 给定 n 的范围是 [1, 9]。
  • 给定 k 的范围是[1, n!]。

示例 1:

1
2
输入: n = 3, k = 3
输出: "213"

示例 2:

1
2
输入: n = 4, k = 9
输出: "2314"
阅读全文 »

LeetCode673-最长递增子序列的个数

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

题目链接

英文链接:https://leetcode.com/problems/number-of-longest-increasing-subsequence/

中文链接:https://leetcode-cn.com/problems/number-of-longest-increasing-subsequence/

题目详述

给定一个未排序的整数数组,找到最长递增子序列的个数。

示例 1:

1
2
3
输入: [1,3,5,4,7]
输出: 2
解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。

示例 2:

1
2
3
输入: [2,2,2,2,2]
输出: 5
解释: 最长递增子序列的长度是1,并且存在5个子序列的长度为1,因此输出5。

注意: 给定的数组长度不超过 2000 并且结果一定是32位有符号整数。

阅读全文 »

LeetCode674-最长连续递增序列

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

题目链接

英文链接:https://leetcode.com/problems/longest-continuous-increasing-subsequence/

中文链接:https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/

题目详述

给定一个未经排序的整数数组,找到最长且连续的的递增序列。

示例 1:

1
2
3
4
输入: [1,3,5,4,7]
输出: 3
解释: 最长连续递增序列是 [1,3,5], 长度为3。
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。

示例 2:

1
2
3
输入: [2,2,2,2,2]
输出: 1
解释: 最长连续递增序列是 [2], 长度为1。

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

阅读全文 »

LeetCode1124-表现良好的最长时间段

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

题目链接

英文链接:https://leetcode.com/problems/longest-well-performing-interval/

中文链接:https://leetcode-cn.com/problems/longest-well-performing-interval/

题目详述

给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。

我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。

所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。

请你返回「表现良好时间段」的最大长度。

示例 1:

1
2
3
输入:hours = [9,9,6,0,6,6,9]
输出:3
解释:最长的表现良好时间段是 [9,9,6]。

提示:

  • 1 <= hours.length <= 10000
  • 0 <= hours[i] <= 16
阅读全文 »

LeetCode1123-最深叶节点的最近公共祖先

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

题目链接

英文链接:https://leetcode.com/problems/lowest-common-ancestor-of-deepest-leaves/

中文链接:https://leetcode-cn.com/problems/lowest-common-ancestor-of-deepest-leaves/

题目详述

给你一个有根节点的二叉树,找到它最深的叶节点的最近公共祖先。

回想一下:

  • 叶节点 是二叉树中没有子节点的节点
  • 树的根节点的 深度 为 0,如果某一节点的深度为 d,那它的子节点的深度就是 d+1
  • 如果我们假定 A 是一组节点 S 的 最近公共祖先,S 中的每个节点都在以 A 为根节点的子树中,且 A 的深度达到此条件下可能的最大值。

示例 1:

1
2
输入:root = [1,2,3]
输出:[1,2,3]

示例 2:

1
2
输入:root = [1,2,3,4]
输出:[4]

示例 3:

1
2
输入:root = [1,2,3,4,5]
输出:[2,4,5]

提示:

  • 给你的树中将有 1 到 1000 个节点。
  • 树中每个节点的值都在 1 到 1000 之间。
阅读全文 »

LeetCode1122-数组的相对排序

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

题目链接

英文链接:https://leetcode.com/problems/relative-sort-array/

中文链接:https://leetcode-cn.com/problems/relative-sort-array/

题目详述

给你两个数组,arr1 和 arr2,

  • arr2 中的元素各不相同
  • arr2 中的每个元素都出现在 arr1 中

对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

示例:

1
2
输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出:[2,2,2,1,4,3,3,9,6,7,19]

提示:

  • arr1.length, arr2.length <= 1000
  • 0 <= arr1[i], arr2[i] <= 1000
  • arr2 中的元素 arr2[i] 各不相同
  • arr2 中的每个元素 arr2[i] 都出现在 arr1 中
阅读全文 »

LeetCode857-雇佣K名工人的最低成本

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

题目链接

英文链接:https://leetcode.com/problems/minimum-cost-to-hire-k-workers/

中文链接:https://leetcode-cn.com/problems/minimum-cost-to-hire-k-workers/

题目详述

有 N 名工人。 第 i 名工人的工作质量为 quality[i] ,其最低期望工资为 wage[i] 。

现在我们想雇佣 K 名工人组成一个工资组。在雇佣 一组 K 名工人时,我们必须按照下述规则向他们支付工资:

  1. 对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。
  2. 工资组中的每名工人至少应当得到他们的最低期望工资。

返回组成一个满足上述条件的工资组至少需要多少钱。

示例 1:

1
2
3
输入: quality = [10,20,5], wage = [70,50,30], K = 2
输出: 105.00000
解释: 我们向 0 号工人支付 70,向 2 号工人支付 35。

示例 2:

1
2
3
输入: quality = [3,1,10,10,1], wage = [4,8,2,2,7], K = 3
输出: 30.66667
解释: 我们向 0 号工人支付 4,向 2 号和 3 号分别支付 13.33333。

提示:

  1. 1 <= K <= N <= 10000,其中 N = quality.length = wage.length
  2. 1 <= quality[i] <= 10000
  3. 1 <= wage[i] <= 10000
  4. 与正确答案误差在 10^-5 之内的答案将被视为正确的。
阅读全文 »

LeetCode227-基本计算器II

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

题目链接

英文链接:https://leetcode.com/problems/basic-calculator-ii/

中文链接:https://leetcode-cn.com/problems/basic-calculator-ii/

题目详述

实现一个基本的计算器来计算一个简单的字符串表达式的值。

字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。

示例 1:

1
2
输入: "3+2*2"
输出: 7

示例 2:

1
2
输入: " 3/2 "
输出: 1

示例 3:

1
2
输入: " 3+5 / 2 "
输出: 5

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 请不要使用内置的库函数 eval。
阅读全文 »

LeetCode224-基本计算器

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

题目链接

英文链接:https://leetcode.com/problems/basic-calculator/

中文链接:https://leetcode-cn.com/problems/basic-calculator/

题目详述

实现一个基本的计算器来计算一个简单的字符串表达式的值。

字符串表达式可以包含左括号 ( ,右括号 ),加号 + ,减号 -,非负整数和空格 。

示例 1:

1
2
输入: "1 + 1"
输出: 2

示例 2:

1
2
输入: " 2-1 + 2 "
输出: 3

示例 3:

1
2
输入: "(1+(4+5+2)-3)+(6+8)"
输出: 23

说明:

  • 你可以假设所给定的表达式都是有效的。
  • 请不要使用内置的库函数 eval。
阅读全文 »
1…678…47
Jerring

Jerring

Talk is cheap, show me the code.

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