力扣每日一题
文章平均质量分 57
爱敲代码的罗根
勿忘曾许之愿,此句,与诸君共勉
展开
-
『力扣刷题本』:逆波兰表达式求值
大家好久不昂,最近 1 个多月罗根一直在备考期末,文章发的很少。现在已经放寒假啦,学习自然也不能拉下,毕竟 4 月份就要去参加蓝桥杯了。先给自己定个小目标,日更 2 篇!咳咳,下面马上开始讲题👇。原创 2024-01-16 10:24:55 · 1948 阅读 · 4 评论 -
『力扣刷题本』:二叉树的中序遍历
因此,我们定义一个专门递归的函数 inorder ,参数列表为 TreeNode 类型的 root ,以及 List 类型的 res。在函数里头,先传 root.left ,然后把 root 的 val 值传给 res 数组,然后再继续传给它 root.right ,继续让他递归遍历即可。这道题是很经典的二叉树入门题型,我们都知道二叉树是递归定义的,那么最简单的解题方法自然是用递归啦~因此,我们得先想好,先把二叉树中序遍历完,再用数组进行输出。给定一个二叉树的根节点。原创 2023-11-19 14:56:38 · 136 阅读 · 1 评论 -
『力扣刷题本』:链表分割
在我们遍历完链表后,所有小于x的节点都已经被保存在了栈中,而由于栈的先进后出特性,我们可以保证最早被删除的节点最后被添加回链表。,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。如果你对栈不熟悉,没关系,想象一下你在吃饭时堆放碗筷的样子,最后放上去的碗筷总是最先被取走,栈就是这样工作的。遍历过程,如果我们遇到一个值小于x的节点,我们就把它的值压入栈中,并从原链表中删除这个节点。我们首先定义一个栈来存储所有小于x的节点的值。原创 2023-11-19 13:02:04 · 256 阅读 · 0 评论 -
『力扣刷题本』:环形链表(判断链表是否有环)
按照正常情况,A节点的指针会指向B节点,B节点的指针会指向C节点,以此类推。但是,如果E节点的指针指向了C节点,那么这个链表就形成了一个环状结构,就像一个圆圈一样。我们定义两个指针,再把他们放进 while 循环中,只要 fast 和fast.next 都不为空,就让快指针走两步,慢指针走一步。链表的环是指链表中存在一个节点,它的指针指向了链表中的某个之前的节点,造成链表形成了一个环状的结构。因为只要链表有环这个循环结构了,那么慢指针终跟快指针相遇,因为快指针会甩开慢指针一圈。,判断链表中是否有环。原创 2023-11-19 10:18:50 · 161 阅读 · 0 评论 -
『力扣刷题本』:获取链表的中间节点
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!输入一个链表,输出该链表中倒数第k个结点。原创 2023-11-17 11:46:54 · 123 阅读 · 0 评论 -
『力扣刷题本』:链表的回文结构
大家好呀,我是罗根。大二上学期的课是真的多,最近也一直在学数据结构,忙的事情有点多,所以又拖更几个星期啦。不过这周是学校的素质教育周,一周都没上课,就参加各种活动,刷够 28 个学时就能拿到学分。今天也是周五了,从昨天开始,我就一直在刷题,现在写完这篇文章,就要去出去玩了,希望本文对大家有所帮助~原创 2023-11-17 10:24:57 · 447 阅读 · 0 评论 -
『力扣刷题本』:反转链表
接下来就到了反转环节了,我们先把前节点 prev 赋值给 cur 的 next 域,为的就是让 cur 的下一个节点是 prev,再把这个环节放大到整个链表,就实现「反转」效果了。同时,我们还要定义一个变量(我定义为 next ),用于存储 cur 变量的 next 域数值,有了下一个节点地址,才能进行遍历。我们知道,链表不像双链表,它只有两个域,但是这道题想要反战,就要定一个变量,来存储一个前节点,方便我们到时重新串起整个链表。接着我们还是利用 cur 这个变量,来遍历链表,直到 cur 为空时停止。原创 2023-10-29 11:39:40 · 332 阅读 · 1 评论 -
『力扣刷题本』:移除链表元素
给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。[][]原创 2023-10-28 18:51:32 · 148 阅读 · 1 评论 -
『力扣刷题本』:删除排序链表中的重复元素
其他均为正常数据,那我们就只要定义个 cur 变量,让他遍历整个链表,找到 cur.next.val == cur.val ,直接把这个元素的 next 域赋值为 该元素.next.next 的值即可,也就是让他绕过一个重复元素的意思。而不是这种情况的话,就属于数值不相等的,那我们直接让 cur = cur.next 即可,也就是让 cur 变量继续遍历下去,有点类似遍历数组中的 i++。最后,整个链表就重新串起来了,我们返回 head 即可。删除所有重复的元素,使每个元素只出现一次。原创 2023-10-28 18:24:25 · 122 阅读 · 1 评论 -
『力扣刷题本』:合并两个有序链表(递归解法)
至于 1)和 2)情况,我们分别返回 list2 和 list1 即可,因为一个都为空了,肯定只能返回另一个了。最后我得出的结论是,直接返回 list2 ,因为在第一个 if 语句判断的时候,符合了条件,已经直接返回了!以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!既然是递归,我们就得考虑所有条件,方便我们给出限制条件,以防止程序无限地递归。值得一提的是,罗根我仔细想了一下,要是两个链表都为 null 这种情况呢?3)list1 元素 < list2 元素;原创 2023-10-27 22:24:47 · 515 阅读 · 1 评论 -
『力扣刷题本』:轮转数组
把这些元素放好之后,我们在对数组进行一个拷贝即可。这个拷贝的方法,也是我不太熟悉的,嗯,直到自己哪里薄弱,是件好事,以后广而避之就行。这道题里面,我们其实只要想明白一步即可,就是怎么把因为轮转而存不下的元素先给存下来,就行啦。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!这道题我又是没做出来啦,不过我学到了一个新的解题方法--双数组!向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。原创 2023-10-27 21:11:09 · 231 阅读 · 1 评论 -
『力扣刷题本』:相交链表
咳咳,实在抱歉,刚开始心气太高了,叫『每日一题』,我是真的坚持不下了。经过这次打击,我算是摸明白自己在写博客这件事情上几斤几两了,现在预计一周两更,再慢慢把更新频率提上来。正在努力补漏中~原创 2023-10-20 07:30:00 · 130 阅读 · 1 评论 -
【力扣每日一题02】数组篇--删除有序数组中的重复项
给你一个的数组nums请你原地删除重复出现的元素,使每个元素返回删除后数组的新长度。元素的应该保持。然后返回nums中唯一元素的个数。原创 2023-09-02 18:52:39 · 485 阅读 · 8 评论 -
『力扣每日一题17』:多数元素
首先,博主非常细节地说,虽然题目跟我们说,可以假设数组非空,并且总是存在元素。其次,他的想法就是,把元素看成一个个小兵,不同的可以看成互相打架,抵消掉;这道题,本来有很简单的写法,但我看到一条热评,点过去跳到一个视频。上面两种情况判断完了之后,就剩最后一种普通情况,也就是碰到不同元素,小兵之间要互相掐架,所以 count --;到这就写完了,最后返回 winner 即可,毕竟或者的那位 “ winner ”,才是数量最多的元素嘛!你可以假设数组是非空的,并且给定的数组总是存在多数元素。原创 2023-10-10 07:00:00 · 181 阅读 · 4 评论 -
『力扣每日一题16』:存在重复元素
先把数组排好序,然后遍历数组,看有没有下标为 i 的等于下标为 i+1 的即可,有的话直接返回 true,反之亦然,解决~在这里也把这个想法分享出来,希望有朝一日,有大佬做出来,或者若干年后,我自己回来看到后解开~定义 i 、 j 下标,然后用循环遍历数组,有重复的直接返回即可,下面是我的演示代码。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!首先这道题,我用自己第一直觉想出的方法,很遗憾,还是没有做出来。如果数组中每个元素互不相同,返回。如果任一值在数组中出现。原创 2023-10-08 22:57:26 · 284 阅读 · 1 评论 -
『力扣每日一题15』:买卖股票的最佳时机
因此,我们可以定义两个变量,min 代表最小值,直接定义为一个 Integer 的最大值即可,保证每个数至少小于或等于它,就可以替换掉它。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。接着我们开始遍历数组,只要小于 min 的都赋值给 min、大于 mixprofit 的都赋值给它,并做好条件判断。同时,你不能在买入前卖出股票。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!买入这只股票,并选择在。原创 2023-10-08 07:00:00 · 681 阅读 · 1 评论 -
『力扣每日一题14』:消失的数字
昨天忙过头,等想起来已经 12 点多了,于是乎断更了。在这里先跟广大读者说声抱歉,并且稍后我会再更一篇。原创 2023-10-07 23:32:14 · 381 阅读 · 0 评论 -
『力扣每日一题13』:给定一个整数sum,从有N个有序元素的数组中寻找元素a,b,使得a+b的结果最接近sum,最接近sum,最快的平均时间复杂度是?
给定一个整数 sum ,从有 N 个有序元素的数组中寻找元素 a,b ,使得 a+b 的结果最接近 sum ,最接近 sum ,最快的平均时间复杂度是?然后再通过计算两个指针所指元素之和与给定整数 sum 之间的差值,来判断应该向左移动指针还是向右移动指针『大于 sum 则尾部指针向左移,反之亦然』。而平均时间复杂度为 O(N) ,其中 N 为数组的长度。因为我们只需要遍历整个数组一次,每次移动指针的操作需要 O(1) 的时间复杂度。我们定义两个指针,一个指向数组的头部,一个指向数组的尾部。原创 2023-10-05 23:59:35 · 578 阅读 · 2 评论 -
『力扣每日一题12』:只出现一次的数字
给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。原创 2023-10-05 00:01:42 · 372 阅读 · 2 评论 -
『力扣每日一题11』:转换成小写字母
需要转换的根据 ASCII 码值进行 +32 即可,但这样操作后,类型也会从 ch 变为 int ,所以还需要强转成 ch 类型。而这个 isUpper 方法,要放在我们的 toLowerCase 方法中,结合遍历进行转换操作。我先创建了一个 isUpper 方法,用于判断字符串是否为大写,如果是的话,就要进行转换。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!,将该字符串中的大写字母转换成相同的小写字母,返回新的字符串。原创 2023-10-03 20:34:12 · 396 阅读 · 1 评论 -
『力扣每日一题10』:字符串中的单词数
因为身体原因,再加上学校的 DeadLine 比较多,太忙太累,拖更了半个月。现在开始重拾日更,期待我们一起遇见更好的自己!原创 2023-10-02 22:21:35 · 315 阅读 · 1 评论 -
『力扣每日一题09』合并两个有序数组
三连更第一篇。原创 2023-09-10 16:19:46 · 338 阅读 · 2 评论 -
『力扣每日一题08』验证回文串
j 也是同理,因此要有条件判断,能让 i++ 和 j--。定义的 i 和 j 这两个变量,就是类似两个指针的作用,一个用于从前向后遍历,另一个则是从后向前遍历。中间碰到非数字和字母的元素就跳过,要是 i 不等于 j 了,就说明该字符串不是回文串了。以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!需要注意的就是,i 要一直走到一个合法的字符那里 有可能i要走很多步。在移除非字母数字字符之后,s 是一个空字符串 ""。由于空字符串正着反着读都一样,所以是回文串。原创 2023-09-08 18:49:22 · 505 阅读 · 3 评论 -
『力扣每日一题07』字符串最后一个单词的长度
气死我啦,今天这道题花了快一个小时,我学完了答案的解法,放上去在线 OJ ,一直报错,找来找去都找不到自己错在哪,明明跟答案一模一样。后来还是学了另一种解法,才跑出来的(°̥̥̥̥̥̥̥̥o°̥̥̥̥̥̥̥̥)后来我对比了两种写法,复盘了一下,应该是第一种解法定义了太多变量了,我在使用的时候不小心用错了变量导致的。接下来还需要更细心!原创 2023-09-07 17:05:25 · 369 阅读 · 8 评论 -
『力扣每日一题06』字符串中的第一个唯一字符
今天是学习新知识的一天,String 类中有太多细枝末节,需要我去学习跟掌握了。话不多说,今天给大家带来一道字符串的题目~原创 2023-09-06 12:42:47 · 526 阅读 · 6 评论 -
【力扣每日一题05】数组篇--加一
给定一个由组成的数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储数字。你可以假设除了整数 0 之外,这个整数不会以零开头。[1,2,4]输入数组表示数字 123。[4,3,2,2]输入数组表示数字 4321。[1]原创 2023-09-05 20:17:54 · 495 阅读 · 2 评论 -
【力扣每日一题04】数组篇--搜索插入位置
今天的题目,利用的是二分查找原理。很不幸我又没做出来,但是也很高兴发现自己的不足~原创 2023-09-04 09:00:31 · 619 阅读 · 3 评论 -
【力扣每日一题03】数组篇--移除元素
坚持日更第三天,习惯逐渐养成了,这两天都期待着每日的刷题写博客环节~原创 2023-09-03 11:20:50 · 283 阅读 · 1 评论 -
【力扣每日一题01】两数之和
力扣每日一题01原创 2023-09-01 18:28:00 · 2091 阅读 · 5 评论