- 博客(34)
- 收藏
- 关注
原创 代码随想录算法训练营第38天| 理论基础\509. 斐波那契数\70. 爬楼梯\746. 使用最小花费爬楼梯
动态规划简称DP,如果一个问题有很多重叠子问题那么使用动态规划是最有效的;动态规划中每一个状态是由上一个状态推导出来的。
2022-10-29 18:38:27 725
原创 代码随想录算法训练营第36天|435.无重叠区间、763.划分字母区间、56.合并区间
【代码】代码随想录算法训练营第36天|435.无重叠区间、763.划分字母区间、56.合并区间。
2022-10-26 17:27:59 93
原创 代码随想录算法训练营第35天|860.柠檬水找零、406.根据身高重建队列、452.用户最少数量的箭引爆气球
【代码】代码随想录算法训练营第35天|860.柠檬水找零、406.根据身高重建队列、452.用户最少数量的箭引爆气球。
2022-10-25 17:16:28 370
原创 代码随想录算法训练营第34天|1005.K次取反后最大化的数组和 、134. 加油站、135. 分发糖果
1005.K次取反后最大化的数组和 、134. 加油站、135. 分发糖果
2022-10-24 22:43:32 434
原创 代码随想录算法训练营第31天|455.分发饼干、376.摆动序列、53.最大子数组和
遍历数组并累计数组元素,不断记录累加出的最大值,如果累加和小于等于0的话就从头计算。
2022-10-24 15:18:57 536
原创 代码随想录算法训练营第28天|93.复原IP地址、78.子集、90.子集Ⅱ
【代码】代码随想录算法训练营第28天|93.复原IP地址、78.子集、90.子集Ⅱ。
2022-10-18 15:25:01 297
原创 代码随想录算法训练营第27天|39.组合总和,40.组合总和,131.分割回文串
【代码】代码随想录算法训练营第27天|39.组合总和,40.组合总和,131.分割回文串。
2022-10-18 11:00:57 296
原创 代码随想录算法训练营第25天|216.祝组合总和Ⅲ、17.电话号码的字母组合
【代码】代码随想录算法训练营第25天|216.祝组合总和Ⅲ、17.电话号码的字母组合。
2022-10-17 16:04:28 210
原创 【代码随想录算法训练营第23天|669.修剪二叉搜索树、 108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树】
【代码】【代码随想录算法训练营第23天|669.修剪二叉搜索树、 108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树】
2022-10-17 11:02:27 320
原创 【代码随想录算法训练营第22天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点】
【代码随想录算法训练营第22天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作 、450.删除二叉搜索树中的节点】
2022-10-17 10:59:21 300
原创 【代码随想录算法训练营第21天|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数 、236.二叉树的最近公共祖先】
【代码随想录算法训练营第21天|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数 、236.二叉树的最近公共祖先】
2022-10-17 10:56:52 339
原创 代码随想录算法训练营第20天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树
对于二叉搜索树的题优先考虑中序遍历。
2022-10-17 10:53:14 186
原创 代码随想录算法训练营第18天|513.找树左下角的值、110.路径总和、106.从总序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树
然后通过根节点确认在中序序列的位置,通过此根节点在中序序列的位置拆分出左右子序列。根据中序左右子序列的长度拆分后序的左右子序列。可以先从后续队列最后一个元素确定根节点。
2022-10-17 10:46:26 381
原创 代码随想录算法训练营第17天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和
【代码】代码随想录算法训练营第17天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和。
2022-10-17 10:36:50 162
原创 【代码随想录算法训练营第16天| 104.二叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数】
二叉树当前节点的深度:是指从根节点到该节点的最长路径边的条数或者节点数二叉树当前节点的高度:是指从该节点到叶子节点最长简单路径的条数或节点数。
2022-10-17 10:32:40 288
原创 【代码随想录算法训练营第15天|层序遍历,226.翻转二叉树,101.堆成二叉树 】
【代码】【代码随想录算法训练营第15天|层序遍历,226.翻转二叉树,101.堆成二叉树 】
2022-10-10 20:18:54 303
原创 代码随想录算法训练营第13天| 150. 逆波兰表达式求值,239. 滑动窗口最大值,347.前 K 个高频元素
然后实现自定义排序规则的优先级队列:小顶堆 将map中的元素按找从大到小的顺序放到队列中如果队列长度大于k就将最小的堆顶元素弹出。队列push元素时要判断入口处的元素是否小于新加入的元素。如果小于需要弹出,所以需要一个双端队列可以弹出首尾的元素。题目中时是计算前k个高频那么只需要保存次数大的前k个把小的弹出所以可以用小顶堆。遍历数组元素将元素出现次数放到map里key为元素,value为次数。自定义一个单调递增队列使得队列的出口处始终是有可能的最大值。时间复杂度:O(nlogk)时间复杂度O(n*k)
2022-10-10 20:08:26 112
原创 代码随想录算法训练营第11天|232.用栈实现队列,225. 用队列实现栈,20. 有效的括号,1047. 删除字符串中的所有相邻重复项
【代码】代码随想录算法训练营第11天|232.用栈实现队列,225. 用队列实现栈,20. 有效的括号,1047. 删除字符串中的所有相邻重复项。
2022-10-10 16:59:36 95
原创 代码随想录算法训练营第八天|344.反转字符串 、541. 反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串
【代码】代码随想录算法训练营第八天|344.反转字符串 、541. 反转字符串II、剑指Offer 05.替换空格 、151.翻转字符串里的单词、剑指Offer58-II.左旋转字符串。
2022-09-28 22:42:54 599
原创 代码随想录算法训练营第七天|454.四数相加Ⅱ、383.赎金信、15.三数之和、18.四数之和
实现中遇到的问题:第一次实现时分别记录了前两个数组和后两个数组的哈希表然后相加最后结果是多算了的,其实在遍历后两个数组时就是找后两个数组每次组合对应的前两个数组的所有可能所以不用记录两个数组了。四数\三数之和双指针解法就是把最后两位用指针的方法查找,也就是看对比暴力解法少了一层for循环。四数之和就是在三数之和的基础上外面再加一层for循环。时间复杂度:O(n^3)
2022-09-27 23:46:26 527
原创 代码随想录算法训练营第六天|242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和
当遇到需要判断一个元素是否存在与一个集合中的时候,就可以考虑使用哈希表处理。
2022-09-26 21:05:35 1029
原创 代码随想录算法训练营第四天|24.两两交换链表中的节点、19.删除链表倒数第n个节点、面试题 02.07链表相交、142.环形链表Ⅱ
题目中明确了链表长度不大于30,自己首先想到以空间换时间的方法:定义一个节点数组长度为31存储链表的每一个节点,这样算出要删除节点的前一节点的下下标即可删除,代码如下。使用快慢指针:快指针每次走两步,慢指针每次走一步如果有环的话两者一定会相遇;相遇点到环起点的长度一定是头到环起点的长度,所以同时从相遇点和起点开始两者相遇就是环起点。定义快慢双指针,快指针先多走n+1步然后同步前移,这样待快指针到达链表末尾慢指针就是要删除节点的上一个节点。经过前期锻炼现在现在看到题目首先能够想到双指针处理了,开心。
2022-09-25 18:47:19 1055
原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表
链表是通过指针链接成的一种链式结构,链表的每个节点都有两部分组成,一个是数据区一个是指针;最后一个节点指向空代表链表结束;这道题考察链表的删除操作,链表删除很简单就是找到将要删除的节点,把节点的前位节点指向后一位即可。如果链表最后一个节点指向头节点的话就是环形链表,循环链表可以用来解决约瑟夫环问题。最好是定义一个虚拟头节点接入链表头这样好操作,不用单独写一段头节点删除逻辑。需要注意将上一次的头节点与新的头节点连接,其它就是正常断开重新连接的操作了。链表有只指向下一节点的单链表和双向指向节点的双链表。
2022-09-23 20:22:32 1374
原创 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II
根据题目升序有符号数组所以大数只能在sou或者尾,可以在使用双指针法首尾对比把大数放在新数组尾端。首先想到的是暴力解法没想到leetcode能过。因为边界条件特别多所以很容易绕进去,应遵循。
2022-09-22 21:59:05 1734
原创 代码随想录算法训练营第一天|704.二分查找、27.移除元素
这道题短断断续续刷了n遍了,每次重新做都是搞不清边界处理,今天重新认真看了下代码随想录的题解,整理了以下两个痛点希望以后能刻在脑子里。菜鸡不看题解首先想到的时暴力双层遍历逐个删除…不过在代码实现上还是有些地方卡住了,并不是一下就考虑到的。java中是不连续的, 另外 java中内存是没有暴露的,寻址操作由JVM完成。将右边不等于目标值的元素 覆盖 左边等于目标值的元素。,可以使用二分法解决也符合时间复杂度O(logn)这里直接看的卡哥的题解,自己是没有想到的。
2022-09-21 20:27:07 2307 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人