摘要:
题目描述 给定一个未排序的数组,判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i 使得 arr[i] nums[i]) { for (int k = j+1; k nums[j]) { return true; } } } } 阅读全文
摘要:
题目描述 给定一个字符串 ,找到 中最长的回文子串。你可以假设 的最大长度为 1000。 示例 1: 示例 2: 思路 本题运用了一些动态规划的思想,关于动态规划,可以看看我之前的一篇博客了解一下。 "LeetCode 探索初级算法 动态规划" 1、首先要找到最简情况。这道题中的最简情况就是一个字母 阅读全文
摘要:
题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 示例 2: 示例 3: 其实这一题的解释在官方题解里面已经写得比较清楚了,现在只是用自己的话二次解释一遍。 思路 方法一:暴力破解 先编写一个函数 ,如果 中的字符都是唯一的,则返回 ;否则返回 。一个比较方便的 阅读全文
摘要:
题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用 原地 算法 。 示例 1: 示例 2: 进阶: 一个直接的解决方案是使用 O( m n ) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使用 O( m + n ) 的额外空间, 阅读全文
摘要:
题目描述 给定一个包含 n 个整数的数组 ,判断 中是否存在三个元素 a,b,c , 使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意: 答案中不可以包含重复的三元组。 思路 1. 先把数组排序 2. 从小到大遍历这个数组,每次取一个元素,将这个元素的相反数设为 3. 在 阅读全文
摘要:
LeetCode探索初级算法 动态规划 今天在LeetCode上做了几个简单的动态规划的题目,也算是对动态规划有个基本的了解了。现在对动态规划这个算法做一个简单的总结。 什么是动态规划 动态规划英文 Dynamic Programming,是求解决策过程最优化的数学方法,后来沿用到了编程领域。 动态 阅读全文
摘要:
题目描述 给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如: 给定二叉树: , 返回其层次遍历结果: 分析思路 常规思维法 我们理一遍题意:给定一棵二叉树,把这棵二叉树 一层一层 地访问一遍,并且存储在一个二维数组里面。 这里面的难点就是怎么做到每次取一层的元素 阅读全文
摘要:
题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 示例 2: 分析 这一题乍一看,直觉告诉我就是要用递归的方法,一 阅读全文
摘要:
题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。 示例 1: 示例 2: 分析 现在的问题是我们需要对哪些元素进行操作。因为题目要求使用 原地 算法,这 阅读全文
摘要:
题目描述 判断一个 9x9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 1. 数字 在每一行只能出现一次。 2. 数字 在每一列只能出现一次。 3. 数字 在每一个以粗实线分隔的 宫内只能出现一次。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 阅读全文