- 博客(13)
- 收藏
- 关注
原创 leetcode-二叉树的中序遍历
然后中序遍历是左根右,函数的返回是一个数组,因此需要在public里面提前建立一个vector,int。二叉树的基本操作 中序遍历 ,但注意有可能存在空输入的情况,要写一个if来排除,直接返回空。递归算法很简单,你可以通过迭代算法完成吗?型,后续表现在代码实现中就是压容器的顺序。12.45MB击败5.05%给定一个二叉树的根节点。0ms击败100.00%
2025-06-19 20:48:51
351
原创 Leetcode-88-合并两个有序数组
给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你nums2到nums1中,使合并后的数组同样按排列。最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。需要合并 [1,2,3] 和 [2,5,6]。合并结果是 [,2,,5,6] ,其中斜体加粗标注的为 nums1 中的元素。[1]
2025-05-27 13:23:44
731
原创 Leetcode-264-丑数 思路&&代码
中等提示给你一个整数n,请你找出并返回第n个。就是质因子只包含23和5的正整数。n = 1012[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。n = 111 通常被视为丑数。//找丑数的流程是什么,这个数的质因子只能包含2,3,5,换言之,它就只能被这几个数处理,直到它为1,//如10,看一下这里先可以被2处理,为5,然后只能被5处理,最后结果为1//如12,可以被2先处理,然后为6,可以被2处理,然后为3,被三处理为1。
2025-05-15 16:44:18
976
原创 leetcode第406题 根据身高重建队列 思路&&代码
中等提示假设有打乱顺序的一群人站成一个队列,数组people表示队列中一些人的属性(不一定按顺序)。每个表示第i个人的身高为hi,前面有ki个身高大于或等于hi的人。请你重新构造并返回输入数组people所表示的队列。返回的队列应该格式化为数组queue,其中是队列中第j个人的属性(queue[0]是排在队列前面的人)。编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
2025-05-09 11:33:02
614
原创 386. 字典序排数leetcode 思路&&代码
中等给你一个整数n,按字典序返回范围[1, n]内所有整数。你必须设计一个时间复杂度为O(n)且使用O(1)额外空间的算法。n = 13n = 2[1,2]这道题思路就是用sort函数来对数组排序,定义一个比较函数,stt,这里面比较的就是ASCLL码,所以把两个int型转化为string类型,再比较ascll码。
2025-05-07 21:08:22
396
原创 658-找到 K 个最接近的元素-解题思路&代码实现
给定一个的数组arr,两个整数k和x,从数组中找到最靠近x(两数之差最小)的k个数。返回的结果必须要是按升序排好的。整数a比整数b更接近xa < b[1,2,3,4][1,1,2,3]想到了要用两个指针。返回这个容器代码实现:public:// 查找 x 的位置i < length;break;// 如果没找到 x,要处理这种情况,这里简单找到最接近 x 的元素index = 0;i < length;
2025-04-07 22:32:33
686
原创 leetcode-165比较版本号-学习过程&实现代码
给你两个version1和version2,请你比较它们。版本号由被点'.'分开的修订号组成。是它并忽略前导零。比较版本号时,请按依次比较它们的修订号。如果其中一个版本字符串的修订号较少,则将缺失的修订号视为0。-110-1version1 的第二个修订号为 "2",version2 的第二个修订号为 "10":2 < 10,所以 version1 < version2。0忽略前导零,"01" 和 "001" 都代表相同的整数 "1"。0。
2025-04-05 20:35:02
828
原创 leetcode-103二叉树的锯齿形层次遍历-代码实现
/ 方向,子节点从左往右是 true,从右往左是 false。但是题目给的类中只有一个树根输入值,所以要解决这个问题的关键在于,这个计数器什么时候加,也就是判断什么时候是这个层?//方向,子节点从往右是ture,从右往左是false。
2025-04-05 13:11:31
408
原创 leetcode-103二叉树的锯齿形层次遍历-学习过程
问题本质还是层次遍历,层次遍历的方法是用队列来实现的,我们把树压队列,队首弹出后压入其左节点右节点。这里关联一下输出顺序问题,如果我们direction为左,则先压入左子树,再压入右子树;(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。定义全局变量direction布尔型初始化为1,1为向右走,从根节点开始的。递推函数执行结束的判断条件即为队列是否为空,为空即返回二维数组容器。过程出现的问题:不会处理加入数组时为第几层的问题。用递推的方式,学习了新的方式,因为定义。
2025-04-05 13:10:58
361
原创 leetcode-200岛屿数量代码实现
栈溢出(Stack Overflow)是指程序在执行过程中,由于递归调用过深或函数调用层次过多,导致调用栈超出了系统分配的内存空间。于是改变思路,这里面land是冗余的,我们dfs函数只需要实现整块陆地的复位为0就可以了。if (grid[i][j] == '1') { // 仅对未访问的陆地调用DFS。这种操作是违规的,因为在if条件判断里,程序会先去访问数组未定义的部分,导致越界。所以,换一种思路,让坐标记录先越界,然后判断坐标数值即可,所以代码变为如下。16.07MB击败49.65%
2025-04-05 09:45:11
845
原创 leetcode-200岛屿数量学习过程
2.两个for循环遍历数组,当遇到第一个1时且land=0,也就是一块陆地,岛屿计数器count++;递归(根据其坐标判断是否是边界,递归其临近位置)岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。初步思考这个题的时候,我想到了一种深度遍历递归的思路,也就是我可以设计一个。递归函数:参数(x,y坐标,记录是否是来自陆地标记land)(水)组成的的二维网格,请你计算网格中岛屿的数量。1.定义一个计数器count,记录陆地数量。此外,你可以假设该网格的四条边均被水包围。
2025-04-05 08:40:23
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅