Leetcode
MakaloLi
这个作者很懒,什么都没留下…
展开
-
【Leetcode】5.最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”算法设计从长度最长的子串开始逐个遍历该字符串子串,返回找到的第一个回文串。判断回文串:两个指针i和j,从字符串的中间开始,i向位置0移动,j向末尾...原创 2019-01-31 15:08:58 · 129 阅读 · 0 评论 -
【Leetcode】31. 下一个排列
题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1算法设计以i=len-1为起点从数组末尾开始向...原创 2019-02-08 15:18:34 · 75 阅读 · 0 评论 -
【Leetcode】3. 无重复字符的最长子串[未解出]
题目描述给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “w...原创 2019-01-30 22:10:38 · 87 阅读 · 0 评论 -
【Leetcode】33. 搜索旋转排序数组
题目描述假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2],...原创 2019-02-11 15:01:35 · 116 阅读 · 0 评论 -
【Leetcode】34. 在排序数组中查找元素的第一个和最后一个位置[需优化]
题目描述给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10],...原创 2019-02-11 16:10:03 · 131 阅读 · 0 评论 -
【Leetcode】36. 有效的数独
题目描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,...原创 2019-02-11 16:54:21 · 160 阅读 · 0 评论 -
【Leetcode】39. 组合总和
题目描述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解集为:...原创 2019-02-12 16:36:12 · 114 阅读 · 0 评论 -
【Leetcode】40. 组合总和 II
题目描述给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:...原创 2019-02-12 16:52:12 · 108 阅读 · 0 评论 -
【Leetcode】43. 字符串相乘
题目描述给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只...原创 2019-02-12 18:12:29 · 200 阅读 · 0 评论 -
【Leetcode】24. 两两交换链表中的节点
题目描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.算法设计用三个指针,两个指向需要交换的结点,一个指向要交换的结点的前驱结点。C++代码/** * Definition for singly-lin...原创 2019-02-08 12:02:28 · 72 阅读 · 0 评论 -
【Leetcode】6.Z字形变换
题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函...原创 2019-01-31 15:56:26 · 88 阅读 · 0 评论 -
【Leetcode】11. 盛最多水的容器
题目描述给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49算法设计从最左和最右的...原创 2019-02-01 14:57:23 · 92 阅读 · 0 评论 -
【Leetcode】12. 整数转罗马数字
题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数...原创 2019-02-01 15:30:15 · 106 阅读 · 0 评论 -
【Leetcode】15. 三数之和[需优化]
题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]算法设计这题基本思路很暴力...原创 2019-02-01 17:27:38 · 164 阅读 · 0 评论 -
【Leetcode】16. 最接近的三数之和
题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).算法设计用三个指针i,j,k以i=...原创 2019-02-02 01:20:26 · 81 阅读 · 0 评论 -
【Leetcode】19. 删除链表的倒数第N个节点
题目描述给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?算法设计题目中n保证是有效的,就不需要考虑n大于链表长度的情况,这样就可原创 2019-02-07 23:27:11 · 81 阅读 · 0 评论 -
【Leetcode】542.01矩阵
题目描述给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。两个相邻元素间的距离为 1 。样例示例 1:输入:0 0 00 1 00 0 0输出:0 0 00 1 00 0 0示例 2:输入:0 0 00 1 01 1 1输出:0 0 00 1 01 2 1注意给定矩阵的元素个数不超过 10000。给定矩阵中至少有一个元素是 0。...转载 2019-01-29 22:29:54 · 331 阅读 · 0 评论 -
【Leetcode】2.两数相加
题目描述给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...原创 2019-01-30 00:07:51 · 82 阅读 · 0 评论 -
【Leetcode】46. 全排列
题目描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]算法设计深搜。通过递归实现找到以每个数字开头的排列,用一个tag数组作为使用位来标记元素是否已经放入当前排列中。C++代码class Solution {public: ...原创 2019-02-13 21:29:43 · 131 阅读 · 0 评论