- 博客(21)
- 收藏
- 关注
原创 2-25 P200 岛屿数量P994 腐烂的橘子P543 二叉树的直径P124 二叉树中的最大路径和
将腐烂的橘子加入队列,然后依次出队列,出队列的同时判断其4个方向是否有新鲜橘子,若有,则将新鲜橘子赋值为腐烂橘子,再加入队列,等待出队列将新鲜橘子感染,直到队列为空或者新鲜橘子为空。所以我们先计算出矩阵的新鲜橘子和腐烂橘子的个数,然后腐烂橘子加入队列。由于最大路径的首尾只可能在叶子节点,故用深度优先遍历可以得出每一个分支节点路径最大值,再从中取出每个节点路径的最大值。仍然用深度优先遍历,要找出每一个节点的路径最大值,就是其左右子链的链的和值+本节点的值。给你一棵二叉树的根节点,返回该树的。
2025-02-25 20:30:56
614
原创 X86汇编语言程序设计
MOD:(寻址方式)字段R/M:寄存器/存储器字段共同确定一个操作数,可在寄存器中亦可在存储器中,两者的编码将确定寻址方式。REG:寄存器字段确定为寄存器寻址方式,一个操作数必定在某通用寄存器中,与W字段配合共有16种编码,指明寄存器地址。例如,在科学计算和物理模拟中,由于需要表示非常大或非常小的数值以及进行高精度的计算,因此使用浮点数更为合适。这是因为浮点数的尾数位用于表示有效数字,而指数位用于表示数的范围,因此尾数位的位数相对较少,导致精度降低。根据条件的不同,程序可以跳转到代码段中的不同位置。
2024-12-16 02:44:04
795
原创 11-27 P238 除自身以外数组的乘积
之中任意元素的全部前缀元素和后缀的乘积都在。请 **不要使用除法,**且在。为了节省空间,可将计算结果保留在。之外其余各元素的乘积。时间复杂度内完成此题。
2024-11-27 23:46:55
298
原创 11-26 P73 矩阵置零&&P54 螺旋矩阵
可以使用标记两个数组来分别标记有0的行和列。遍历矩阵2次,一次标记,标记后就得知哪些行列需要置0,第二次遍历矩阵置0。若还节省空间,就使用第一行和第一列作为标记数组,不过先要把第一行第一列是否有0使用标记记录下来,不然更新后的第一行第一列会导致无法记录原来第一行第一列是否有0.,则将其所在行和列的所有元素都设为。的矩阵,如果一个元素为。,返回矩阵中的所有元素。
2024-11-26 21:23:30
544
原创 11-25 单调栈P20 有效的括号&&P739每日温度
若为偶数个符号,要满足条件,从左至右,左括号肯定先出现,出现右括号时,必须和离它最近的左括号匹配。由于栈是先进后出,左括号依次入栈,栈顶肯定是最靠近右括号的左括号。当右括号出现时,判断是否与栈顶匹配,若匹配,将栈顶元素。,栈里面存放遍历过的元素,规则是保持栈里的元素是升序。升序是因为栈内元素未确定高温度距离,要是有遍历到一个温度大于栈顶温度,该温度必然是距离栈顶温度最近的高温度,把栈顶元素。必须要保持栈是升序,确保第一个找到比它高的温度是距离它最近的。**输出:**true。**输出:**true。
2024-11-25 21:44:30
415
原创 11-24 P74搜索二维矩阵P34在排序数组中查找元素的第一个和最后一个位置
请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。给你一个满足下述两条属性的。用二分法设计一个函数,找出。如果数组中不存在目标值。根据右上角的元素判断。
2024-11-24 22:19:52
161
原创 11-23 P46全排列
回溯.给每一个元素设置一个属性表示是否使用过,没有使用过就加入,然后递归,判断每一个元素,没有使用过就加入,直到每一个元素都使用过了。给定一个不含重复数字的数组。
2024-11-23 23:36:18
324
原创 11-22 P35搜索插入位置&P118杨辉三角
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。在「杨辉三角」中,每个数是它左上方和右上方的数的和。就是用二维数组构造一个杨辉三角。,*生成「杨辉三角」的前 numRows。数组是有序的,可以利用二分查找法。请必须使用时间复杂度为。在数组首尾,求出中间值。的位置把范围缩小,使得。给定一个非负整数 *
2024-11-22 23:20:17
410
原创 11-21贪心算法P45 跳跃游戏 IIP763划分字母区间
范围内的能跳跃距离的最大值。遍历数组,记录0开始到最后一个元素-1的覆盖范围,并保留最大值。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,,覆盖范围一旦到达了终点,就可以得到最小步数了。如果最大值没有覆盖终点,那么一定会遍历到当前最远覆盖范围,要划分一个字母块,字母块最后一个元素必须是整个字母块最远的。返回一个表示每个字符串片段的长度的列表。
2024-11-21 09:30:00
437
原创 11-20 P55 跳跃游戏
把跳跃的步数看作覆盖范围,能够以覆盖范围作为起点跳跃,若能覆盖到最后一个元素,返回。数组中的每个元素代表你在该位置可以跳跃的最大长度。,若在覆盖范围内跳跃仍然不能覆盖到最后一个元素,返回。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。
2024-11-20 23:53:00
306
原创 11-19子序列系列
是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。给定一个未经排序的整数数组,找到最长且。画一个大表格,即表示二维数组。,找到其中最长严格递增子序列的长度。是这两个字符串所共同拥有的子序列。、长度最长的子数组的长度。,返回这两个字符串的最长。,并返回该序列的长度。)确定,如果对于每个。就是连续递增子序列。
2024-11-19 23:54:51
388
原创 11-18 P198打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,给定一个代表每个房屋存放金额的非负整数数组,计算你。,一夜之内能够偷窃到的最高金额。
2024-11-19 00:00:00
343
原创 11-17 P136只出现一次的数字
除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。所有元素同时进行异或,相同的数异或结果为0,只有单独的数与0异或等于本身。
2024-11-17 22:29:00
230
原创 11-16 P62[不同路径]P70[爬楼梯]P746[使用最小花费爬楼梯]
机器人试图达到网格的右下角(在下图中标记为 “Finish” )。个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。网格的左上角 (起始点在下图中标记为 “Start” )。利用动态规划,将原问题分解成若干类似的子问题求解。利用动态规划,将原问题分解成若干类似的子问题求解。,动态规划的核心思想是:用子问题的解来求解原问题。你有多少种不同的方法可以爬到楼顶呢?请你计算并返回达到楼梯顶部的最低花费。种方法,那么回退一步,必是。,那么回退一步,必是花费。种方法上来的,所以有。
2024-11-16 13:30:00
329
原创 11-15将有序数组转换为二叉搜索树 验证二叉搜索树
这题要注意的是每一个结点左子树所有结点<root.val<右子树所有结点。可以看作一个数轴,每一个中间结点必须在(left,right)之内。排列树:每一个结点:其左子树所有结点<根节点<右子树所有结点。因为数组元素即结点已经排序,所以只要分出平衡树并确保左子树。平衡树:每一个结点的左右子树高度差的绝对值不超过1。首先明白什么是平衡二叉搜索树:排列树+平衡树。所有左子树和右子树自身必须也是二叉搜索树。,判断其是否是一个有效的二叉搜索树。,将其转换为 平衡 二叉搜索树。结点<根节点<右子树。
2024-11-15 13:30:00
405
原创 11-14.2 P105 从前序与中序遍历序列构造二叉树
前序遍历第一个结点是根,确定根在中序遍历的位置,根左边的元素为左子树结点,右同样。根据子树元素个数,由前序与中序遍历序列确定子树的前序序列和中序序列,依次递归,直到子树没有元素。递归法:由前序遍历确定根,由中序遍历确定左子树和右子树元素,直到子树没有元素。
2024-11-14 13:30:00
319
1
原创 11-14.1 P114二叉树展开为链表
因为是前序遍历,转换为链表的话,链表的每一个结点的下一个结点必定是该结点的左孩子,而该结点的右孩子就要排在左孩子的下一个结点。
2024-11-14 07:00:00
340
原创 用辗转相除法求任意2个数的最大公约数
辗转相除法原理很简单:较大数等于较小数的几倍加上一个余数,若最大公约数为m,那么余数也应能整除m,所以现在转换成求余数与较小数的最大公约数m,一直除,直到求最后2个数的最大公约数。直到余数为0,说明最后2个数中的除数就是最大公约数。首先辗转相除法的定义:2个数,较大数除以较小数,若得到一个不为0的余数,则用较小数除以余数,最终得到余数为0,那么最后那个除数就是最大公约数。
2022-12-11 21:16:20
685
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人