最大

闻缺陷则喜何志丹13 天前
c++·算法·力扣·图论·bfs·路径·最大
【C++图论 BFS算法】2467. 树上最大得分和路径|2053C++图论 C++BFS算法一个 n 个节点的无向树,节点编号为 0 到 n - 1 ,树的根结点是 0 号节点。给你一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] = [ai, bi] ,表示节点 ai 和 bi 在树中有一条边。 在每一个节点 i 处有一扇门。同时给你一个都是偶数的数组 amount ,其中 amount[i] 表示: 如果 amount[i] 的值是负数,那么它表示打开节点 i 处门扣除的分数。 如果 amount[i] 的值是正数,那么它表示打开节点
闻缺陷则喜何志丹3 个月前
c++·算法·二分查找·力扣·分治·最大·拆位法
【C++二分查找 拆位法】2411. 按位或最大的最小子数组长度C++二分查找 拆位法(分治法)给你一个长度为 n 下标从 0 开始的数组 nums ,数组中所有数字均为非负整数。对于 0 到 n - 1 之间的每一个下标 i ,你需要找出 nums 中一个 最小 非空子数组,它的起始位置为 i (包含这个位置),同时有 最大 的 按位或运算值 。 换言之,令 Bij 表示子数组 nums[i…j] 的按位或运算的结果,你需要找到一个起始位置为 i 的最小子数组,这个子数组的按位或运算的结果等于 max(Bik) ,其中 i <= k <= n - 1 。 一个数组的
闻缺陷则喜何志丹4 个月前
c++·算法·leetcode·贪心·最小·最大·青蛙
【C++贪心】2498. 青蛙过河 II贪心 优化后不需要二分给你一个下标从 0 开始的整数数组 stones ,数组中的元素 严格递增 ,表示一条河中石头的位置。青蛙一开始在第一块石头上,它想到达最后一块石头,然后回到第一块石头。同时每块石头 至多 到达 一次。 一次跳跃的 长度 是青蛙跳跃前和跳跃后所在两块石头之间的距离。 更正式的,如果青蛙从 stones[i] 跳到 stones[j] ,跳跃的长度为 |stones[i] - stones[j]| 。一条路径的 代价 是这条路径里的 最大跳跃长度 。 请你返回这只青蛙的 最小代价 。
闻缺陷则喜何志丹6 个月前
c++·算法·动态规划·力扣·删除·最大·最长公共前缀
【最长公共前缀 动态规划】2430. 对字母串可执行的最大删除数如果有不明白的,请加文末QQ群。最长公共前缀 动态规划 动态规划汇总给你一个仅由小写英文字母组成的字符串 s 。在一步操作中,你可以: 删除 整个字符串 s ,或者 对于满足 1 <= i <= s.length / 2 的任意 i ,如果 s 中的 前 i 个字母和接下来的 i 个字母 相等 ,删除 前 i 个字母。 例如,如果 s = “ababc” ,那么在一步操作中,你可以删除 s 的前两个字母得到 “abc” ,因为 s 的前两个字母和接下来的两个字母都等于 “ab” 。 返回删除 s 所需的最
闻缺陷则喜何志丹1 年前
c++·算法·leetcode·单调栈·质数·最大·取余
【单调栈】LeetCode:2818操作使得分最大map|动态规划|单调栈|LeetCode975:奇偶跳单调栈给你一个长度为 n 的正整数数组 nums 和一个整数 k 。 一开始,你的分数为 1 。你可以进行以下操作至多 k 次,目标是使你的分数最大: 选择一个之前没有选过的 非空 子数组 nums[l, …, r] 。 从 nums[l, …, r] 里面选择一个 质数分数 最高的元素 x 。如果多个元素质数分数相同且最高,选择下标最小的一个。 将你的分数乘以 x 。 nums[l, …, r] 表示 nums 中起始下标为 l ,结束下标为 r