![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 73
刷题不能停!!
焱齿
tencent
展开
-
150、逆波兰表达式求值
题目明确“中间及最终结构都可以用32为整数表示”,所以定义成stack就可以了。另外,{"18"} 这种输入也是合法的,所以最终返回一个stack.top()比较合适。该算式转化为常见的中缀算术表达式为:(4 + (13 / 5)) = 6。该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9。逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。返回一个表示表达式值的整数。注:所有测试用例都是合法的逆波兰表达式!规则还是比较简单的。注:都可以用int表示。原创 2024-08-01 15:13:10 · 701 阅读 · 0 评论 -
203、移除链表元素
另外,在实现的时候无论用一个指针还是两个指针都是可以的;节点值是否等于val的if……else逻辑区分清楚就好。一个指针指向pre、一个指针指向cur。,请你删除链表中所有满足。给你一个链表的头节点。原创 2024-07-26 20:01:16 · 355 阅读 · 0 评论 -
53、最大子数组和
而且,在推到的过程中我们必须选择了nums[i]],否则由dp[0~i-1]推到dp[i]无从谈起。dp[i]表示以nums[i]为结尾的最大的子数组和。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。—— 其实就是每次当前面的和为负数的时候就都抛掉计算新的和;注:i被选取是非常合理的,因为我们最终取的结果是max(dp[0~i])。很多时候贪心的思路在感性上就非常的直观。连续子数组 [4,-1,2,1] 的和最大,为 6。最终结果去dp[0~i]的最大值即可。原创 2024-07-21 18:02:02 · 293 阅读 · 0 评论 -
96、不同的二叉搜索树
h(n)表示以1~n为头结点的二叉树种类数,显然有: G(n) = h(1) + h(2) + h(3)。集合BST特性知:。2、以第i个元素为根节点时其对应的个数=[1, i-1]个元素构成的左子树种类 * [i+1, n]构成右子树种类。即:dp[3] = dp[0]*dp[2] + dp[1]*dp[1] + dp[2]*dp[0]此时其右子树是由{2,3}两个数构成的BST.其实 这里的右子树{2,3}完全可以看成{1,2}因为{1,2}构成的BST和{2,3}构成的BST的个数是完全一样的!原创 2024-07-18 15:48:42 · 874 阅读 · 0 评论 -
25、K个一组反转链表
2)然后就是对批次内的k个元素进行反转,这里的反转其实就是将head指向的每个元素依次作为cur的next插入进去。1)首先我们要记录下每批次的头结点(被反转后它会作为结果的尾节点),我们需要在一批次结束后用其更新cur指针。外层只需要借助一个指针记录每批次处理完后cur应该出入的新位置即可。是一个正整数,它的值小于或等于链表的长度。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。内层在插入节点的时候也借助个临时指针,这没啥好说的。的整数倍,那么请将最后剩余的节点保持原有顺序。原创 2024-06-27 17:22:39 · 336 阅读 · 0 评论 -
19、删除链表的倒数第n个节点
(2)这里重点就是要却确定p_cur1移动多少步后,p_cur2也跟着一起移动;关于这个点{1,2,3,4,5}比划一下就比较清楚了;(3)另外就是在输入链表前追加一个节点便于返回数据的玩法了,这个应该作为基本操作死死地记住。(1)毋庸置疑,肯定是要双指针了(p_cur1/p_cur2);给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?原创 2024-06-24 21:25:42 · 325 阅读 · 0 评论