首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法练习60天
dream_zzz
创建于2024-03-06
订阅专栏
包含了150多道算法,按照顺序,从数组,链表,二叉树,动态规划,单调栈等,希望对于前端的面试和工作有最大的帮助
暂无订阅
共52篇文章
创建于2024-03-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法练习day44
一、买卖股票的最佳时机含冷冻期 五部曲 确定dp数组,dp[i][j],第i天状态为j,最多现金,有四种状态 状态1,持有股票,今天买入,或者之前就买入,现在持有 不持有股票 状态2,保持卖出股票的状
算法练习day45
一、最长递增子序列 子序列,由数组派生而来,删除数组中的元素而不改变其余元素的顺序 五部曲 dp数组含义,dp[i],表示i之前的以nums[i]结尾的最长递增子序列的长度 状态转移方程 dp[i]的
算法练习day50
一、每日温度 通常是一维数组,要寻找任意一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要用到单调栈了,时间复杂度为On 单调栈 单调栈的本质是空间换时间,用一个栈来记录我们遍历过的
算法练习day51
一、下一个更大元素2 循环数组,索引对数组长度取余,模拟循环数组的遍历 二、接雨水 暴力解法 按照列计算比较容易理解 每一列雨水的高度,取决于该列左侧最高的柱子和该列右侧最高的柱子中最矮的那个和该列的
算法练习day6
一、四数相加2 问题要点 把数组a和b的所有求和情况存入哈希表中,然后从c和d的所有求和情况中寻找是否有0 -(a+b),并累计总数 二、赎金信 问题要点 哈希法:用数组作为magazine字母的出现
算法练习day9
栈是先进后出,队列是先进先出 一、用栈实现队列 问题要点 栈来模拟队列,需要用到两个栈,输入栈和输出栈,输入的话,往输入栈 push 即可,输出的情况需要判断,如果输出栈有值,则直接 pop,否则,把
算法练习day40
一、单词拆分 回溯法 回溯法在递归过程中会有很多重复计算,所以用一个memory对象记录从startIndex起始的计算结果,如果结果为false则直接返回false 时间复杂度为O(2^N),每个单
算法练习day3
一、链表基础 链表是不同节点通过指针串联在一起的线性结构,每个节点存储了数据和指向某个节点的指针 链表包含单链表,双链表,循环链表 单链表的每个指针指向节点的下一个节点 双链表的每个节点包含了两个指针
算法练习day15
一、平衡二叉树 递归法,后序 高度只能从下往上找,所以必须用后序遍历,左右中 二、二叉树的所有路径 求根节点到叶子节点的路径,所以需要前序遍历 回溯思路,记录的路径需要回退再进入另一个路径,递归和回溯
算法练习day28
一、买卖股票的最佳时机2 局部最优:收集每天的正利润 全局最优:求得最大利润 二、跳跃游戏 局部最优:每次取最大跳跃步数 整体最优:最后得到整体最大覆盖范围,能否覆盖终点 三、跳跃游戏2 统计两个覆盖
算法练习day23
一、组合总和 该题的递归深度不固定,元素可以重复,所以单层遍历的时候不需要通过startIndex避免重复 二、组合综合2 递归问题可以看做是一个树,因为集合可能有重复的元素,但是结果中的组合不能重复
算法练习day26
一、重新安排行程 出发地和目的地可能是相同,所以需要去重 二、N皇后 每一行确定Q的位置,终止条件为row===n 三、解数独 相比于N皇后,数独问题需要双重循环递归
算法练习day37
一、最后一块石头的重量2 该题的思路是把一堆石头分为重量尽量相同的两堆,这样两堆相撞后剩下的石头最小,这个又可以装换位01背包的问题 五部曲 dp[j],大小为j的背包,最多可以容纳多少重量的石头 递
算法练习day46
一、最长公共子序列 这里的子序列和上一题的子数组不同点在于,这里的子序列不要求连续,只要求相对顺序 五部曲 确定dp数组以及含义,dp[i][j],表示0到i-1,的字符串text1和0到j-1的字符
算法练习day48
一、两个字符串的删除操作 和不同的子序列相比,两个字符串都可以删除了 五部曲 确定dp数组含义,dp[i][j]以i-1结尾的字符串word1和以j-1结尾的字符串word2,想到达到相等,需要删除元
算法练习day7
一、反转字符串 直接双指针 二、反转字符串2 先把字符串转为数组,遍历的时候间隔为2 * k,然后反转前k个 三、翻转字符串里的单词
算法练习day19
一、二叉搜索树的最近公共祖先 利用二叉搜索树的有序特性特性 递归法 迭代法 二、二叉搜索树中的插入操作 带返回值的递归 不带返回值的递归 三、删除二叉搜索树中的节点 要注意节点删除的各种情况 递归法
算法练习day20
一、修剪二叉搜索树 当发现节点的值小于最小值,还需要判断该节点的右节点 当发现节点的值大于最大值,还需要判断该节点的左节点 递归法 二、将有序数组转为二叉搜索树 递归法 迭代法 用两个队列分别代表当前
算法练习day31
一、无重叠区间 右边界排序,寻找最多非重叠区间 左边界排序,寻找最少重叠区间 左边界排序简化写法 二、划分字母区间 如果找到遍历过的所有字母的最远边界,则说明这个边界就是分割点了 三、合并区间 通过排
算法练习day41
一、打家劫舍 当前房屋偷与不偷,取决于前一个房屋和前两个房屋是否被偷 五部曲 dp[i],表示i以内的房屋,最多可以偷窃的金额 确定递推公式,dp[i] = Math.max(dp[i-2] + nu
下一页