LeetCode
Chandler丶
这个作者很懒,什么都没留下…
展开
-
[LeetCode] 20. 有效的括号
给定一个只包括 ‘(‘,’)’,’{‘,’}’,’[‘,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例 1: 输入: “()” 输出: true示例 2: 输入: “()[]{}” 输出: true示例 3: 输入: “(...原创 2018-07-26 10:19:39 · 172 阅读 · 0 评论 -
[LeetCode] 208. 实现 Trie (前缀树)
实现一个 Trie (前缀树),包含 insert, search, 和 startsWith 这三个操作。示例:Trie trie = new Trie();trie.insert("apple");trie.search("apple"); // 返回 truetrie.search("app"); // 返回 falsetrie.startsWith("app"...原创 2018-08-02 17:23:28 · 485 阅读 · 0 评论 -
[LeetCode] 211. 添加与搜索单词 - 数据结构设计
计一个支持以下两种操作的数据结构:void addWord(word)bool search(word)search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a-z 。 . 可以表示任何一个字母。示例:addWord("bad")addWord("dad")addWord("mad")search("pad") -> falsesea...原创 2018-08-02 17:21:14 · 556 阅读 · 0 评论 -
[LeetCode] 657. 判断路线成圈
初始位置 (0, 0) 处有一个机器人。给出它的一系列动作,判断这个机器人的移动路线是否形成一个圆圈,换言之就是判断它是否会移回到原来的位置。移动顺序由一个字符串表示。每一个动作都是由一个字符来表示的。机器人有效的动作有 R(右),L(左),U(上)和 D(下)。输出应为 true 或 false,表示机器人移动路线是否成圈。示例 1:输入: "UD"输出: true示例 2...原创 2018-08-01 15:17:40 · 140 阅读 · 0 评论 -
[LeetCode] 709. 转换成小写字母
实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: "Hello"输出: "hello"示例 2:输入: "here"输出: "here"示例 3:输入: "LOVELY"输出: &q原创 2018-08-01 15:16:04 · 258 阅读 · 0 评论 -
[LeetCode] 771. 宝石与石头
给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此”a”和”A”是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", S = ..原创 2018-08-01 15:14:20 · 173 阅读 · 0 评论 -
[LeetCode] 350. 两个数组的交集 II
给定两个数组,写一个方法来计算它们的交集。例如: 给定 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].注意:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。我们可以不考虑输出结果的顺序。跟进:如果给定的数组已经排好序呢?你将如何优化你的算法?如果 nums1 的大小比 nums2 小很多,哪种方法更...原创 2018-07-30 16:40:25 · 158 阅读 · 0 评论 -
[LeetCode] 349. 两个数组的交集
给定两个数组,写一个函数来计算它们的交集。例子:给定 num1= [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].提示:每个在结果中的元素必定是唯一的。我们可以不考虑输出结果的顺序。尝试了下用2种方法来实现,第二种因为用了二分查找,所以效率会高很多。public class Ex349 { /** * 时间复杂度为O(n)...原创 2018-07-30 16:36:29 · 275 阅读 · 0 评论 -
[LeetCode] 225. 用队列实现栈
使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空 注意:你只能使用队列的基本操作– 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者 deq...原创 2018-07-26 13:42:51 · 843 阅读 · 0 评论 -
[LeetCode] 232. 用栈实现队列
使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1queue.p...原创 2018-07-26 13:26:54 · 304 阅读 · 0 评论 -
[LeetCode] 682. 棒球比赛
你现在是棒球比赛记录员。 给定一个字符串列表,每个字符串可以是以下四种类型之一: 1.整数(一轮的得分):直接表示您在本轮中获得的积分数。 2. “+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。 3. “D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。 4. “C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,...原创 2018-07-26 13:23:17 · 357 阅读 · 0 评论 -
[LeetCode] 496. 下一个更大元素
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2]...原创 2018-07-26 13:20:10 · 236 阅读 · 0 评论 -
[LeetCode] 677. 键值映射
实现一个 MapSum 类里的两个方法,insert 和 sum。对于方法 insert,你将得到一对(字符串,整数)的键值对。字符串表示键,整数表示值。如果键已经存在,那么原来的键值对将被替代成新的键值对。对于方法 sum,你将得到一个表示前缀的字符串,你需要返回所有以该前缀开头的键的值的总和。示例 1:输入: insert("apple", 3), 输出: Null输入:...原创 2018-08-02 17:49:01 · 391 阅读 · 0 评论