Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode844-比较含退格的字符串

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

题目链接

英文链接:https://leetcode.com/problems/backspace-string-compare/

中文链接:https://leetcode-cn.com/problems/backspace-string-compare/

题目详述

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

示例 1:

1
2
3
输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。

示例 2:

1
2
3
输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。

示例 3:

1
2
3
输入:S = "a##c", T = "#a#c"
输出:true
解释:S 和 T 都会变成 “c”。

示例 4:

1
2
3
输入:S = "a#c", T = "b"
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。

提示:

  1. 1 <= S.length <= 200
  2. 1 <= T.length <= 200
  3. S 和 T 只含有小写字母以及字符 '#'。
阅读全文 »

LeetCode20-有效的括号

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

题目链接

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

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

题目详述

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

1
2
输入: "()"
输出: true

示例 2:

1
2
输入: "()[]{}"
输出: true

示例 3:

1
2
输入: "(]"
输出: false

示例 4:

1
2
输入: "([)]"
输出: false

示例 5:

1
2
输入: "{[]}"
输出: true
阅读全文 »

LeetCode25-k个一组翻转链表

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

题目链接

英文链接:https://leetcode.com/problems/reverse-nodes-in-k-group/

中文链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group/

题目详述

给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。

k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。

示例 :

给定这个链表:1->2->3->4->5

当 k = 2 时,应当返回: 2->1->4->3->5

当 k = 3 时,应当返回: 3->2->1->4->5

说明 :

  • 你的算法只能使用常数的额外空间。
  • 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
阅读全文 »

LeetCode24-两两交换链表中的节点

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

题目链接

英文链接:https://leetcode.com/problems/swap-nodes-in-pairs/

中文链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs/

题目详述

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

示例:

1
给定 1->2->3->4, 你应该返回 2->1->4->3.
阅读全文 »

LeetCode309-最佳买卖股票时机含手续费

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

题目链接

英文链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/

中文链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/

题目详述

给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。

你可以无限次地完成交易,但是你每次交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。

返回获得利润的最大值。

示例 1:

1
2
3
4
5
6
7
8
输入: prices = [1, 3, 2, 8, 4, 9], fee = 2
输出: 8
解释: 能够达到的最大利润:
在此处买入 prices[0] = 1
在此处卖出 prices[3] = 8
在此处买入 prices[4] = 4
在此处卖出 prices[5] = 9
总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.

注意:

  • 0 < prices.length <= 50000.
  • 0 < prices[i] < 50000.
  • 0 <= fee < 50000.
阅读全文 »

LeetCode309-最佳买卖股票时机含冷冻期

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

题目链接

英文链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/

中文链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/

题目详述

给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

  • 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
  • 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。

示例:

1
2
3
输入: [1,2,3,0,2]
输出: 3
解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]
阅读全文 »

LeetCode377-组合总和IV

发表于 2019-02-18 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/combination-sum-iv/

中文链接:https://leetcode-cn.com/problems/combination-sum-iv/

题目详述

给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nums = [1, 2, 3]
target = 4

所有可能的组合为:
(1, 1, 1, 1)
(1, 1, 2)
(1, 2, 1)
(1, 3)
(2, 1, 1)
(2, 2)
(3, 1)

请注意,顺序不同的序列被视作不同的组合。

因此输出为 7。

进阶:
如果给定的数组中含有负数会怎么样?
问题会产生什么变化?
我们需要在题目中添加什么限制来允许负数的出现?

阅读全文 »

LeetCode322-零钱兑换

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

题目链接

英文链接:https://leetcode.com/problems/coin-change/

中文链接:https://leetcode-cn.com/problems/coin-change/

题目详述

给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。

示例 1:

1
2
3
输入: coins = [1, 2, 5], amount = 11
输出: 3
解释: 11 = 5 + 5 + 1

示例 2:

1
2
输入: coins = [2], amount = 3
输出: -1

说明:
你可以认为每种硬币的数量是无限的。

阅读全文 »

LeetCode474-一和零

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

题目链接

英文链接:https://leetcode.com/problems/ones-and-zeroes/

中文链接:https://leetcode-cn.com/problems/ones-and-zeroes/

题目详述

在计算机界中,我们总是追求用有限的资源获取最大的收益。

现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。

你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次。

注意:

  1. 给定 0 和 1 的数量都不会超过 100。
  2. 给定字符串数组的长度不会超过 600。

示例 1:

1
2
3
4
输入: Array = {"10", "0001", "111001", "1", "0"}, m = 5, n = 3
输出: 4

解释: 总共 4 个字符串可以通过 5 个 0 和 3 个 1 拼出,即 "10","0001","1","0" 。

示例 2:

1
2
3
4
输入: Array = {"10", "0", "1"}, m = 1, n = 1
输出: 2

解释: 你可以拼出 "10",但之后就没有剩余数字了。更好的选择是拼出 "0" 和 "1" 。
阅读全文 »

LeetCode139-单词拆分

发表于 2019-02-15 | 分类于 LeetCode

题目链接

英文链接:https://leetcode.com/problems/word-break/

中文链接:https://leetcode-cn.com/problems/word-break/

题目详述

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。

说明:

  • 拆分时可以重复使用字典中的单词。
  • 你可以假设字典中没有重复的单词。

示例 1:

1
2
3
输入: s = "leetcode", wordDict = ["leet", "code"]
输出: true
解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。

示例 2:

1
2
3
4
输入: s = "applepenapple", wordDict = ["apple", "pen"]
输出: true
解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。
注意你可以重复使用字典中的单词。

示例 3:

1
2
输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"]
输出: false
阅读全文 »
1…333435…47
Jerring

Jerring

Talk is cheap, show me the code.

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