04 2020 档案
摘要:题目描述 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。 示例: 题目链接: https://leetcode cn.com/problems/majority element ii/ 做这题之前要先做
阅读全文
摘要:题目描述 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例: 题目链接: https://leetcode cn.com/problems/majority element/ 思
阅读全文
摘要:给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。 示例: 题目链接: https://leetcode cn.com/problems/palindromic substrings/ 思路1 暴力法来做。
阅读全文
摘要:题目描述 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例: 题目链接: https://leetcode cn.com/problems/rotate image
阅读全文
摘要:题目描述 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 1,则在该链表中没有环。 示例 题目链接: https://leetcode cn.com/problems/linked list c
阅读全文
摘要:题目描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则
阅读全文
摘要:题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例: 题目链接 :https://leetcode cn.com/problems/single number
阅读全文
摘要:题目描述 给你一个 山脉数组 mountainArr,请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。 如果不存在这样的下标 index,就请返回 1。 何为山脉数组?如果数组 A 是一个山脉数组的话,那它满足如下条件: 首先,A.l
阅读全文
摘要:题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 注意数组中可能存在重复的元素。 示例: 输入: [1,3,5] 输出: 1 输入: [2,2,2,0,1] 输出:
阅读全文
摘要:题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 请找出其中最小的元素。 你可以假设数组中不存在重复元素。 示例: 题目链接: https://leetcode cn.com/proble
阅读全文
摘要:题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。 编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。 示例: 题目链接: https://leet
阅读全文
摘要:题目描述 假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度
阅读全文
摘要:题目描述 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 1。 示例: 注意: 你可以假设 nums 中的所有元素是不重复的。 n 将在 [1, 10000]之间。 nums 的每个元
阅读全文
摘要:题目描述 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例: 题目描述: https://leetcode cn.com/problems/shu zu zhong shu zi chu xia
阅读全文
摘要:题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 注意: 假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 示例: 输入: 123 输出: 321 输入: -123
阅读全文
摘要:什么是回溯 在求解诸如八皇后、全排列等问题时,我们通常使用深度优先搜索dfs在解空间内搜索满足条件的解,dfs的搜索过程可以看做是在一棵搜索树上遍历的过程。例如,求数字[1,2,3]的全排列的搜索树如下: 当我们搜索到树的深层向浅层返回的过程就是回溯。 (我认为可以这样理解:从上往下搜索是递归,从下
阅读全文
摘要:题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后
阅读全文
摘要:题目描述 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 注意: S 的长度不超过12。 S 仅由数字和字母组成。 题目链接: https://leetcode cn.com/problems/letter case per
阅读全文
摘要:题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例: 输入: c
阅读全文
摘要:题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例:
阅读全文
摘要:题目描述 给定一个仅包含数字 2 9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 题目链接: https://leetcode cn.com/problems/letter combinations of a phone n
阅读全文
摘要:题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 题目描述: https://leetcode-cn.com/problems/permutations-ii/ 做这题之前可以先做一下
阅读全文
摘要:题目描述 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 题目链接: https://leetcode cn.com/problems/permutations/ 思路 使用回溯来做。回溯也是在模拟人做排列的方法。例如做[1,2,3]的排列: 1. 第一步有3个数[1,2,3]可以
阅读全文
摘要:题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 题目链接: https://leetcode cn.com/problems/subsets ii/ 做这题之前可以先做一下 "子集" . 思路 和 "子集" 这题基本
阅读全文
摘要:题目描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 题目链接: https://leetcode cn.com/problems/subsets/ 思路1 使用回溯。代码如下: 时间复杂度:O(n 2^n) 空间复杂度:O(
阅读全文
摘要:题目描述 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例: 输入: 121 输出: true 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 输入: 10 输出: fa
阅读全文
摘要:题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树
阅读全文
摘要:这篇文章介绍了二叉树的3种遍历:前序遍历、中序遍历和后序遍历,以及这3种遍历的2种实现:递归实现和迭代实现。代码使用c++编写。 3种遍历 前序遍历、中序遍历以及后序遍历这3种遍历的区别在于访问节点的顺序不同。具体为: 前序遍历:根节点->左子节点->右子节点; 中序遍历:左子节点->根节点->右子
阅读全文
摘要:题目描述 给定一个 N 叉树,返回其节点值的前序遍历。 示例: 例如,给定一个 3叉树 : 返回其前序遍历: [1,3,5,6,2,4]。 题目地址: https://leetcode cn.com/problems/n ary tree preorder traversal/ 思路1 使用类似于二
阅读全文
摘要:题目描述 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 题目链接: https://leetcode-cn.com/problems/binary-tree-postorder-traversal/ 思路1 使用递归。代
阅读全文
摘要:题目描述 给定一个二叉树,返回它的 前序 遍历。 示例: 题目链接: https://leetcode cn.com/problems/binary tree preorder traversal/ 思路1 使用递归。代码如下: 时间复杂度:O(n) 空间复杂度:O(h) 思路2 使用迭代,类似于
阅读全文
摘要:题目描述 给定一个二叉树,返回它的中序 遍历。 示例: 题目链接: https://leetcode cn.com/problems/binary tree inorder traversal/ 思路1 使用递归。代码如下: 时间复杂度:O(n) 空间复杂度:O(h) 思路2 使用迭代。代码如下:
阅读全文
摘要:题目描述 给定一个二叉树,检查它是否是镜像对称的。 示例: 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 题目链接: ht
阅读全文
摘要:题目描述 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 示例: 题目链接: https://leetcode cn.com/problems/b
阅读全文
摘要:题目描述 给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例: 时间复杂度:O(n) 每个节点都遍历一遍,n为节点个数。 空间复杂度:O(n) 队列长度最多为n。 思路2 使用dfs。先走根结点,然后走右子树,最后走左子树,这样对于每一层,最右边的节点是
阅读全文
摘要:题目描述 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 题目链
阅读全文
摘要:题目描述 给定一个无序的整数数组,找到其中最长上升子序列的长度。 示例: 输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。 题目链接: https://leetcode-cn.com/problems/longest
阅读全文
摘要:题目描述 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。 示例: 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 题目链接: https://lee
阅读全文
摘要:题目描述 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 示例: 题目链接: https://leetcode cn.com/prob
阅读全文
摘要:题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 注意: 给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。 输入的数组中任意三个数的
阅读全文
摘要:题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字)。 示例: 思路 因为是求乘积,而且数组中正负数都有,所以会出现最大值乘以负数变成最小值以及最小值乘以负数变成最大值的情况,所以我们要维护两个dp数组:dpMax和dpMin,dpMax[i]为以
阅读全文
摘要:题目描述 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,
阅读全文
摘要:题目描述 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在
阅读全文
摘要:题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例
阅读全文
摘要:题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例: 题目链接: https://leetcode cn.com/problems/climbing stairs/ 思路 令f(n)表
阅读全文
摘要:题目描述 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最
阅读全文
摘要:题目描述 给定一个二叉树,计算整个树的坡度。 一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。 整个树的坡度就是其所有节点的坡度之和。 示例: 题目链接: https://leetcode cn.com/problems/binary tree t
阅读全文
摘要:题目描述 您需要在二叉树的每一行中找到最大的值。 示例: 题目链接: https://leetcode cn.com/problems/find largest value in each tree row/ 思路 这题就是二叉树的 "层次遍历" ,在遍历每层时记录最大值即可。代码如下: 时间复杂度
阅读全文
摘要:题目描述 给定一个二叉树,在树的最后一行找到最左边的值。 示例: 题目链接: https://leetcode cn.com/problems/find bottom left tree value/ 思路 注意,题目是让找 最后一层 的 最左边 的节点值,不是找树最左边的节点值。使用递归来做,记录
阅读全文
摘要:## 题目描述 给出一个区间的集合,请合并所有重叠的区间。 **示例:** ```html 输入: [[1,3],[2,6],[8,10],[15,18]] 输出: [[1,6],[8,10],[15,18]] 解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 输入: [
阅读全文
摘要:题目描述 给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例: 题目链接: https://leetcode cn.com/problems/01 matrix/ 思路1 bfs可以找到从源点到终点的最短路径,所以对于一个位置,如果当前位置是
阅读全文
摘要:题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例: 给定二叉树 1 / \ 2 3 / \ 4 5 返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。 注意:两结点之间的路径长度
阅读全文
摘要:题目描述 给定一个二叉树,它的每个结点都存放着一个整数值。 找出路径和等于给定数值的路径总数。 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。 二叉树不超过1000个节点,且节点数值范围是 [ 1000000,1000000] 的整数。 示例: 题
阅读全文
摘要:题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 题目链接 :https://leetcode cn.com/problems/path sum ii/ 做这题之前可以先做下 "路径总和" , "题解" 。
阅读全文
摘要:题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1 返回 true
阅读全文
摘要:题目描述 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 示例: 题目链接: https://leetco
阅读全文
摘要:题目描述 计算给定二叉树的所有左叶子之和。 示例: 3 / \ 9 20 / \ 15 7 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 题目链接: https://leetcode-cn.com/problems/sum-of-left-leaves/ 思路 一棵树的所有左叶
阅读全文
摘要:题目描述 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 输入: "cbbd" 输出: "bb" 题目链接: https://leetcode-cn.com/prob
阅读全文
摘要:题目描述 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组
阅读全文
摘要:题目描述 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例: 输入: num1 = "2", num2 = "3" 输出: "6" 输入: num1 = "123", num2 = "456" 输出: "56088
阅读全文
摘要:题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 输入: ["flower","flow","flight"] 输出: "fl" 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 题目链接: h
阅读全文
摘要:题目描述 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0 9. num1 和num2 都不包含任何前导零。 你不能使用任何內建 BigInteger 库, 也不能直接将输入的字符串转
阅读全文
摘要:题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例: 给你这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->
阅读全文
摘要:题目描述 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 题目链接: https://leetcode cn.com/problems/generate parentheses/ 思路 使用递归+回溯来做。递归中先放左括号'(',当右括号')'
阅读全文
摘要:题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例: 输入: "()" 输出: true 输入: "(]" 输出: f
阅读全文
摘要:题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例: 题目链接: https://leetcode cn.com/problems/longest substring without repeating characters/ 思路1 使用类似于求 "最大自序和" 的方
阅读全文
摘要:题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例
阅读全文
摘要:题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例
阅读全文
摘要:题目描述 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 题目链接: https://leetcode-cn.com/problems/swap-no
阅读全文
摘要:题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例: 输入: head = 1->4->3->2->5->2, x = 3 输出: 1->2->2->4->3->5 题目链接: http
阅读全文
摘要:题目描述 给定两个非空链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储单个数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 示例: 输入: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) 输出: 7 ->
阅读全文
摘要:题目描述 反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。 说明: 1 ≤ m ≤ n ≤ 链表长度。 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL **题目链接:**https://leetcode-cn
阅读全文
摘要:题目描述 请判断一个链表是否为回文链表。 示例: 题目链接: https://leetcode cn.com/problems/palindrome linked list/ 思路1 回文链表就是正向遍历序列和反向遍历序列一样的链表,所以可以遍历链表一边,用队列记录链表的正向遍历序列,用栈记录反向遍
阅读全文
摘要:题目描述 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL **题目链接:**https://leetcode-cn.com/problems/reverse-linked-list/ 思路1 使用迭代。要记录3个指针:当前的节
阅读全文
摘要:题目描述 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 题目链接: htt
阅读全文
摘要:## 题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 **示例:** ```html 输入: 1->2->3->3->4->4->5 输出: 1->2->5 ``` **题目链接**:https://leetcode-cn.com/problems/
阅读全文
摘要:题目描述 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例: 输入: 1->1->2->3->3 输出: 1->2->3 **题目链接:**https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/ 思
阅读全文
摘要:题目描述 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 示例: 题目链接: https://leetcode cn.com/problems/3sum clo
阅读全文
摘要:题目描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少
阅读全文
摘要:题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 题目链接: https://leetcode-
阅读全文
摘要:题目描述 给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。 示例: 给定数组 num
阅读全文
摘要:题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要
阅读全文
摘要:题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例: 思路 使用数组来模拟人做加减乘除的方法。代码如下: 时间复杂度: O(n) 最好情况下为O(1)(
阅读全文
摘要:题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例: 题目链接 :https://leetcode cn.com/problems/search insert position/ 思路
阅读全文
摘要:题目描述 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 示例: 题目链接: https://leetcode cn.com/problems/r
阅读全文
摘要:题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例: 题目链接: http
阅读全文
摘要:题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因
阅读全文
摘要:题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路 使用两个栈s1,s2:s1用来存储奇数层的节点,s2用来存储偶数层的节点(层数从1开始); 先将根结点压入s1; 当前层是奇数层时,弹出s
阅读全文

浙公网安备 33010602011771号