贪心算法(12))(java)坏了的计算器

题目:在显示着数字 startValue的坏计算器上,我们可以执行以下两种操作:

·双倍(Double):将显示屏上的数字乘2;

·递减(Decrement):将显示屏上的数字减1.

给定两个整数 startValue 和 target。返回显示数字target所需的最小操作数。

示例1:

输入: startValue = 2,target =3

输出:2

解释: 先进行双倍运算,然后再进行递减运算{2->4-> 3},

解法:正难则反+贪心

java 复制代码
public class Solution {
    public int brokenCalc(int startValue,int target)
    {
        int ret=0;
        while (target>startValue)
        {
            if(target%2==0)target/=2;
            else target+=1;
            ret++;

        }
        return ret+startValue-target;

    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        int []startValue={2};
        int []target={3};
        System.out.println(solution.brokenCalc(startValue[0],target[0]));
    }
}
相关推荐
v_for_van5 分钟前
力扣刷题记录1(无算法背景,纯C语言)
算法·leetcode·职场和发展
hexionly8 分钟前
演示工厂模式和策略模式的基本用法
java·简单工厂模式·策略模式·开闭原则
sjjhd6529 分钟前
C++模拟器开发实践
开发语言·c++·算法
七夜zippoe10 分钟前
大模型低成本高性能演进 从GPT到DeepSeek的技术实战手记
人工智能·gpt·算法·架构·deepseek
shehuiyuelaiyuehao10 分钟前
javaSE大总结
java
二年级程序员11 分钟前
qsort函数的使用与模拟实现
c语言·数据结构·算法·排序算法
Paraverse_徐志斌14 分钟前
针对 SAAS 私有化部署,如何优雅合并微服务
java·微服务·架构·saas·私有化
ajole19 分钟前
C++学习笔记——C++11
数据结构·c++·笔记·学习·算法·stl
黎雁·泠崖19 分钟前
Java字符串API:String/StringBuffer/StringBuilder详解
java·开发语言