随笔分类 -  Data Structures and Algorithms

摘要:673. 最长递增子序列的个数 给定一个未排序的整数数组 nums , 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 阅读全文
posted @ 2022-04-04 15:17 JunanP 阅读(6) 评论(0) 推荐(0) 编辑
摘要:525. 连续数组 给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums = [0,1, 阅读全文
posted @ 2022-04-04 11:15 JunanP 阅读(6) 评论(0) 推荐(0) 编辑
摘要:556. 下一个更大元素 III 给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n 。如果不存在这样的正整数,则返回 -1 。 注意 ,返回的整数应当是一个 32 位整数 ,如果存在满足题意的答案,但不是 32 位整数 ,同样返回 -1 。 阅读全文
posted @ 2022-04-04 10:23 JunanP 阅读(6) 评论(0) 推荐(0) 编辑
摘要:503. 下一个更大元素 II 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜 阅读全文
posted @ 2022-04-03 19:20 JunanP 阅读(5) 评论(0) 推荐(0) 编辑
摘要:670. 最大交换 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是 [0, 108] 思路: 阅读全文
posted @ 2022-04-03 14:57 JunanP 阅读(12) 评论(0) 推荐(0) 编辑
摘要:409. 最长回文串 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 示例 1: 输入:s = "abccccdd" 输出:7 解释: 我们可以构造的最长的回文串是"dccacc 阅读全文
posted @ 2022-04-03 12:01 JunanP 阅读(10) 评论(0) 推荐(0) 编辑
摘要:329. 矩阵中的最长递增路径 给定一个 m x n 整数矩阵 matrix ,找出其中 最长递增路径 的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你 不能 在 对角线 方向上移动或移动到 边界外(即不允许环绕)。 示例 1: 输入:matrix = [[9,9,4],[6,6, 阅读全文
posted @ 2022-04-01 22:32 JunanP 阅读(18) 评论(0) 推荐(0) 编辑
摘要:560. 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:nums = [1,2,3], k = 3 输出:2 思路: 总感觉以前写过这个 阅读全文
posted @ 2022-03-30 23:44 JunanP 阅读(6) 评论(0) 推荐(0) 编辑
摘要:572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以 阅读全文
posted @ 2022-03-30 23:36 JunanP 阅读(7) 评论(0) 推荐(0) 编辑
摘要:61. 旋转链表 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例 1: 输入:head = [1,2,3,4,5], k = 2 输出:[4,5,1,2,3] 示例 2: 输入:head = [0,1,2], k = 4 输出:[2,0,1] 思路: 这道题是 阅读全文
posted @ 2022-03-30 23:29 JunanP 阅读(8) 评论(0) 推荐(0) 编辑
摘要:662. 二叉树最大宽度 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。 示例 阅读全文
posted @ 2022-03-29 21:46 JunanP 阅读(21) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 51. 数组中的逆序对 难度困难686收藏分享切换为英文接收动态反馈 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 思路: 这道题题目可以说是“题狠话 阅读全文
posted @ 2022-03-29 20:29 JunanP 阅读(4) 评论(0) 推荐(0) 编辑
摘要:958. 二叉树的完全性检验 给定一个二叉树的 root ,确定它是否是一个 完全二叉树 。 在一个 完全二叉树 中,除了最后一个关卡外,所有关卡都是完全被填满的,并且最后一个关卡中的所有节点都是尽可能靠左的。它可以包含 1 到 2h 节点之间的最后一级 h 。 示例 1: 输入:root = [1 阅读全文
posted @ 2022-03-28 20:01 JunanP 阅读(21) 评论(0) 推荐(0) 编辑
摘要:209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 示例 1 阅读全文
posted @ 2022-03-28 19:31 JunanP 阅读(5) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQue 阅读全文
posted @ 2022-03-27 17:12 JunanP 阅读(2) 评论(0) 推荐(0) 编辑
摘要:221. 最大正方形 在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。 示例 1: 输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1& 阅读全文
posted @ 2022-03-27 15:12 JunanP 阅读(5) 评论(0) 推荐(0) 编辑
摘要:剑指 Offer 36. 二叉搜索树与双向链表 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针 阅读全文
posted @ 2022-03-27 14:56 JunanP 阅读(7) 评论(0) 推荐(0) 编辑
摘要:179. 最大数 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出:"210" 示例 2: 输入:nums = [3,30,34,5,9] 输 阅读全文
posted @ 2022-03-26 19:41 JunanP 阅读(20) 评论(0) 推荐(0) 编辑
摘要:695. 岛屿的最大面积 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值为 1 的单元格的数 阅读全文
posted @ 2022-03-26 19:36 JunanP 阅读(21) 评论(0) 推荐(0) 编辑
摘要:162. 寻找峰值 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O(log n) 的算 阅读全文
posted @ 2022-03-24 18:40 JunanP 阅读(8) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示