![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
关于刷过的OJ题
文章平均质量分 66
就是单纯记录一下自己刷过的有趣的题,不要像之前做基础题一样,做完了忘完了。要经常复习。
梦想成为光头强!
这个作者很懒,什么都没留下…
展开
-
不用运算符进行加减运算
不用运算符进行加减运算前言一丶加法二丶减法前言这里我为什么要写这篇博客,因为这道题重复做了好几遍,每次一看就感觉会了,但是第二次做发现自己是废了,不是会了。所以就有了这篇博客的发生,而且也好久没有更新过这个专栏的内容了,接下来也要好好的进行了。(其实笔者本来是想把乘除也搞上,但是时间缘故来不及了,笔者要去赶今天的任务进度,后面有时间在写上吧)一丶加法首先我为什么会先实现加法呢?因为实现了加法之后,其他三种运算都是以加法为基础的。这里我全部口述题目和解法,就不贴leetcode的链接了。题目:给原创 2022-04-04 17:30:24 · 577 阅读 · 0 评论 -
看这一篇就够啦,双指针题型解题模板总结
关于双指针你必须知道的事前言一丶模板讲解(1)同向指针(2)异向指针二丶考点说明初级考察(1)344. 反转字符串(2)26. 删除有序数组中的重复项(3)1047. 删除字符串中的所有相邻重复项(4)80. 删除有序数组中的重复项 II进阶考察(5)121. 买卖股票的最佳时机(6)11. 盛最多水的容器(7)42. 接雨水三丶总结前言对于双指针题型,大家肯定都不陌生:快慢指针,头尾指针,二分查找等等,所以一般双指针题型都会出现在哪里呢?“数组”\color{red}{“数组”}“数组”。因为数组的结原创 2021-12-05 21:03:20 · 1413 阅读 · 1 评论 -
二叉树的两种创建方式
二叉树的两种创建方式第一种:根据前序和中序遍历构建二叉树在写之前,首先明确一点:如果说只有前后序遍历那么是不能够创建二叉树的,必须有中序\color{red}{如果说只有前后序遍历那么是不能够创建二叉树的,必须有中序}如果说只有前后序遍历那么是不能够创建二叉树的,必须有中序遍历才能创建二叉树\color{red}{遍历才能创建二叉树}遍历才能创建二叉树第一种:根据前序和中序遍历构建二叉树...原创 2021-11-10 18:11:26 · 1007 阅读 · 0 评论 -
判断完全二叉树
关于完全二叉树第一种思路第二种思路题目来源:判断完全二叉树第一种思路具体就用下图来看:PS:检测是用层序遍历的思想这种的话其实就找那个最特殊的节点,也就是图中最特殊的那个节点。在这个结点之前,所有的结点都是左右子树同时入栈,而这个节点:1.无左右子树2.只有左子树没有右子树3.只有右子树没有左子树,这种的就直接不是完全二叉树也就是按照层序遍历,找第一个左右子树不全的结点。然后从这个结点开始,往后所有的节点子树为空。具体代码如下:public boolean isComple原创 2021-11-06 11:50:55 · 498 阅读 · 0 评论 -
合并两个有序链表
合并两个有序链表第一种:创建新链表第二种:递归题目来源:leetcode:合并两个有序链表老规矩,这一题呢还是有两种思路,但是第二种递归确实不好想。第一种:创建新链表就是创建一个新的链表,然后把两个链表每个节点的value值进行比较,谁小连谁,直到其中一方为空时候停止,然后把另一条链表剩下的所有补上去。具体代码如下:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { Lis原创 2021-10-23 16:49:39 · 62 阅读 · 0 评论 -
链表的中间节点
链表的中间节点一丶讨论1.关于链表节点为奇数和偶数2.关于偶数节点返回前后节点的问题二丶双指针三丶用数组的方式写这一篇博客的原因是因为后续很多内容需要用到反转链表。该题的链接在这里leetcode:链表的中间节点一丶讨论其实在这一部分一般情况下我们都会定义这样两个ListNode fast = head;//定义快指针ListNode slow = head;//定义慢指针来进行操作。具体思路是快指针每次走两步,慢指针每次走一步,然后当快节点走到头的时候,慢节点恰好是中间位置。PS原创 2021-10-23 14:40:54 · 156 阅读 · 0 评论 -
反转链表元素
反转链表元素一丶迭代二丶递归题目来源:leetcode:反转链表元素这里关于反转链表元素其实本来没有打算写博客,但是为了继续增加对于递归思想的使用,还是义无反顾的敲了下来一丶迭代这个是大家都能够想到的,定义三个指针,然后往后移的同时更改next属性的指向。具体实现如下:ublic ListNode reverseList(ListNode head) { ListNode pre = null;//这个指向对前节点的前一个节点 ListNode cur = he原创 2021-10-23 13:42:39 · 85 阅读 · 0 评论 -
移除链表元素
移除链表元素前言第一种:不设置虚拟节点输入[7,7,7,7,7]输入[]对于[7, 1 ,2,3,4,5]第二种:设置虚拟节点第三种:递归前言关于移除链表元素,原题是这个样子的PS:这个截图是截的是Leetcode的OJ题思路:首先这个题对于删除的代码没有需要讨论的地方,需要注意的是这一句话:返回新的头节点。这就意味着如果说头结点刚好等于value或者头结点为null,那么这个返回就没有任何意义。那么这个时候就要分解决的思路了。第一种:不设置虚拟节点不设置虚拟节点就意味着我们需要在代码中增加判原创 2021-10-22 22:41:44 · 64 阅读 · 0 评论