自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录day41||● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

【代码】代码随想录day41||● 01背包问题,你该了解这些!● 01背包问题,你该了解这些!滚动数组 ● 416. 分割等和子集。

2024-03-12 21:29:08 533

原创 代码随想录day40||● 343. 整数拆分 ● 96.不同的二叉搜索树

我们在求递推公式的时候(无头绪时)可以自己先手动模拟一下1、2、3的规律·

2024-03-09 21:07:52 477

原创 代码随想录day39||● 62.不同路径 ● 63. 不同路径 II

总结:dp数组不要想复杂了,首先找到最普遍规律,然后进行初始化,再确定遍历顺序。

2024-03-09 15:13:01 535

原创 代码随想录day39||● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

第一眼思路:看到卡哥提示说可以按照样例模拟一下规律,发现上到第四层就是上到两层+2阶或者是上到三层+1阶。第一眼思路,就是用递归方法写出题解,但是这样所耗费的时间和空间太大了。vector<T> v(n)形式,v包含n 个值初始化的元素。其实这题初始化算到dp[2]就可以了。1、理论基础:动态规划五部曲。(1)dp数组以及下标的含义。(3)dp数组如何初始化。

2024-03-09 10:43:08 503

原创 代码随想录day37||● 738.单调递增的数字 ● 968.监控二叉树 ● 总结

【代码】代码随想录day37||● 738.单调递增的数字 ● 968.监控二叉树 ● 总结。

2024-03-08 23:31:40 479

原创 代码随想录day36|● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

【代码】代码随想录day36|● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间。

2024-03-04 21:54:12 383

原创 代码随想录day34||● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球

【代码】代码随想录day34||● 860.柠檬水找零 ● 406.根据身高重建队列 ● 452. 用最少数量的箭引爆气球。

2024-03-03 20:10:55 393

原创 代码随想录day32||1005.K次取反后最大化的数组和 ● 134. 加油站● 135. 分发糖果

【代码】代码随想录day32||1005.K次取反后最大化的数组和 ● 134. 加油站● 135. 分发糖果。

2024-03-02 20:44:57 372

原创 代码随想录day32||● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

【代码】代码随想录day32||● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II。

2024-03-01 23:41:10 433

原创 代码随想录day31||● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

通过记录峰值,并考虑三种特殊情况 首尾 平坡 单调平坡。

2024-02-29 23:25:50 362

原创 代码随想录

今日是总结,简单的将总结内容看了一下。

2024-02-29 20:29:54 384

原创 代码随想录day29|| 491.递增子序列 46.全排列 47.全排列 II

【代码】代码随想录day29|| 491.递增子序列 46.全排列 47.全排列 II。

2024-02-27 23:27:56 447

原创 代码随想录day27||● 93.复原IP地址 ● 78.子集 ● 90.子集II

【代码】代码随想录day27||● 93.复原IP地址 ● 78.子集 ● 90.子集II。

2024-02-26 23:57:48 397

原创 代码随想录day26||● 39. 组合总和● 40.组合总和II● 131.分割回文串

【代码】代码随想录day26||● 39. 组合总和● 40.组合总和II● 131.分割回文串。

2024-02-26 21:41:02 400

原创 d代码随想录训练营day25||● 216.组合总和III● 17.电话号码的字母组合

第一眼思路:将for循环中i限制到9,加个sum来计算哪些符合条件,但是不知道当size合适,sum不合适,该如何处理。

2024-02-23 17:32:13 367

原创 代码随想录训练营day24||● 理论基础 ● 77. 组合

回溯搜索法:组合,切割字符串,子集,排列,棋盘问题(N皇后,解数独)

2024-02-22 20:29:38 450

原创 代码随想录训练营day23||● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇

【代码】代码随想录训练营day23||● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树 ● 总结篇。

2024-02-21 22:21:30 362

原创 代码随想录day22||● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点

【代码】代码随想录day22||● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点。

2024-02-20 22:54:57 405 1

原创 代码随想录训练营day20||530.二叉搜索树的最小绝对差 501.二叉搜索树中的众数 236.二叉树的最近公共祖先

后序遍历,自底向上返回。

2024-02-20 17:44:04 401 1

原创 代码随想录训练营day19||654.最大二叉树 617.合并二叉树 700.二叉搜索树中的搜索 98.验证二叉搜索树

凡是构造二叉树的用前序遍历。

2024-02-18 20:36:56 407 1

原创 代码随想录训练营day18|513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树

【代码】代码随想录训练营day18|513.找树左下角的值● 112. 路径总和 113.路径总和ii● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树。

2024-02-17 22:11:51 397 1

原创 代码随想录训练营day17|110.平衡二叉树 257.二叉树的所有路径 404.左叶子之和

第一眼思路:使用前序遍历,但是不知道怎么将遍历中的过程存储起来。

2024-02-15 20:18:18 416 1

原创 代码随想录训练营day16|104.二叉树的最大深度,111.二叉树的最小深度222.完全二叉树的节点个数

二叉树的高度是指每层结点到叶子结点的距离(从下往上,后序遍历),而二叉树的深度(前序遍历)是每个节点到根节点的距离,根节点的高度其实就是二叉树的最大深度。第一眼思路:利用层序遍历统计节点的个数;

2024-02-13 18:57:40 384 1

原创 代码随想录训练营day15||层序遍历,226.翻转二叉树,101.对称二叉树

第一眼思路:只存储遍历过程中的右节点,但是只能通过一些案例,后来发现可能会出现右子树无节点,左子树还有节点,这种情况会漏掉:去网上参考了一些大佬的写法,发现是只将每一层的最后一个节点存储起来就好了。第一眼:不知道为什么很多学过的东西,知道学过但是想不出思路,所以我先打开卡哥的视频,然后自己写了一遍代码。跟上一题一样,最后翻转数组,注意翻转数组是reverse(res.begin(),res.end());如果遍历到叶子节点(即他的左右节点都为null时),即为最小层数。其实就是统计层数(内循环的次数)

2024-02-12 19:54:08 414 1

原创 代码随想录训练营day14||理论基础,递归遍历,迭代遍历,统一迭代

【代码】代码随想录训练营day14||理论基础,递归遍历,迭代遍历,统一迭代。

2024-02-07 14:43:01 399 1

原创 day13||239滑动窗口的最大值,347前K个高频元素

【代码】day13||239滑动窗口的最大值,347前K个高频元素。

2024-02-05 23:15:42 339 1

原创 代码随想录训练营day11||20.有效的括号,1047删除字符串中所有相邻的重复项,150逆波兰表达式求值

直接用 = 赋值的话,会先将后面的内容创建一个临时的字符串来存储,之后再复制到前面的变量。这个过程涉及到了内存的分配和赋值,如果是在循环中多次执行可能就会导致大量的临时字符串对象创建,导致出现问题。写的时候漏了一种情况就是当栈顶元素和我们要加入栈的元素不同时,要将新元素入栈,以及后面如上代码会超出时间限制,以及关于字符串的函数不熟练(反转字符串)。上网查了一下,发现还有stoi,stof,stod,分别是将字符串转化为整形,浮点型,double型。

2024-02-03 19:01:08 428 1

原创 代码随想录训练营day10|理论基础,232用栈实现队列,225用队列实现栈

【代码】代码随想录训练营day10|理论基础,232用栈实现队列,225用队列实现栈。

2024-02-02 22:13:30 378 1

原创 day9||字符串总结,双指针回顾,实现Strstr,重复的字符串

2、替换空格:1、先将数组扩充,然后再从后往前替换空格//注意:很多数组(字符串)填充类问题可以预先将数组扩充为所需要的大小,然后再从后往前进行操作。双指针可以极大地降低时间复杂度,用一个for循环完成两个for循环的工作,可以用于数组移除元素,链表移除元素(在不开辟额外空间),还可以用来翻转链表。1、可以翻转字符串(写一个自定义翻转字符串的函数),两个指针一个从前往后,一个从后往前,交换元素。

2024-02-02 10:06:18 378 1

原创 代码随想录day8||344反转字符串,541反转字符串||,卡码网:54替换数字,151.翻转字符串里面的单词,卡码网:55.右旋转字符串

收获:(搬一下卡哥的原话)很多数组填充类问题,做法是预先先给数组扩容到填充后的大小,然后再从后往前进行操作。第一眼思路:通过双指针将字符串进行翻转。只能说这个思路真的是妙啊。

2024-02-01 15:48:47 663 1

原创 代码随想录训练营|day7|454.四数相加|| 383.赎金信 15.三数之和 18.四数之和

【学透哈希表,map使用有技巧!LeetCode:454.四数相加II】https://www.bilibili.com/video/BV1Md4y1Q7Yh?在上一题的基础上加一层循环,对于剪枝不能简单的判断,要注意到两个负数相加会比原来小;第一眼思路:无思路,可能就是想着暴力解法,看完卡哥思路,简直是太妙了。

2024-01-31 13:58:18 698

原创 代码随想录训练营day6| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和

第一眼思路:用unordered_set统计每个字母出现的频率,再比较是否相同,但是不太会用容器,直接上视频。我的想法是先用一个容器将出现过的数储存起来,然后遍历另外一个数组,如果有在容器中出现过,就证明它的相交的元素。//如何对一个容器进行初始化,以及如何将这个容器转化为vector,如何查询元素;

2024-01-29 21:29:38 869

原创 代码随想录算法训练营第四天| ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II

看了卡哥的视频,简直就是绝妙!通过利用双指针,一个快指针,一个慢指针,快指针先走n步,再快慢指针同时走,等到快指针走到null时,慢指针走了count-n,就是。=NULL是判断偶数节点的终止条件,cur->next->next!=NULL是判断奇数节点的。思路:统计链表的长度,然后找到我们要删除哪一个元素(跳过即可),虽然我知道这是很幼稚的方法,但是我还是写了。第一眼思路:有思考出交换顺序,可是没有想到如何将切断的点储存起来,以及循环判断条件。

2024-01-29 11:24:45 978

原创 代码随想录算法训练营第三天:203移除链表元素

【手把手带你学会操作链表 | LeetCode:203.移除链表元素】https://www.bilibili.com/video/BV18B4y1s7R9?【帮你把链表操作学个通透!第一眼:不就是以前学过的链表删除结点吗,一通写下来发现执行错误,感觉主要是考虑两个问题 一个就是如果删除的是头结点该怎么解决(我是联想卡哥说用的虚拟头结点),第二个就是如何返回头结点。困难:我一般写代码时C++和C混用,这次出问题了,C++中申请内存要用new,不能用malloc,今天写了好久,加油加油。

2024-01-26 23:03:07 528 1

原创 代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵||

第一眼:设置一个新数组,然后将所有数平方后用快排,即得出结果,然后思考如何用双指针和这题联系起来,想着昨天的办法,(在原来数组的基础上更新),但是没想出来,直到看视频,卡哥说用一个新数组来记录,就想到解法了。● vector<int> values(n, t) : 创建大小为 n 的vector,且值均为 t。无思路,看完暴力解法后,豁然开朗,但是自己写出来发现运行时间超时了,所以直接看视频,ok,懂了;今天又是拖延,熬夜写完,这样效率真的不高,还影响学习心情,明天决定在晚上九点前写完。

2024-01-26 01:02:59 517 1

原创 代码随想录算法训练营第一天1.24| 704. 二分查找、27. 移除元素

在debug过程中发现我的方法,我的第一层循环中的i会一直增加,甚至会跳过我所需要的元素;在删去元素时,i是保持不变的,接下来发现随着我元素的删去,size也是会变化的,于是我就去看了随想录;第一想法:第一眼将自己学过的二分法的代码背下来,但是写的时候对于while中条件的处理到底要用<=,<并不是非常确定,对于下面中if中如何更新区间也是·迷迷糊糊,侥幸填对了。并学习快慢指针,其实本质就是覆盖原来的数组,感觉还是很好理解的,但是为啥自己没想粗来呢,感觉写的时候,通过画图,可以更好的理解答案;

2024-01-25 00:36:04 930 1

原创 数据结构 栈 郊游

摩乐乐和他的朋友想出去郊游,他们现在有n座山(排成一行)可以选择,并且每座山的山顶都有独一无二的风景。当爬上某座山的山顶时,除了可以欣赏这座山本身的风景,还可以欣赏其他山顶的风景(只能看到比这座山高的风景,且因为视野影响可能只能看到高度单调递增的地方)。现在给出n座山的高度,请计算出爬上每座山的可以欣赏的风景的数量供摩乐乐和他的朋友选择。

2023-09-19 17:07:14 497 4

空空如也

空空如也

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

TA关注的人

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