首页
沸点
课程
AI Coding
数据标注
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
每日一题
字节幺零二四
创建于2023-04-26
订阅专栏
算法题解
暂无订阅
共16篇文章
创建于2023-04-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【每日一题】工作计划的最低难度
本题很容想到可以使用动态规划来求解,时间复杂度是符合要求的。此外,本题还可以使用单调栈来进行优化,从而降低时间复杂度。
【每日一题】按列翻转得到最大值等行数
结论:最后由相同元素构成的行必然相同或者相反。 推论:最后由相同元素构成的行在最初也是相同或者相反。
【每日一题】距离相等的条形码
直观上来看,我们应该尽可能把出现次数多的放在前面,于是,可采用优先队列来维护每个数出现的次数,每次取出出现次数最多的数放到排列末尾,注意,每取出一个数,该数的出现次数就需要-1。
【每日一题】翻转子数组得到最大的数组值
设翻转的点为i和j,不难发现,翻转整个数组或者翻转单个元素并不影响数组值,故只考虑i<j的情况。设i-1处为A,i处为B,j处为C,j+1处为D,我们的目标就是使得v尽可能大。
【每日一题】子串能表示从 1 到 N 数字的二进制串
对于给定的n,必有k满足2k≤n<2k+1,若s中含有[2k-1 , 2k-1]所有的数,也即s中含有所有k位二进制数,则其必定含有所有1~k位的二进制数,剩下的就是判断s中是否含有[2k, n]。
【每日一题】使二叉树所有路径值相等的最小代价
不难想到,最终根节点到各叶子结点的路径值必然等于最初根节点到各叶子结点的最大路径值。 于是,先通过深搜,将各叶子结点到根节点的路径值预处理出来,同时找出最大路径值。
【每日一题】数青蛙
采用模拟,维护当前有多少青蛙(设为fragNum)在呱,fragNum的最大值就是至少需要的青蛙数。
【每日一题】x 的平方根
本题一般不允许使用语言自带的求平方根的函数求解,一般的思路有以下几种:袖珍计算器算法、二分查找、牛顿迭代。
【每日一题】摘水果
无论如何,最后摘到的水果一定位于区间[l, r]内,于是本题的关键就在于如何枚举每个符合条件的区间[l,r],且快速求出区间内的水果数。
【每日一题】检查替换后的词是否有效
本题与括号匹配(20. 有效的括号)类似,可使用栈来求解。对于不同情况的出栈入栈操作可以进行合并重组,从而简化代码。
【每日一题】相等的有理数
由于字符串所代表的值不会超过1e4,故可直接将字符串所表示的值求出来,然后进行比较。非重复部分部分容易处理,本题的关键在于如何处理重复部分。
【每日一题】T 秒后青蛙的位置
无向树的起点为1,且青蛙不能往回跳,故题目所说的无向树实际上是一棵有向树。对于此类有关树的搜索问题,显然可以采用深搜来求解。
【每日一题】寻找两个正序数组的中位数
关键词:二分查找、数组划分。题目要求时间复杂度为O(log(m+n)),且数组有序,可采用二分求解。同时,由于中位数具有划分作用,也可以利用中位数的性质求解。
【每日一题】餐盘栈
考虑使用数组stk来模拟栈,设编号为idx的栈的栈顶元素的下标为top,则在数组中的下标为idx*capacity+top,每个栈的栈顶位置可使用数组来维护,空位可采用一个优先队列来维护。
【每日一题】 最长字符串链
类比最长递增子序列,设f(s)=以字符串s结尾的词链的最长长度,则f(s)=max{ f(ps)+1 },其中,ps为s去除一个字符后得到的子串。
【每日一题】两个非重叠子数组的最大和
本题关键词:前缀和、滑动窗口。 两个不重叠子数组必定位于某条分界线的两侧,于是,不妨枚举每条分界线,设其左侧子数组的最大值为l,右侧子数组的最大值为r,则,max{ l+r }即为答案。