题解 | #小招喵跑步#

小招喵跑步

http://www.nowcoder.com/practice/1177e9bd1b5e4e00bd39ca4ea9e4e216

  • 这道题有大佬已经讲解的很好了,我想说的是
  • 如果当前位置不能被2整除的时候,到达i位置有两种情况:
  • (1)i-1满足当前位置为偶数,然后加上跳到本次的位置步数 dp[i]=dp[i-1]+1,这里还可以写成:dp[i]=dp[(i-1)/2] + 1 + 1;
  • (2)i+1满足当前位置为偶数, 然后回退到(i+1)/2的位置,有dp[i]=(dp[(i+1)/2]+1) + 1)

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        if (x < 2 && x >= 0) {
            System.out.println(x);
            return;
        }
        if (x < 0) x = -x;
        int[] dp = new int[x + 1];
        dp[0] = 0;
        dp[1] = 1;
        for (int i = 2; i <= x; i++) {
            if (i % 2 == 0) {
                dp[i] = dp[i / 2] + 1;
            } else {
                dp[i] = Math.min(dp[(i - 1)/2] + 1 , dp[(i + 1) / 2] + 1) + 1;
            }
        }
        System.out.println(dp[x]);
    }
}
全部评论
我的new Scanner()编译报错,醉了。即使复制你的代码编译也报找不到Scanner类
点赞 回复 分享
发布于 2022-06-12 22:58

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务