自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Day1.3 977.有序数组的平方

再对新数组进行非递减排序,顺便rolll一下排序方法的底层实现。先用一个for循环把数组中的元素平方一下再放回原位置;平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]组成的新数组,要求也按。

2023-12-23 07:21:41 363 1

原创 代码随想录Day13--回溯算法专题

47.全排列IIreturn res;return;//层去重i++) {continue;if (used[i] == true)//枝去重continue;//记录元素90.子集IIi++){continue;40.组合总和IIi++){continue;

2023-10-11 06:57:12 178

原创 代码随想录Day14--贪心算法专题

贪心一般解题步骤: 参见《代码随想录——什么时候用贪心》贪心算法一般分为如下四步:这个四步其实过于理论化了,我们平时在做贪心类的题目 很难去按照这四步去思考,真是有点“鸡肋”。做题的时候,只要想清楚 局部最优 是什么,如果推导出全局最优,其实就够了。说实话贪心算法并没有固定的套路。所以唯一的难点就是如何通过局部最优,推出整体最优。那么如何能看出局部最优是否能推出整体最优呢?有没有什么固定策略或者套路呢?不好意思,也没有! 靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。有同

2023-10-11 06:14:45 108

原创 代码随想录Day11--二叉树02-拓展题(难)

首先,我们需要找到要删除的节点。我们可以使用二叉搜索树的特性:对于任何节点 n,其左子树中的所有节点的值都小于 n,其右子树中的所有节点的值都大于 n。因此,要找到要删除的节点,我们可以从根节点开始,比较节点值,如果找到等于 key 的节点,就停止搜索。然后对左子树和右子树分别执行相同的操作,如果左子树和右子树都找到了节点,那么当前节点就是最近公共祖先,否则,最近公共祖先就是在左子树或右子树中找到的节点。对于二叉搜索树,每个节点的值都大于其左子树中的任何节点的值,并且小于其右子树中的任何节点的值。

2023-10-10 08:05:47 81 1

原创 代码随想录Day10--二叉树02-拓展

的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。给定一个二叉树,判断它是否是高度平衡的二叉树。,返回所有从根节点到叶子节点的路径。,翻转这棵二叉树,并返回其根节点。叶子节点是指没有子节点的节点。,求出该树的节点个数。是指没有子节点的节点。

2023-09-28 21:24:28 92

原创 代码随想录Day12——总结篇

大家以上题目都做过了,也一定要看如下阶段小结。每周小结都会对大家的疑问做统一解答,并且对每周的内容进行拓展和补充,所以一定要看,将细碎知识点一网打尽!本周小结!(二叉树系列一)(opens new window)本周小结!(二叉树系列二)(opens new window)本周小结!(二叉树系列三)(opens new window)本周小结!(二叉树系列四)(opens new window)在二叉树题目选择什么遍历顺序是不少同学头疼的事情,我们做了这么多二叉树的题目了,Carl给大家大体分分类。

2023-09-22 07:29:29 56

原创 代码随想录Day6--二叉树01

在我们解题过程中二叉树有两种主要的形式:满二叉树和完全二叉树。满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。什么是完全二叉树?完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。

2023-09-22 06:08:38 98

原创 代码随想录Day5--栈与队列专题

解题思路:使用双端队列来实现,队列中存储的是数组中的下标,每次遍历到一个新的数,首先判断队首的下标是否在窗口内,如果不在则将其弹出队列。然后,对于输入数组中的每个元素,如果它是一个操作符,我们就从栈中弹出两个元素,对它们执行相应的操作,然后将结果推回栈中。最后,栈中的唯一元素就是表达式的结果。我们遍历字符串中的每个字符,如果当前字符与栈顶元素相同,我们就弹出栈顶元素,并继续下一个字符。当进行出队操作时,如果输出栈为空,就将输入栈中的元素逐个弹出并压入输出栈中,这样输出栈的栈顶元素就是队列中的第一个元素。

2023-09-19 22:36:46 84

原创 代码随想录总结篇-双指针总结

本文中一共介绍了leetcode上十道使用双指针解决问题的经典题目,除了链表一些题目一定要使用双指针,其他题目都是使用双指针来提高效率,一般是将O(n^2)的时间复杂度,降为O(n)。

2023-09-17 23:59:22 100 1

原创 代码随想录Day4--字符串专题

注意在这个过程中,我们需要确保不会超出字符串的边界,所以使用了 Math.min 方法来确保 j 的值不会超过字符串的长度。最后,我们返回反转后的字符串,使用 StringBuilder 的 toString 方法实现。我们遍历所有可能的子串长度,如果字符串长度可以被子串长度整除,我们就检查剩余的部分是否可以由这个子串重复得到。如果可以,我们就返回 true,否则我们继续检查下一个可能的子串长度。如果在遍历过程中发现当前的单词不是最后一个单词(即其索引不是0),那么在添加单词后,还需要添加一个空格。

2023-09-14 01:10:06 92 1

原创 代码随想录Day3—哈希表专题

然后,我们遍历 ransomNote 中的每个字符,如果在 HashMap 中找到了这个字符,并且其可用的次数大于 0,我们就将 HashMap 中的可用次数减一,并将我们的 count 变量加一。该方法使用三个嵌套的循环来找出所有可能的三元组,并通过一个额外的循环来检查是否存在重复的组合。时间复杂度O(n2)解题思路:我们不断计算n的每个数字的平方和,并将结果赋给n,使用一个Set集合seen来存储已经看过的数,避免陷入无限循环,如果最终n等于1,就返回true。输出结果中的每个元素一定是 唯一 的。

2023-09-13 22:29:29 41

原创 代码随想录Day2.2–链表加强

其实这种情况和n为1的时候 效果是一样的,一样可以通过这个方法找到 环形的入口节点,只不过,index1 指针在环里 多转了(n-1)圈,然后再遇到index2,相遇点依然是环形的入口节点。解题思路:我们首先将第一个指针移动n+1个节点,然后我们移动两个指针,直到第一个指针到达链表的末尾,最后切记return dummy.next而不是return head。当两个指针相遇时,他们会指向相交节点的位置,如果两个链表没有交点,那么当一个链表遍历完后,另一个链表的指针会从头节点开始遍历。

2023-09-12 17:51:53 37

原创 代码随想录Day2.1—链表基础

给你一个链表的头节点head和一个整数val,请你删除链表中所有满足的节点,并返回。

2023-09-12 14:47:45 32

原创 代码随想录Day1.5—leetcode.209 && leetcode.59

在一种暴力的解法就是两层for循环:for(int i=0;)+双层for循环,但是时间复杂度来到了O(n2),进阶要求满足不了。的子数组,考虑用滑动窗口,不断调节子序列的首位指针使长度最小。如果做题目不为了做到进阶,那跟咸鱼有什么区别 ,继续努力~解题思路:题目需要的是大于等于target的。最容易想到的方法,利用双指针(双指针思路类。所有元素,且元素按顺时针顺序螺旋排列的。如果不存在符合条件的子数组,返回。个正整数的数组和一个正整数。组成的新数组,要求也按。

2023-09-10 20:22:12 67

原创 代码随想录Day1.3 数组题拓展

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。且题目只要求找到目标值或给出目标值在数组中被顺序插入的位置,并不需要真的把目标值插入到数组中。第一次写的跑错的代码,主体还是用二分法,如下:只通过了部分测试用例。于是当目标值在数组中不存在时,不再返回-1,而是返回left。再加上非递减顺序排列数组——自然而然要想到用。你必须设计并实现时间复杂度为。

2023-09-07 22:52:22 33

原创 代码随想录day1.2——移除元素

27.移除元素 leetcode——循序渐进三种解法

2023-09-06 23:39:56 35 1

原创 代码随想录Day1.1--二分查找

因为一旦有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件,代码如下。有很多错误(用的是左闭右开区间),不过没有考虑目标值在数组中找不到,返回-1的情况。改进一:A出来了,要考虑分区的不变量,我用的是左闭右闭区间[start, end]改进二:用下左闭右开区间[left, right)2 不存在nums中,因此返回 -1。,如果目标值存在返回下标,否则返回。9 出现在nums中并且下标为4。个元素有序的(升序)整型数组。

2023-09-06 21:47:33 52 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除