![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode刷题
文章平均质量分 68
kirei12315
这个作者很懒,什么都没留下…
展开
-
贪心算法leetcode题目整理
思路:我们不知道跳几步,也不知道按照当前的最大步数跳过去是不是能满足要求,局部最优解是每到一个地方跳最大,也就是获取最大覆盖范围,整体最优是最后得到整体的最大覆盖范围。所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!如果移动下标达到了当前这一步的最大覆盖最远距离了,还没有到终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。你的目标是使用最少的跳跃次数到达数组的最后一个位置。原创 2023-03-06 21:41:23 · 77 阅读 · 0 评论 -
构造函数初始值(List和TreeNode)
【代码】构造函数初始值(List和TreeNode)原创 2023-02-16 23:15:38 · 89 阅读 · 0 评论 -
栈与队列leetcode刷题
题意其实就像我们在写代码的过程中,要求括号的顺序是一样的,有左括号,相应的位置必须要有右括号。思路:因为题目中提到反复删除重复项,还是考虑使用栈,遍历字符串入栈,判断字符串遍历的位置是否和栈内相等,如果相等就pop,如果不等就入栈。每个运算对象可以是整数,也可以是另一个逆波兰表达式。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。根据 逆波兰表示法,求表达式的值。原创 2023-02-15 22:04:28 · 75 阅读 · 0 评论 -
leetcode刷题字符串类问题
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输入: s = "abcdefg", k = 2。输入: "a good example"输入: "the sky is blue"输出: "umghlrlose"输出: "cdefgab"原创 2023-02-11 16:53:21 · 37 阅读 · 0 评论 -
哈希表常见题目
思路:只有小写字母,可以考虑使用数组的方法来进行,也就是使用record数组进行统计,s字符串出现字母,相应字母++,t字符串出现同样的字母,相应字母--;当然还有两个问题,一个是字母对应的acs码不知道,可以使用“字母i-"a""的思路,这样我们通过差值将asc码转换为数值。然后遍历另一个数组,如果能在这个无序set中,找到另一个数组中的元素,那么这个元素就是两个数组的公共元素了。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。原创 2023-02-07 23:10:32 · 221 阅读 · 0 评论 -
leetcode双指针法常见题目
移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。思路:通过两个指向均为第零个数值的双指针的不同快慢变化来进行选取删除数组,此题考验了双指针同一个开头的用法。移除元素给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。思路:和上一题一样,使用快慢指针,快指针先行遍历,遇到了不同的就把值赋值给慢的,注意赋值后快慢指针加一。原创 2023-02-06 00:34:19 · 43 阅读 · 0 评论 -
数组leetcode常见题目(二分查找篇)
二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。思路:简单的二分查找,通过left和right两侧的值求中间值,判断中间值和target的大小比较。注意点有两个,我本人喜欢采用左闭右闭的写作方法:left = 0;当target和mid不相等的时候,让left = mid+1,right= mid - 1。原创 2023-02-05 23:41:43 · 45 阅读 · 0 评论 -
链表经典题目
举个例子说,链表删除倒数第四个节点,也就是链表[12345678]里面的5,这个时候我们使用一个快慢指针,分别指向1和指向6,这样当指向6的指针指向空的时候,指向1的指针指向4,就可以删除第4-> next个数值,也就是删掉5。定义一个快慢指针,快的走两步,慢的走一步,快的和慢的一定会在环形区域相遇(前提是有环形区域),然后再相间的地方定义快的指针,从头结点定义慢的指针,两个一起遍历,相遇的地方就是我们要找的入环的第一个节点。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。原创 2023-02-05 00:17:33 · 116 阅读 · 0 评论 -
移除链表元素和设计链表
【代码】移除链表元素和设计链表。原创 2023-02-04 00:54:38 · 35 阅读 · 0 评论