![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法
静能生慧
Share in creating the best world
展开
-
算法基础-队列
一种特殊线性表。原创 2024-05-23 11:49:36 · 195 阅读 · 0 评论 -
算法基础-栈
一种特殊线性表。原创 2024-05-23 11:48:43 · 79 阅读 · 0 评论 -
验证二叉搜索树
给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。输入:root = [5,1,4,null,null,3,6]解释:根节点的值是 5 ,但是右子节点的值是 4。所有左子树和右子树自身必须也是二叉搜索树。节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。输入:root = [2,1,3]原创 2024-05-23 11:43:54 · 211 阅读 · 0 评论 -
链表的中间结点
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.(测评系统对该结点序列化表述是 [3,4,5])。由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。输出:此列表中的结点 3 (序列化形式:[3,4,5])输出:此列表中的结点 4 (序列化形式:[4,5,6])如果有两个中间结点,则返回第二个中间结点。输入:[1,2,3,4,5,6]输入:[1,2,3,4,5]原创 2024-05-23 11:43:15 · 143 阅读 · 0 评论 -
重新格式化字符串
解释:“0a1b2c” 中任意两个相邻字符的类型都不同。“a0b1c2”, “0a1b2c”, “0c2a1b” 也是满足题目要求的答案。请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串。给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。输入:s = “a0b1c2”输出:“0a1b2c”原创 2024-05-21 15:00:59 · 247 阅读 · 0 评论 -
第一个错误的版本
你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。调用 isBadVersion(4) -> true。输入:n = 5, bad = 4。输入:n = 1, bad = 1。所以,4 是第一个错误的版本。原创 2024-05-21 15:00:29 · 393 阅读 · 0 评论 -
环形链表 II
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。输入:head = [3,2,0,-4], pos = 1。输入:head = [1,2], pos = 0。解释:链表中有一个环,其尾部连接到第二个节点。解释:链表中有一个环,其尾部连接到第一个节点。原创 2024-05-21 14:59:58 · 207 阅读 · 0 评论 -
算法-爬楼梯
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?需要 n 阶你才能到达楼顶。解释:有两种方法可以爬到楼顶。解释:有三种方法可以爬到楼顶。原创 2024-05-21 14:59:18 · 456 阅读 · 0 评论 -
最长回文串
给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串。在构造过程中,请注意 区分大小写。比如 “Aa” 不能当做一个回文字符串。我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。输入:s = “abccccdd”输入:s = “a”原创 2024-05-21 14:58:48 · 319 阅读 · 0 评论 -
斐波那契数
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。F(n) = F(n - 1) + F(n - 2),其中 n > 1。解释:F(2) = F(1) + F(0) = 1 + 0 = 1。解释:F(3) = F(2) + F(1) = 1 + 1 = 2。解释:F(4) = F(3) + F(2) = 2 + 1 = 3。给定 n ,请计算 F(n)。原创 2024-05-21 14:58:18 · 200 阅读 · 0 评论 -
算法-岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。输入:grid = [输入:grid = [原创 2024-05-21 14:57:47 · 321 阅读 · 0 评论 -
寻找数组的中心下标
左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,右侧数之和 sum = nums[4] + nums[5] = 5 + 6 = 11 ,二者相等。右侧数之和 sum = nums[1] + nums[2] = 1 + -1 = 0。数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。输入:nums = [1, 7, 3, 6, 5, 6]输入:nums = [2, 1, -1]原创 2024-05-21 14:57:16 · 103 阅读 · 0 评论 -
算饭-图像渲染
输入: image = [[1,1,1],[1,1,0],[1,0,1]],sr = 1, sc = 1, newColor = 2。输入: image = [[0,0,0],[0,0,0]], sr = 0, sc = 0, newColor = 2。解析: 在图像的正中间,(坐标(sr,sc)=(1,1)),在路径上所有符合条件的像素点的颜色都被更改成2。输出: [[2,2,2],[2,2,0],[2,0,1]]输出: [[2,2,2],[2,2,2]]最后返回 经过上色渲染后的图像。原创 2024-05-21 14:24:19 · 206 阅读 · 0 评论 -
同构字符串
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。输入:s = “paper”, t = “title”给定两个字符串 s 和 t ,判断它们是否是同构的。输入:s = “egg”, t = “add”输入:s = “foo”, t = “bar”原创 2024-05-21 14:23:48 · 114 阅读 · 0 评论 -
合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2024-05-21 14:21:27 · 115 阅读 · 0 评论 -
算法-反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。原创 2024-05-21 14:20:56 · 316 阅读 · 0 评论 -
判断子序列
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。如果有大量输入的 S,称作 S1, S2, …, Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。给定字符串 s 和 t ,判断 s 是否为 t 的子序列。输入:s = “abc”, t = “ahbgdc”输入:s = “axc”, t = “ahbgdc”原创 2024-05-21 14:20:26 · 135 阅读 · 0 评论 -
二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历。(即逐层地,从左到右访问所有节点)。输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]输入:root = [1]输入:root = []原创 2024-05-21 14:19:55 · 160 阅读 · 0 评论 -
二叉搜索树的最近公共祖先
输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8。输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4。例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。解释: 节点 2 和节点 8 的最近公共祖先是 6。原创 2024-05-21 14:18:56 · 183 阅读 · 0 评论 -
算法-二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9。输入: nums = [-1,0,3,5,9,12], target = 2。解释: 9 出现在 nums 中并且下标为 4。解释: 2 不存在 nums 中因此返回 -1。原创 2024-05-20 13:00:38 · 287 阅读 · 0 评论 -
买卖股票的最佳时机
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;解释:在这种情况下, 没有交易完成, 所以最大利润为 0。输入:prices = [7,6,4,3,1]输入:[7,1,5,3,6,4]原创 2024-05-20 12:09:02 · 307 阅读 · 0 评论 -
一维数组的动态和
数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])。解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1]。解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4]。输入:nums = [3,1,2,10,1]输入:nums = [1,1,1,1,1]输入:nums = [1,2,3,4]输出:[3,4,6,16,17]输出:[1,2,3,4,5]输出:[1,3,6,10]原创 2024-05-20 12:08:31 · 257 阅读 · 0 评论 -
N 叉树的前序遍历
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[1,2,3,6,7,11,14,4,8,12,5,9,13,10]给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历。输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4]原创 2024-05-20 12:07:59 · 231 阅读 · 0 评论