贪心算法(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]));
    }
}
相关推荐
农夫山泉2号6 分钟前
【c++】——c++编译的so中函数有额外的字符
java·服务器·c++
wangan09415 分钟前
不带圆圈的二叉树
java·前端·javascript
小马哥编程25 分钟前
【软考架构】滑动窗口限流算法的原理是什么?
java·开发语言·架构
仰泳的熊猫28 分钟前
1077 Kuchiguse
数据结构·c++·算法·pat考试
饕餮争锋43 分钟前
Spring AOP原理简析
java·spring
LYFlied1 小时前
【每日算法】LeetCode 19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
okseekw1 小时前
Maven从入门到实战:核心概念+配置详解+避坑指南
java·后端
踏浪无痕1 小时前
计算机算钱为什么会算错?怎么解决?
后端·算法·面试
tryxr1 小时前
ReentrantLock 与 synchronized 的区别
java··reentrantlock
夏乌_Wx1 小时前
练题100天——DAY28:找消失的数字+分发饼干
数据结构·算法