Jerring


  • 首页

  • 标签

  • 分类

  • 归档

LeetCode1002-查找常用字符

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

题目链接

英文链接:https://leetcode.com/problems/find-common-characters/

中文链接:https://leetcode-cn.com/problems/find-common-characters/

题目详述

给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。

你可以按任意顺序返回答案。

示例 1:

1
2
输入:["bella","label","roller"]
输出:["e","l","l"]

示例 2:

1
2
输入:["cool","lock","cook"]
输出:["c","o"]

提示:

  1. 1 <= A.length <= 100
  2. 1 <= A[i].length <= 100
  3. A[i][j] 是小写字母
阅读全文 »

LeetCode350-两个数组的交集II

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

题目链接

英文链接:https://leetcode.com/problems/intersection-of-two-arrays-ii/

中文链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/

题目详述

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

1
2
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

示例 2:

1
2
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]

说明:

  • 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。
  • 我们可以不考虑输出结果的顺序。

进阶:

  • 如果给定的数组已经排好序呢?你将如何优化你的算法?
  • 如果 nums1 的大小比 nums2 小很多,哪种方法更优?
  • 如果 nums2 的元素存储在磁盘上,磁盘内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
阅读全文 »

LeetCode30-串联所有单词的字串

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

题目链接

英文链接:https://leetcode.com/problems/substring-with-concatenation-of-all-words/

中文链接:https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/

题目详述

给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。

注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。

示例 1:

1
2
3
4
5
6
7
输入:
s = "barfoothefoobarman",
words = ["foo","bar"]
输出:[0,9]
解释:
从索引 0 和 9 开始的子串分别是 "barfoor" 和 "foobar" 。
输出的顺序不重要, [9,0] 也是有效答案。

示例 2:

1
2
3
4
输入:
s = "wordgoodgoodgoodbestword",
words = ["word","good","best","word"]
输出:[]
阅读全文 »

LeetCode76-最小覆盖字串

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

题目链接

英文链接:https://leetcode.com/problems/minimum-window-substring/

中文链接:https://leetcode-cn.com/problems/minimum-window-substring/

题目详述

给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串。

示例:

1
2
输入: S = "ADOBECODEBANC", T = "ABC"
输出: "BANC"

说明:

  • 如果 S 中不存这样的子串,则返回空字符串 ""。
  • 如果 S 中存在这样的子串,我们保证它是唯一的答案。
阅读全文 »

LeetCode567-字符串的排列

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

题目链接

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

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

题目详述

给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。

换句话说,第一个字符串的排列之一是第二个字符串的子串。

示例1:

1
2
3
输入: s1 = "ab" s2 = "eidbaooo"
输出: True
解释: s2 包含 s1 的排列之一 ("ba").

示例2:

1
2
输入: s1= "ab" s2 = "eidboaoo"
输出: False

注意:

  1. 输入的字符串只包含小写字母
  2. 两个字符串的长度都在 [1, 10,000] 之间
阅读全文 »

LeetCode438-找到字符串中所有字母异位词

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

题目链接

英文链接:https://leetcode.com/problems/find-all-anagrams-in-a-string/

中文链接:https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/

题目详述

给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。

字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。

说明:

  • 字母异位词指字母相同,但排列不同的字符串。
  • 不考虑答案输出的顺序。

示例 1:

1
2
3
4
5
6
7
8
9
输入:
s: "cbaebabacd" p: "abc"

输出:
[0, 6]

解释:
起始索引等于 0 的子串是 "cba", 它是 "abc" 的字母异位词。
起始索引等于 6 的子串是 "bac", 它是 "abc" 的字母异位词。

示例 2:

1
2
3
4
5
6
7
8
9
10
输入:
s: "abab" p: "ab"

输出:
[0, 1, 2]

解释:
起始索引等于 0 的子串是 "ab", 它是 "ab" 的字母异位词。
起始索引等于 1 的子串是 "ba", 它是 "ab" 的字母异位词。
起始索引等于 2 的子串是 "ab", 它是 "ab" 的字母异位词。
阅读全文 »

LeetCode209-长度最小的子数组

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

题目链接

英文链接:https://leetcode.com/problems/minimum-size-subarray-sum/

中文链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/

题目详述

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。

示例:

1
2
3
输入: s = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。

进阶:

如果你已经完成了O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。

阅读全文 »

LeetCode80-删除排序数组中的重复项II

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

题目链接

英文链接:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/

中文链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/

题目详述

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

1
2
3
4
5
给定 nums = [1,1,1,2,2,3],

函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。

你不需要考虑数组中超出新长度后面的元素。

示例 2:

1
2
3
4
5
给定 nums = [0,0,1,1,1,1,2,3,3],

函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

1
2
3
4
5
6
7
8
// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}
阅读全文 »

LeetCode283-移动零

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

题目链接

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

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

题目详述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

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

说明:

  1. 必须在原数组上操作,不能拷贝额外的数组。
  2. 尽量减少操作次数。
阅读全文 »

LeetCode653-两数之和IV-输入BST

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

题目链接

英文链接:https://leetcode.com/problems/two-sum-iv-input-is-a-bst/

中文链接:https://leetcode-cn.com/problems/two-sum-iv-input-is-a-bst/

题目详述

给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。

案例 1:

1
2
3
4
5
6
7
8
9
10
输入: 
5
/ \
3 6
/ \ \
2 4 7

Target = 9

输出: True

案例 2:

1
2
3
4
5
6
7
8
9
10
输入: 
5
/ \
3 6
/ \ \
2 4 7

Target = 28

输出: False
阅读全文 »
1…272829…47
Jerring

Jerring

Talk is cheap, show me the code.

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