LeetCode
LeetCode 刷题集,多种语言版本!
nomasp
Android 工程师
展开
-
LeetCode 28 Implement strStr()(实现strStr()函数)
翻译实现strStr()函数。返回针(needle)在草垛/针垛(haystack)上第一次出现的索引, 如果不存在其中则返回-1。其实也就是说字符串str2在字符串str1中第一次出现的索引而已。原文Implement strStr().Returns the index of the first occurrence of needle in haystack, or -1 if needle原创 2015-11-13 23:46:13 · 4492 阅读 · 0 评论 -
LeetCode 26 Remove Duplicates from Sorted Array(从已排序数组中移除重复元素)
翻译给定一个已排序的数组,删除重复的元素,这样每个元素只出现一次,并且返回新的数组长度。不允许为另一个数组使用额外的空间,你必须就地以常量空间执行这个操作。例如,给定输入数组为 [1,1,2]你的函数应该返回length = 2, 其前两个元素分别是1和2。它不关心你离开后的新长度。原文Given a sorted array, remove the duplicates in place suc原创 2015-11-13 22:41:10 · 2984 阅读 · 0 评论 -
LeetCode 25 Reverse Nodes in k-Group(在K组链表中反转结点)(Linked List)(*)
原文给定一个链表,在一定时间内反转这个链表的结点,并返回修改后的链表。如果结点数不是K的倍数,那么剩余的结点就保持原样。你不应该在结点上修改它的值,只有结点自身可以修改。只允许使用常量空间。例如给定链表: 1->2->3->4->5对于 k = 2,你应该返回: 2->1->4->3->5对于 k = 3,你应该返回: 3->2->1->4->5翻译Given a linked list, reve原创 2015-11-13 11:11:55 · 3229 阅读 · 0 评论 -
LeetCode 24 Swap Nodes in Pairs(交换序列中的结点)(Linked List)
翻译给定一个链表,调换每两个相邻节点,并返回其头部。例如,给定 1->2->3->4, 你应该返回的链表是 2->1->4->3。你的算法必须使用唯一不变的空间。你也不能修改列表中的值,只有节点本身是可以改变的。原文Give a linked list, swap every two adjacent nodes and return its head.For example, Given 1-原创 2015-11-12 18:43:57 · 6187 阅读 · 3 评论 -
LeetCode 23 Merge k Sorted Lists(合并K个已排序链表)
翻译合并K个已排序的链表,并且将其排序并返回。分析和描述其复杂性。原文Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.代码我们采用分治的方法来解决这个问题,其有K个链表,不断将其划分(partition),再将其归并(merge)。划分的部分并不难,将原创 2015-11-12 17:30:10 · 4579 阅读 · 2 评论 -
LeetCode 22 Generate Parentheses(生成括号)
翻译给定一个括号序列,写一个函数用于生成正确形式的括号组合。例如,给定n = 3,一个解决方案集是:"((()))", "(()())", "(())()", "()(())", "()()()"原文Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthe原创 2015-11-10 22:41:54 · 5874 阅读 · 1 评论 -
LeetCode 21 Merge Two Sorted Lists(合并两个已排序的链表)(Linked List)
翻译合并两个排好序的链表,并返回这个新链表。新链表应该由这两个链表的头部拼接而成。原文Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.代码/** * Defini原创 2015-11-10 20:38:04 · 11569 阅读 · 0 评论 -
LeetCode 20 Valid Parentheses(有效的括号)
翻译给定一个只包含'(', ')', '{', '}', '[' 和']'的字符串,判断这个输入的字符串是否是有效的。括号必须在正确的形式下闭合,"()" 和"()[]{}" 是有效的,但是 "(]" 和"([)]" 则不是。原文Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determ原创 2015-11-10 20:22:23 · 3955 阅读 · 0 评论 -
LeetCode 19 Remove Nth Node From End of List(从列表尾部删除第N个结点)(*)
翻译给定一个链表,移除从尾部起的第n个结点,并且返回它的头结点。例如,给定链表:1->2->3->4->5,n = 2。在移除尾部起第二个结点后,链表将变成:1->2->3->5。备注:给定的n是有效的,代码尽量一次通过。原文Given a linked list, remove the nth node from the end of list and return its head.For ex原创 2015-10-21 15:32:44 · 2538 阅读 · 0 评论 -
LeetCode 18 4Sum(4个数的和)
翻译给定一个有n个数字的数组S,在S中是否存在元素a,b,c和d的和恰好满足a + b + c + d = target。找出数组中所有的不想等的这四个元素,其和等于target。备注:在(a,b,c,d)中的元素必须从小到大排列。(a ≤ b ≤ c ≤ d)其结果必须不能够重复。例如,给定S = {1 0 -1 0 -2 2},target = 0。一个结果集为:(-1, 0, 0, 1原创 2015-10-18 12:11:53 · 3664 阅读 · 1 评论 -
LeetCode 17 Letter Combinations of a Phone Number(电话号码的字母组合)
翻译给定一个数字字符串,返回所有这些数字可以表示的字母组合。一个数字到字母的映射(就像电话按钮)如下图所示。输入:数字字符串“23”输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]备注:尽管以上答案是无序的,如果你想的话你的答案可以是有序的。原图原文Given a digit string, return all possible原创 2015-10-18 10:59:08 · 4881 阅读 · 0 评论 -
LeetCode 16 3Sum Closest(最接近的3个数的和)
翻译给定一个有n个整数的数组S,找出S中3个数,使其和等于一个给定的数,target。返回这3个数的和,你可以假定每个输入都有且只有一个结果。例如,给定S = {-1 2 1 -4},和target = 1。那么最接近target的和是2。(-1 + 2 + 1 = 2)。原文Given an array S of n integers, find three integers in S such原创 2015-10-18 09:59:08 · 4562 阅读 · 0 评论 -
LeetCode 15 3Sum(3个数的和)
翻译给定一个有n个整数的数组S,是否存在三个元素a,b,c使得a+b+c=0?找出该数组中所有不重复的3个数,它们的和为0。备注:这三个元素必须是从小到大进行排序。结果中不能有重复的3个数。例如,给定数组S={-1 0 1 2 -1 4},一个结果集为:(-1, 0, 1)(-1, -1, 2)原文Given an array S of n integers, are there ele原创 2015-10-17 23:19:02 · 4841 阅读 · 1 评论 -
LeetCode 14 Longest Common Prefix(最长公共前缀)(String)
翻译写一个函数(或方法)来寻找一个字符串数组中的最长公共前缀。原文Write a function to find the longest common prefix string amongst an array of strings.释义"abcdefg""abcdefghijk""abcdfghijk""abcef"上面的字符串数组的最长公共前缀就是"abc"。思考如下图所示,第一步就是原创 2015-10-16 22:05:46 · 11537 阅读 · 0 评论 -
LeetCode 13 Roman to Integer(罗马数到整型数)
翻译给定一个罗马数字,将其转换到整型数值。输入被保证在1到3999之间。原文Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.一开始就没有构思好,虽然按上一题的套路可以走下去,但结果就是像我下面这样……代码凌乱……public class原创 2015-10-15 16:24:24 · 3141 阅读 · 0 评论 -
LeetCode 12 Integer to Roman(整型数到罗马数)
翻译给定一个整型数值,将其转换到罗马数字。输入被保证在1到3999之间。原文Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.我不会告诉你一开始我是用的无数个变量和ifif……后来实在受不了这么多变量就将其写成了枚举,那么接下来就迎刃而解了原创 2015-10-15 14:46:35 · 2869 阅读 · 4 评论 -
LeetCode 11 Container With Most Water(最大水容器)
翻译给定n个非负整数a1,a2,...,an,其中每个代表一个点坐标(i,ai)。n个垂直线段例如线段的两个端点在(i,ai)和(i,0)。找到两个线段,与x轴形成一个容器,使其包含最多的水。备注:你不必倾倒容器。翻译Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate原创 2015-10-12 22:11:52 · 6465 阅读 · 0 评论 -
LeetCode 10 Regular Expression Matching (正则表达式匹配)
翻译实现支持“.”和“*”的正则表达式匹配。“.” 匹配支持单个字符“*” 匹配零个或多个前面的元素匹配应该覆盖到整个输入的字符串(而不是局部的)。该函数的原型应该是:bool isMatch(const char * s, const char * p)示例:isMatch("aa","a") → falseisMatch("aa","aa") → trueisMatch("aaa","aa原创 2015-10-12 12:07:17 · 3672 阅读 · 0 评论 -
LeetCode 9 Palindrome Number (回文数)(Math)
翻译确定一个整数是否是回文数。不能使用额外的空间。一些提示:负数能不能是回文数呢?(比如,-1)如果你想将整数转换成字符串,但要注意限制使用额外的空间。你也可以考虑翻转一个整数。 然而,如果你已经解决了问题“翻转整数(译者注:LeetCode 第七题), 那么你应该知道翻转的整数可能会造成溢出。 你将如何处理这种情况?这是一个解决该问题更通用的方法。原文Determine whether an原创 2015-09-27 21:30:38 · 3586 阅读 · 3 评论 -
LeetCode 8 String to Integer (atoi)(转换到整型)
翻译实现“atoi”将字符串转换成整型数。提示:仔细考虑所有可能的输入。如你想要挑战,请不要参阅下面并问问自己都有哪些可能的输入请看。说明:模糊的指定(没有给定的输入规格)就是为了这个问题。你负责收集所有可能的输入。atoi的要求:函数首先放弃尽可能多的空字符直到找到一个非空白字符。然后从这个字符开始,带上可选的初始加/减字符,其后还可能跟着越多越好的数字,并将它们解释成一个数值。这个字符串可能在这原创 2015-09-25 09:35:06 · 2343 阅读 · 0 评论 -
LeetCode 7 Reverse Integer(翻转整数)
翻译翻转一个整型数例1:x = 123, 返回 321例2:x = -123, 返回 -321原文Reverse digits of an integer.Example1: x = 123, return 321Example2: x = -123, return -321Have you thought about this? (来自LeetCode官网)Here are some good原创 2015-09-23 09:13:52 · 4759 阅读 · 0 评论 -
LeetCode 6 ZigZag Conversion(Z型转换)(String)
翻译字符串“PAYPALISHIRING”通过一个给定的行数写成如下这种Z型模式:P A H NA P L S I I GY I R然后一行一行的读取:“PAHNAPLSIIGYIR”写代码读入一个字符串并通过给定的行数做这个转换:string convert(string text, int nRows);调用convert("PAYPALISHIRING", 3),应该原创 2015-09-21 22:22:29 · 3169 阅读 · 0 评论 -
LeetCode 5 Longest Palindromic Substring(最大回文子字符串)
翻译给定一个字符串S,找出它的最大回文子字符串。你可以假定S的最大长度为1000,并且这里存在唯一一个最大回文子字符串。原文Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists on原创 2015-09-20 13:46:10 · 2862 阅读 · 12 评论 -
LeetCode 4 Median of Two Sorted Arrays
翻译有两个给定的排好序的数组nums1和nums2,其大小分别为m和n。找出这两个已排序数组的中位数。总运行时间的复杂度应该是O(log(m+n))。原文There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The o原创 2015-09-17 16:13:18 · 2641 阅读 · 0 评论 -
LeetCode 3 Longest Substring Without Repeating Characters
翻译 给定一个字符串,找出其没有重复字符的最大子序列的长度。 例如,“abcabcbb”的无重复字符的最大子序列是“abc”,它的长度是3。 “bbbbb”的最大子序列是“b”,它的长度是1。原文Given a string, find the length of the longest substring without repeating characters. For原创 2015-09-16 12:09:35 · 2115 阅读 · 0 评论 -
LeetCode 2 Add Two Numbers
翻译:给你两个表示两个非负数字的链表。数字以相反的顺序存储,其节点包含单个数字。将这两个数字相加并将其作为一个链表返回。输入: (2 -> 4 -> 3) + (5 -> 6 -> 4)输出: 7 -> 0 -> 8原题:You are given two linked lists representing two non-negative numbers. The digits are stor原创 2015-09-14 22:20:37 · 2437 阅读 · 0 评论 -
LeetCode 1 Two Sum
翻译:给定一个整型数组,找出能相加起来等于一个特定目标数字的两个数。函数twoSum返回这两个相加起来等于目标值的数字的索引,且index1必须小于index2。请记住你返回的答案(包括index1和index2)都不是从0开始的。你可以假定每个输入都有且仅有一个解决方案。输入: numbers={2, 7, 11, 15}, target=9输出: index1=1, index2=2原文:G原创 2015-09-11 10:39:06 · 2796 阅读 · 0 评论