首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
算法练习60天
dream_zzz
创建于2024-03-06
订阅专栏
包含了150多道算法,按照顺序,从数组,链表,二叉树,动态规划,单调栈等,希望对于前端的面试和工作有最大的帮助
暂无订阅
共52篇文章
创建于2024-03-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
算法练习day32
一、单调递增的数字 找到非单调递增的位置,把该位置减1,然后把后序的位置都改为9 二、监控二叉树 局部最优:让叶子节点的父节点安装摄像头,摄像头最少,全局最优 思路:从叶子节点往上遍历,后序遍历,左右
算法练习day38
一、完全背包 有n件物品,每件物品有无限多个,一个最多能背W的背包,第i件物品的重量为weight[i],价值为value[i],求将哪些物品放入背包,得到的价值总和最大 01背包和完全背包的唯一不同
算法练习day42
一、买卖股票的最佳时机 暴力解法 时间复杂度On^2,空间复杂度O1 贪心解法 时间复杂度On,空间复杂度O1 取最左最小值,取最后最大值,得到的差值就是最大利润 动态规划 五部曲 确定dp数组含义,
算法练习day47
一、判断子序列 字符串的子序列是原始字符串删除一些(或不删除)字符,不改变剩余字符相对位置的新字符串 五部曲 确定dp数组的含义,dp[i][j],代表下标i-1j结尾的字符串s,和下标j-1结尾的字
算法练习day49
回文子串 暴力解法 两层for循环,遍历区间起始位置和终止位置,还需一层遍历判断这个区间是不是回文,时间复杂度是On^3 动态规划 五部曲 确定dp数组,基于回文的特性,我们需要把dp数组定义成二维d
算法练习day8
KMP kmp算法只要用在字符串匹配上,当字符串不匹配时,可以知道一部分之前已经匹配的文本内容,避免从头再去匹配 如何记录已经匹配的文本内容,就是kmp算法的重点 前缀表 前缀:不包含最后一个字符的以
算法练习day11
一、滑动窗口最大值 问题要点 通过长度为窗口大小的单调递减队列,保证队尾为队列的最大值 push的思路:如果入队的元素大于队首的元素,则不断出队,知道遇到大于当前元素 pop的思路:如果窗口要移除的元
算法练习day14
递归法三步走 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 一些概念 二叉树节点的深度 从根节点到该节点的最长简单路径边的条数或节点数 二叉树节点的高度 从该节点到叶子节点的最长简单路
算法练习day33
一、动态规划理论基础 动态规划,dynamic programming,dp,解决重叠子问题 和贪心的区别在于,动态规划的每个状态是由上一个状态推导出来的,贪心则没有状态推导,而是直接从局部直接选择最
算法练习day35
一、整数拆分 五部曲 dp[i]代表数字i,拆分后得到的最大乘积 递归公式:有两种方式得到dp[i],j * (i - j) 拆两个,或者j * dp[i-j],拆两个以上,dp[i] = Math.
算法练习day1
一、数组理论基础 数组是存储相同类型元素且在内存地址上连续的集合 数组可以方便的根据下标索引获取对应的数据 数组在删除或者添加元素时,需要移动其他元素的地址 二、二分查找 问题要点 二分查找的关键是根
算法练习day5
一、哈希表理论基础 哈希表是根据关键码的值而直接进行访问的数据结构 哈希函数:通过特殊的编码方式把关键码转为可以映射到哈希表的索引 哈希碰撞:不同的关键码映射到同一个索引位置 拉链法: 当哈希函数得到
算法练习day13
一、层序遍历 二叉树的层序遍历2 二叉树的右视图 二叉树的层平均值 N叉数的层序遍历 在每个树行中找最大值 填充每个节点的下一个右侧节点指针 二叉树的最大深度 二叉树的最小深度 二、翻转二叉树 递归法
算法练习day25
一、非递减子序列 每一层通过一个set去重 二、全排列 排列是有序的,所以不用startIndex 三、全排列2 used[i - 1] == true,说明同一树枝nums[i - 1]使用过 us
算法练习day29
一、K次取反后最大化的数组和 局部最优,将绝对值大的负数变为正数,如果k大于0,将数值最小的正整数反转 二、加油站 暴力解法 如果剩余油量总和小于0,则不可能跑完一圈 如果剩余最小油量大于0,则返回0
算法练习day34
一、不同路径 五部曲 确定dp数组,dp[i][j]表示从0,0出发到i,j的不同路径 确定地推公式,从两个方向dp[i][j] = dp[i-1][j] + dp[i][j-1] dp初始化,dp[
算法练习day36
一、01背包 1. 二维dp数组01背包 有n件物品和1个最多能背重量w的背包,第i件物品的重量是weight[i],得到的价值为value[i],每件物品只能用一次,求解将哪些物品装入背包里物品价值
算法练习day4
一、两两交换链表中的节点 问题要点 要清晰多个指针的意义,其中temp用来判断和指向后面的两个节点,然后实现两两交换 二、删除链表的倒数第N个节点 问题要点 思路是快慢指针,快指针先走n步,然后慢指针
算法练习day10
一、有效的括号 二、删除字符串中的所有相邻重复项 三、逆波兰表达式求值 逆波兰表达式是一种后缀表达式,运算符写在后面
算法练习day22
一、组合总数3 二、电话号码的字母组合 数字和字母要有个映射,根据数字决定遍历深度,每个数字映射的字母列表决定遍历宽度,每个字母列表都是不用的集合,跟之前的组合问题不同,所以不需要startIndex
下一页