最小

闻缺陷则喜何志丹24 天前
c++·算法·力扣·数论·贪心·计算器·最小
【C++贪心 数论】991. 坏了的计算器|1909C++贪心数论:质数、最大公约数、菲蜀定理在显示着数字 startValue 的坏计算器上,我们可以执行以下两种操作: 双倍(Double):将显示屏上的数字乘 2; 递减(Decrement):将显示屏上的数字减 1 。 给定两个整数 startValue 和 target 。返回显示数字 target 所需的最小操作数。 示例 1: 输入:startValue = 2, target = 3 输出:2 解释:先进行双倍运算,然后再进行递减运算 {2 -> 4 -> 3}. 示例 2: 输入:start
闻缺陷则喜何志丹1 个月前
c++·算法·动态规划·力扣·路径·最小·网格
【C++动态规划】2304. 网格中的最小路径代价|1658C++动态规划给你一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。你可以在此矩阵中,从一个单元格移动到 下一行 的任何其他单元格。如果你位于单元格 (x, y) ,且满足 x < m - 1 ,你可以移动到 (x + 1, 0), (x + 1, 1), …, (x + 1, n - 1) 中的任何一个单元格。注意: 在最后一行中的单元格不能触发移动。 每次可能的移动都需要付出对应的代价,代价用一个下标从 0 开始的二维数组 move
闻缺陷则喜何志丹2 个月前
c++·算法·力扣·贪心·字符·最小·相等
【C++贪心】2712. 使所有字符相等的最小成本|1791C++贪心给你一个下标从 0 开始、长度为 n 的二进制字符串 s ,你可以对其执行两种操作: 选中一个下标 i 并且反转从下标 0 到下标 i(包括下标 0 和下标 i )的所有字符,成本为 i + 1 。 选中一个下标 i 并且反转从下标 i 到下标 n - 1(包括下标 i 和下标 n - 1 )的所有字符,成本为 n - i 。 返回使字符串内所有字符 相等 需要的 最小成本 。 反转 字符意味着:如果原来的值是 ‘0’ ,则反转后值变为 ‘1’ ,反之亦然。 示例 1: 输入:s = “0011
闻缺陷则喜何志丹4 个月前
c++·算法·leetcode·贪心·最小·最大·青蛙
【C++贪心】2498. 青蛙过河 II贪心 优化后不需要二分给你一个下标从 0 开始的整数数组 stones ,数组中的元素 严格递增 ,表示一条河中石头的位置。青蛙一开始在第一块石头上,它想到达最后一块石头,然后回到第一块石头。同时每块石头 至多 到达 一次。 一次跳跃的 长度 是青蛙跳跃前和跳跃后所在两块石头之间的距离。 更正式的,如果青蛙从 stones[i] 跳到 stones[j] ,跳跃的长度为 |stones[i] - stones[j]| 。一条路径的 代价 是这条路径里的 最大跳跃长度 。 请你返回这只青蛙的 最小代价 。
闻缺陷则喜何志丹6 个月前
c++·算法·leetcode·bfs·最小·数目·宽度优先搜索
【01BFS】2290. 到达角落需要移除障碍物的最小数目01BFS C++BFS算法图论知识汇总给你一个下标从 0 开始的二维整数数组 grid ,数组大小为 m x n 。每个单元格都是两个值之一: 0 表示一个 空 单元格, 1 表示一个可以移除的 障碍物 。 你可以向上、下、左、右移动,从一个空单元格移动到另一个空单元格。 现在你需要从左上角 (0, 0) 移动到右下角 (m - 1, n - 1) ,返回需要移除的障碍物的 最小 数目。 示例 1: 输入:grid = [[0,1,1],[1,1,0],[1,1,0]]
闻缺陷则喜何志丹6 个月前
c++·算法·力扣·队列·最小·树状树状·最多
【树状数组 队列】1505. 最多 K 次交换相邻数位后得到的最小整数树状数组 队列给你一个字符串 num 和一个整数 k 。其中,num 表示一个很大的整数,字符串中的每个字符依次对应整数上的各个 数位 。 你可以交换这个整数相邻数位的数字 最多 k 次。 请你返回你能得到的最小整数,并以字符串形式返回。 示例 1: 输入:num = “4321”, k = 4 输出:“1342”
闻缺陷则喜何志丹8 个月前
c++·算法·动态规划·力扣·位运算·区间dp·最小
【动态规划 区间dp 位运算】100259. 划分数组得到最小的值之和动态规划 区间dp 位运算给你两个数组 nums 和 andValues,长度分别为 n 和 m。 数组的 值 等于该数组的 最后一个 元素。 你需要将 nums 划分为 m 个 不相交的连续 子数组,对于第 ith 个子数组 [li, ri],子数组元素的按位AND运算结果等于 andValues[i],换句话说,对所有的 1 <= i <= m,nums[li] & nums[li + 1] & … & nums[ri] == andValues[i] ,其中 & 表示按位AND运算符。 返回将 nu
闻缺陷则喜何志丹10 个月前
c++·算法·leetcode·深度优先·图论·最小·旅行
【深度优先搜索】【图论】【树】2646. 最小化旅行的价格总和【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字深度优先搜索 图论 树
闻缺陷则喜何志丹1 年前
c++·算法·leetcode·测试用例·二分查找·最小·好进制
C++二分查找算法的应用:最小好进制二分查找以字符串的形式给出 n , 以字符串的形式返回 n 的最小 好进制 。 如果 n 的 k(k>=2) 进制数的所有数位全为1,则称 k(k>=2) 是 n 的一个 好进制 。 示例 1: 输入:n = “13” 输出:“3” 解释:13 的 3 进制是 111。 示例 2: 输入:n = “4681” 输出:“8” 解释:4681 的 8 进制是 11111。 示例 3: 输入:n = “1000000000000000000” 输出:“999999999999999999” 解释:1000000