首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >提高代码性的代码性能

提高代码性的代码性能
EN

Stack Overflow用户
提问于 2015-01-28 03:29:24
回答 21查看 8.4K关注 0票数 9

今天我听说了一个叫做codility的网站,用户可以在这个网站上进行各种编程测试来检查他们代码的性能。

当我开始的时候,他们给了我这个样本测试,

任务描述一只小青蛙想要到路的另一边。青蛙当前位于位置X,并且希望到达大于或等于Y的位置。小青蛙总是跳跃固定的距离,D。计算小青蛙为了到达目标而必须执行的最小跳跃次数。

编写一个函数:class Solution { public int solution(int X, int Y, int D); },它在给定三个整数XYD的情况下,返回从位置X到等于或大于Y的位置的最小跳跃次数。

例如,给定:

X = 10

Y = 85

D = 30函数应该返回3,因为frog的位置如下:

在第一次跳跃后,位置10 + 30 = 40

在第二次跳跃后,位置10 + 30 + 30 = 70

在第三次跳跃后,位置10 + 30 + 30 + 30 = 100

假设: X,Y和D是范围内的整数

1..1,000,000,000;X≤Y,复杂度:预计最坏情况时间

复杂度为O(1);期望的最坏情况空间复杂度为O(1)。

这个问题非常直接,我花了大约2分钟才写出解决方案,如下所示:

代码语言:javascript
运行
复制
class Solution {
    public int solution(int X, int Y, int D) {

        int p = 0;
        while (X < Y){
            p++;
            X = X + D;
        }
    return p;
    }
}

然而,测试结果表明,我的代码的性能仅为20%,而我的得分仅为55%

这是指向结果的链接,https://codility.com/demo/results/demo66WP2H-K25/

这是如此简单的代码,我只使用了一个while循环,怎么可能使它更快呢?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28178460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档