首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
algo
asdsa
创建于2022-04-19
订阅专栏
算法
暂无订阅
共32篇文章
创建于2022-04-19
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
题组2
题目一 给定数组hard和money,长度都为N hard[i]表示i号的难度, money[i]表示i号工作的收入 给定数组ability,长度都为M,ability[j]表示j号人的能力 每一号工
状态压缩的动态规划
题目一 https://leetcode.cn/problems/can-i-win/description/ 题目二 TSP问题 有N个城市,任何两个城市之间的都有距离,任何一座城市到自己的距离都为
子数组达到规定累加和的最大长度系列问题
给定一个正整数组成的无序数组arr,给定一个正整数值K 找到arr的所有子数组里,哪个子数组的累加和等于K,并且是长度最大的 返回其长度
根据数据量猜解法(续)、卡特兰数
根据数据状况猜解法(续)、以及分治 面试中的分治的应用场景: 1,数据量整体做尝试可能性太多了,跑不完 2,数据分成多个块(常见是两块)之后,各自的可能性并不算多 3,合并多个块各自信息的整合过程不复
根据对数器找规律、根据数据量猜解法
对数器找规律 1)某个面试题,输入参数类型简单,并且只有一个实际参数 2)要求的返回值类型也简单,并且只有一个 3)用暴力方法,把输入参数对应的返回值,打印出来看看,进而优化code 题目一 小虎去买
IndexTree、AC自动机
AC自动机 解决在一个大字符串中,找到多个候选字符串的问题 AC自动机算法核心 1)把所有匹配串生成一棵前缀树 2)前缀树节点增加fail指针 3)fail指针的含义:如果必须以当前字符结尾,当前形成
线段树
介绍 1,一种支持范围整体修改和范围整体查询的数据结构 2,解决的问题范畴: 大范围信息可以只由左、右两侧信息加工出, 而不必遍历左右两个子范围的具体状况 线段树实例一 给定一个数组arr,用户希望你
Morris遍历
介绍 一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1)。通过利用原树中大量空闲指针的方式,达到节省空间的目的 Morris遍历细节 假设来到当前节点cur,开始时cur来到头节点位
bfprt算法、蓄水池算法
在无序数组中求第K小的数 1)改写快排的方法 2)bfprt算法 topK问题 给定一个无序数组arr中,长度为N,给定一个正数k,返回top k个最大的数 不同时间复杂度三个方法: 1)O(N*lo
Manacher算法
简介 假设字符串str长度为N,想返回最长回文子串的长度 时间复杂度O(N) 算法核心 1)理解回文半径数组 2)理解所有中心的回文最右边界R,和取得R时的中心点C 3)理解 L…(i`)…C…(i)
KMP算法
简介 假设字符串str长度为N,字符串match长度为M,M <= N 想确定str中是否有某个子串是等于match的。 时间复杂度O(N) 实现 题目一 给定两棵二叉树的头节点head1和head2
斐波那契数列(O(logN))
求斐波那契数列矩阵乘法的方法 1)斐波那契数列的线性求解(O(N))的方式非常好理解 2)同时利用线性代数,也可以改写出另一种表示 | F(N) , F(N-1) | = | F(2), F(1) |
滑动窗口
题目一 假设一个固定大小为W的窗口,依次划过arr, 返回每一次滑出状况的最大值 例如,arr = [4,3,5,4,3,3,6,7], W = 3 返回:[5,5,5,4,6,7] 题目二 给定一个
单调栈
题目一 给定一个只包含正数的数组arr,arr中任何一个子数组sub, 一定都可以算出(sub累加和 )* (sub中的最小值)是什么, 那么所有子数组中,这个值最大是多少? 题目二 给定一个非负数组
动态规划总结
什么暴力递归可以继续优化? 有重复调用同一个子问题的解。如果每一个子问题都是不同的解,无法优化也不用优化 如何找到某个问题的动态规划方式? 1)设计暴力递归:重要原则+4种常见尝试模型 2)分析有没有
动态规划(六)
拆数组1 给定一个正数数组arr, 请把arr中所有的数分成两个集合,尽量让两个集合的累加和接近 返回: 最接近的情况下,较小集合的累加和 拆数组2 给定一个正数数组arr,请把arr中所有的数分成两
动态规划(五)
砍怪 给定3个参数,N,M,K 怪兽有N滴血,等着英雄来砍自己 英雄每一次打击,都会让怪兽流失[0~M]的血量 到底流失多少?每一次在[0~M]上等概率的获得一个值 求K次打击之后,英雄把怪兽砍死的概
动态规划(四)
走路最小距离 给定一个二维数组matrix,一个人必须从左上角出发,最后到达右下角 沿途只可以向下或者向右走,沿途的数字都累加就是距离累加和 返回最小距离累加和 凑钱1 arr是货币数组,其中的值都是
动态规划(三)
516. 最长回文子序列 象棋跳马 请自行搜索或者想象一个象棋的棋盘, 然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置 那么整个棋盘就是横坐标上9条线、纵坐标上10条线的区域 给你三个 参
图
图结构 BFS 利用队列实现 从源节点开始依次按照宽度进队列,然后弹出 每弹出一个点,把该节点所有没有进过队列的邻接点放入队列 直到队列变空 DFS 利用栈实现 从源节点开始把节点按照深度放入栈,然后
下一页