自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 209-长度最小的子数组

【代码】209-长度最小的子数组。

2024-07-01 03:42:32 217

原创 977-有序数组的平方

【代码】977-有序数组的平方。

2024-07-01 02:31:02 511

原创 27-移除元素

【代码】27-移除元素。

2024-07-01 02:21:02 196

原创 704-二分查找

【代码】704-二分查找。

2024-07-01 01:20:55 354

原创 代码随想录第42天:动态规划part04

【代码】代码随想录第42天:动态规划part04。

2024-05-17 17:18:05 180

原创 代码随想录第41天: 动态规划part03

【代码】代码随想录第41天: 动态规划part03。

2024-05-14 15:30:06 192

原创 代码随想录第39天: 动态规划part02

【代码】代码随想录第39天: 动态规划part02。

2024-05-13 21:31:52 202

原创 代码随想录第38天: 动态规划part01

【代码】代码随想录第38天: 动态规划part01。

2024-05-13 20:24:17 228

原创 代码随想录第37天:贪心part06

【代码】代码随想录第37天:贪心part06。

2024-05-12 17:52:29 451

原创 代码随想录第36天:贪心part05

【代码】代码随想录第36天:贪心part05。

2024-05-12 17:06:09 172

原创 代码随想录第35天:贪心part04

【代码】代码随想录第35天:贪心part05。

2024-05-11 05:08:11 230

原创 代码随想录第34天: 贪心part03

【代码】代码随想录第34天: 贪心part03。

2024-04-25 02:59:42 353 1

原创 代码随想录第32天: 贪心part02

【代码】代码随想录第32天: 贪心part02。

2024-04-21 21:13:19 230

原创 代码随想录第31天: 贪心part01

【代码】代码随想录第31天: 贪心part01。

2024-04-21 17:38:22 192

原创 代码随想录第30天: 回溯总结

排列问题:N个数按一定规则全排列,有几种排列方式。子集问题:一个N个数的集合里有多少符合条件的子集。组合问题:N个数里面按一定规则找出k个数的集合。切割问题:一个字符串按一定规则有几种切割方式。棋盘问题:N皇后,解数独等等。

2024-04-21 15:29:12 163

原创 代码随想录第29天: 回溯part05

【代码】代码随想录第29天: 回溯part05。

2024-04-18 20:31:19 158

原创 代码随想录第28天: 回溯part04

【代码】代码随想录第28天: 回溯part04。

2024-04-18 02:03:46 115

原创 代码随想录第27天: 回溯part03

【代码】代码随想录第27天: 回溯part03。

2024-04-16 03:49:45 112

原创 代码随想录第25天: 回溯part02

【代码】代码随想录第24天: 回溯part02。

2024-04-14 23:49:38 113

原创 代码随想录第24天: 初识回溯

【代码】代码随想录第24天: 初识回溯。

2024-04-13 21:43:13 145

原创 代码随想录第23天: 二叉树完结

【代码】代码随想录第23天: 二叉树完结。

2024-04-12 22:49:03 175

原创 代码随想录第22天:二叉树part08

【代码】代码随想录第22天:二叉树part08。

2024-04-11 21:37:08 229

原创 代码随想录第21天: 二叉树part07

【代码】代码随想录第21天: 二叉树part07。

2024-04-10 03:19:04 250

原创 代码随想录第二十天: 二叉树part06

【代码】代码随想录第二十天: 二叉树part06。

2024-04-09 02:38:29 307

原创 代码随想录第18天: 二叉树part05

【代码】代码随想录第18天: 二叉树part05。

2024-04-07 21:50:27 278

原创 关于递归和回溯的思考

两种方式都是在尝试找到一条从当前节点到叶子节点的路径,使得路径上节点值的总和等于给定的目标和。换句话说,每一层递归都有自己的变量环境,这些变量环境是相互独立的,所以不需要显式地进行回溯操作来恢复之前的状态。这种需要显式回溯的方式给状态管理带来了额外的复杂性,但它也提供了更大的灵活性,因为它允许你在同一层递归中多次修改和恢复状态。,这个值在这个新的调用栈中是固定的,不会因为其他递归调用的结果而改变。第二种方式中不需要回溯,因为它在每次递归调用时都传递了一个新的目标和,而不是直接修改原有的目标和。

2024-04-07 21:29:33 428

原创 代码随想录第17天: 二叉树part04

【代码】代码随想录第17天: 二叉树part04。

2024-04-06 21:51:40 123

原创 代码随想录第十六天: 二叉树part03

【代码】代码随想录第十六天: 二叉树part03。

2024-04-05 03:03:03 362

原创 代码随想录第15天: 二叉树part02

【代码】代码随想录第15天: 二叉树part02。

2024-04-04 20:52:46 151

原创 代码随想录第14天: 二叉树的前中后序遍历

【代码】代码随想录第14天: 二叉树的前中后序遍历。

2024-04-02 20:55:50 114

原创 代码随想录第13天: 单调队列和小顶堆

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。输入: nums = [1,1,1,2,2,3], k = 2。给定一个非空的整数数组,返回其中出现频率前 k 高的元素。输入: nums = [1], k = 1。返回滑动窗口中的最大值。, n 是数组的大小。

2024-04-01 23:15:41 315

原创 代码随想录第11天: 栈的应用

例如:4 + 13 / 5,这就是中缀表达式,计算机从左到右去扫描的话,扫到13,还要判断13后面是什么运算符,还要比较一下优先级,然后13还和后面的5做运算,做完运算之后,还要向前回退到 4 的位置,继续做加法,你说麻不麻烦!所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。每个运算对象可以是整数,也可以是另一个逆波兰表达式。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串,判断字符串是否有效。

2024-03-31 19:55:40 1842

原创 代码随想录第10天:栈和队列基础操作

接口定义的方法之一,用于将指定的元素插入到队列中(如果可以立即这样做而不违反容量限制),如果队列已满,则返回。但是依然还是要用两个队列来模拟栈,只不过没有输入和输出的关系,而是另一个队列完全用来备份的!的同学可能依然想着用一个输入队列,一个输出队列,就可以模拟栈的功能,仔细想一下还真不行!所以用栈实现队列, 和用队列实现栈的思路还是不一样的,这取决于这两个数据结构的性质。它用于检索并删除队列的头部元素,如果队列为空,则返回。使用栈来模式队列的行为,如果仅仅用一个栈,是一定不行的,所以需要两个栈。

2024-03-29 14:33:29 1161 1

原创 代码随想录第九天: 字符串完结

这与C语言的 strstr() 以及 Java的 indexOf() 定义相符。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。示例 2: 输入: haystack = “aaaaa”, needle = “bba” 输出: -1。示例 1: 输入: haystack = “hello”, needle = “ll” 输出: 2。

2024-03-29 12:25:16 602 1

原创 代码随想录第八天: 字符串的基本操作

给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。一些同学会使用split库函数,分隔单词,然后定义一个新的string字符串,最后再把单词倒序相加,那么这道题题目就是一道水题了,失去了它的意义。想一下,我们将整个字符串都反转过来,那么单词的顺序指定是倒序了,只不过单词本身也倒序了,那么再把单词反转一下,单词不就正过来了。因为字符串也是一种数组,所以元素在内存中是连续分布,这就决定了反转链表和反转字符串方式上还是有所差异的。

2024-03-27 23:30:17 1086 1

原创 代码随想录第七天: 哈希表Part02

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n。这么写就是当前使用 nums[i],我们判断前一位是不是一样的元素,在看 {-1, -1 ,2} 这组数据,当遍历到 第一个 -1 的时候,只要前一位没有-1,那么 {-1, -1 ,2} 这组数据一样可以收录到 结果集里。

2024-03-27 05:11:01 962 1

原创 代码随想录第六天: 哈希表(数组+HashSet+HashMap)

为什么会想到用哈希表哈希表为什么用map本题map是用来存什么的map中的key和value用来存什么的把这四点想清楚了,本题才算是理解透彻了。很多录友把这道题目 通过了,但都没想清楚map是用来做什么的,以至于对代码的理解其实是 一知半解的。// 注意Map的创建方法i++) {// 注意Map中如何查找key是否存在res[1] = i;// 注意Map如何通过key查找valuebreak;// 注意Map如何添加元素return res;

2024-03-25 20:25:25 2357 1

原创 代码随想录第四天 链表Part02

双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。此时我们就可以比较curA和curB是否相同,如果不相同,同时向后移动curA和curB,如果遇到curA == curB,则找到交点。我们求出两个链表的长度,并求出两个链表长度的差值,然后让curA移动到,和curB 末尾对齐的位置。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

2024-03-23 15:00:13 887

原创 代码随想录第三天: 链表(虚拟头节点+基本操作实现)

/ 结点的值int val;// 下一个结点// 节点的构造函数(无参)// 节点的构造函数(有一个参数)// 节点的构造函数(有两个参数)

2024-03-22 13:51:19 893 1

原创 代码随想录第二天-滑动窗口+相向双指针+模拟

这里一圈下来,我们要画每四条边,这四条边怎么画,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。可以发现这里的边界条件非常多,在一个循环中,如此多的边界条件,如果不按照固定规则来遍历,那就是。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。数组其实是有序的, 只不过负数平方之后可能成为最大数了。

2024-03-21 15:55:39 850 1

空空如也

空空如也

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

TA关注的人

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