随笔分类 -  LeetCode题解

摘要:给定一个二维的矩阵,包含 'X' 和 'O'(字母 O)。 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。 示例: X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为: X X X XX X X XX X X XX O X X解释: 被 阅读全文
posted @ 2019-09-10 10:53 GoAheadAQU 阅读(166) 评论(0) 推荐(0)
摘要:假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例 1: 输入: [3,4,5,1,2]输出: 1示例 2: 输入: [4,5,6,7, 阅读全文
posted @ 2019-08-28 09:52 GoAheadAQU 阅读(113) 评论(0) 推荐(0)
摘要:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums 阅读全文
posted @ 2019-08-28 09:34 GoAheadAQU 阅读(200) 评论(0) 推荐(0)
摘要:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1: 输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]] 阅读全文
posted @ 2019-08-27 23:08 GoAheadAQU 阅读(194) 评论(0) 推荐(0)
摘要:给定 pushed 和 popped 两个序列,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我 阅读全文
posted @ 2019-08-27 22:59 GoAheadAQU 阅读(150) 评论(0) 推荐(0)
摘要:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 阅读全文
posted @ 2019-08-27 22:48 GoAheadAQU 阅读(157) 评论(0) 推荐(0)
摘要:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100.num1 和num2 都只包含数字 0-9.num1 和num2 都不包含任何前导零。你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转换为整数形式。 阅读全文
posted @ 2019-08-27 20:40 GoAheadAQU 阅读(109) 评论(0) 推荐(0)
摘要:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意:不能使用代码库中的排序函数来解决这道题。 思路: 0,1,2 排序。一次遍历,如果是0,则移动 阅读全文
posted @ 2019-08-16 15:57 GoAheadAQU 阅读(148) 评论(0) 推荐(0)
摘要:给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 图中垂直线代表输入数组 [1,8,6,2,5,4 阅读全文
posted @ 2019-08-16 09:57 GoAheadAQU 阅读(116) 评论(0) 推荐(0)
摘要:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 阅读全文
posted @ 2019-08-16 09:50 GoAheadAQU 阅读(85) 评论(0) 推荐(0)
摘要:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 思路: 这道题最主要的就是注意反转之后会溢出,所以在反转期间要注意每次操作是否造成溢出 复杂度分析 时间复杂度:O(log(x)),x 中大约有 log10(x)位数字 空间复杂度:O(1)。 作者:LeetCode链接:ht 阅读全文
posted @ 2019-08-16 09:43 GoAheadAQU 阅读(113) 评论(0) 推荐(0)
摘要:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 思路: 通过使用 HashSet 作为滑动窗口,我们可以用 O(1) 的时间来完成对字符是否在当前的子字符串中的检查。 滑动窗口是数组/字符串问题中常用的抽象概念。 窗口通常是在数组/字符串中由开始和结束索引定义的一系列元素的集合,即 阅读全文
posted @ 2019-08-16 09:34 GoAheadAQU 阅读(114) 评论(0) 推荐(0)
摘要:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 思路: 将当前结点初始化为返回列表的 阅读全文
posted @ 2019-08-16 09:25 GoAheadAQU 阅读(114) 评论(0) 推荐(0)
摘要:给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 方法一:排序 思路: 创建一个新的数组,它每个元素是给定数组对应位置元素的平方,然后排序这个数组 时间复杂度为O(NlogN); 空间复杂度为O(N); 方法二:双指针 思路: 因为数组 A 已经排好序 阅读全文
posted @ 2019-07-18 08:28 GoAheadAQU 阅读(168) 评论(0) 推荐(0)
摘要:题目描述: 方法一:暴力法 暴力法很简单,遍历每个元素 x,并查找是否存在一个值与 target - x 相等的目标元素。 时间复杂度为O(n2); 空间复杂度为O(1); 方法二:两遍哈希 以空间换速度,将查找时间从 O(n) 降低到 O(1)。我用“近似”来描述,是因为一旦出现冲突,查找用时可能 阅读全文
posted @ 2019-07-16 11:56 GoAheadAQU 阅读(180) 评论(0) 推荐(0)
摘要:题目描述: 统计所有小于非负整数 n 的质数的数量。 解题思路:厄拉多塞筛法(素数筛选法) 阅读全文
posted @ 2019-07-16 11:46 GoAheadAQU 阅读(193) 评论(0) 推荐(0)