03 2019 档案

摘要:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说 阅读全文
posted @ 2019-03-27 23:12 maitianpt 阅读(260) 评论(0) 推荐(0)
摘要:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。 示例:输入: [0,1,0, 阅读全文
posted @ 2019-03-27 14:02 maitianpt 阅读(290) 评论(0) 推荐(0)
摘要:给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1 说明:你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。 方法1:这个的话时空复杂度 阅读全文
posted @ 2019-03-27 13:49 maitianpt 阅读(151) 评论(0) 推荐(0)
摘要:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。 示例 1:输入: candidate 阅读全文
posted @ 2019-03-27 11:53 maitianpt 阅读(212) 评论(0) 推荐(0)
摘要:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。 示例 1:输入: can 阅读全文
posted @ 2019-03-26 18:11 maitianpt 阅读(272) 评论(0) 推荐(0)
摘要:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 阅读全文
posted @ 2019-03-26 18:10 maitianpt 阅读(319) 评论(0) 推荐(0)
摘要:编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 '.' 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1 阅读全文
posted @ 2019-03-26 16:47 maitianpt 阅读(255) 评论(0) 推荐(0)
摘要:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 阅读全文
posted @ 2019-03-26 15:31 maitianpt 阅读(261) 评论(0) 推荐(0)
摘要:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出 阅读全文
posted @ 2019-03-25 21:40 maitianpt 阅读(154) 评论(0) 推荐(0)
摘要:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。 示例 1:输入: nums = [5,7,7,8,8,10], target = 8输 阅读全文
posted @ 2019-03-25 21:16 maitianpt 阅读(341) 评论(0) 推荐(0)
摘要:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log 阅读全文
posted @ 2019-03-25 15:57 maitianpt 阅读(262) 评论(0) 推荐(0)
摘要:给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。 示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()" 阅读全文
posted @ 2019-03-20 11:35 maitianpt 阅读(141) 评论(0) 推荐(0)
摘要:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2, 阅读全文
posted @ 2019-03-20 11:33 maitianpt 阅读(203) 评论(0) 推荐(0)
摘要:给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。 示例 1:输入: s = "barfoothefoobarman 阅读全文
posted @ 2019-03-20 02:30 maitianpt 阅读(714) 评论(0) 推荐(0)
摘要:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend 阅读全文
posted @ 2019-03-20 01:22 maitianpt 阅读(187) 评论(0) 推荐(0)
摘要:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1:输入: haystack = "hello", needle = "ll"输出: 阅读全文
posted @ 2019-03-19 22:24 maitianpt 阅读(266) 评论(0) 推荐(0)
摘要:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。 示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend 阅读全文
posted @ 2019-03-19 22:24 maitianpt 阅读(111) 评论(0) 推荐(0)
摘要:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1:给定 nums = [3,2 阅读全文
posted @ 2019-03-19 22:19 maitianpt 阅读(222) 评论(0) 推荐(0)
摘要:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个 阅读全文
posted @ 2019-03-19 21:53 maitianpt 阅读(178) 评论(0) 推荐(0)
摘要:给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。 示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时, 阅读全文
posted @ 2019-03-19 19:52 maitianpt 阅读(420) 评论(0) 推荐(0)
摘要:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例:给定 1->2->3->4, 你应该返回 2->1->4->3. 阅读全文
posted @ 2019-03-19 10:13 maitianpt 阅读(410) 评论(0) 推荐(0)
摘要:合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6 阅读全文
posted @ 2019-03-18 21:53 maitianpt 阅读(323) 评论(0) 推荐(0)
摘要:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"] 思路: 递归: 阅读全文
posted @ 2019-03-14 12:21 maitianpt 阅读(150) 评论(0) 推荐(0)
摘要:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4 思路:始终让l1是头节点小的那一个,然后拿l2的节点值依次与l1比较并插入l1中。最后返回l1。 阅读全文
posted @ 2019-03-14 08:25 maitianpt 阅读(420) 评论(0) 推荐(0)
摘要:#include #include #include using namespace std; bool isValid(string s) { stack a; int len=s.size(); if(len==1) return 0; if(len==0) return 1; for(int i=0;i<len;i++) { ... 阅读全文
posted @ 2019-03-13 18:37 maitianpt 阅读(160) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。 思路: 1.先让end指针向前走(n-1),这样的话就可以让end和fir 阅读全文
posted @ 2019-03-13 18:36 maitianpt 阅读(257) 评论(0) 推荐(0)
摘要:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。 示例:给定数组 nums = [1, 阅读全文
posted @ 2019-03-12 16:55 maitianpt 阅读(352) 评论(0) 推荐(1)
摘要:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字 阅读全文
posted @ 2019-03-12 16:53 maitianpt 阅读(405) 评论(0) 推荐(0)
摘要:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三 阅读全文
posted @ 2019-03-12 14:55 maitianpt 阅读(267) 评论(0) 推荐(0)
摘要:给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合 阅读全文
posted @ 2019-03-05 21:00 maitianpt 阅读(267) 评论(0) 推荐(0)
摘要:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"]输出: "fl" 示例 2: 输入: ["dog","racecar","car"]输出: "" 解释: 输入不存在公共前缀。说明: 所有 阅读全文
posted @ 2019-03-05 15:48 maitianpt 阅读(229) 评论(0) 推荐(0)
摘要:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常 阅读全文
posted @ 2019-03-02 14:29 maitianpt 阅读(276) 评论(0) 推荐(0)