首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Code 2016 :我如何优化代码?

Google Code 2016 :我如何优化代码?
EN

Stack Overflow用户
提问于 2018-02-25 11:59:53
回答 1查看 138关注 0票数 0

问题: 羊布莱特里克斯·特罗特( Bleatrix )设计了一种帮助她更快入睡的策略。 首先,她选择一个数字N,然后她开始命名N,2×N,3×N,等等。每当她说出一个数字时,她就会想到这个数字中的所有数字。 她跟踪她至少见过一次的数字(0、1、2、3、4、5、6、7、8和9)。 一旦她至少见过十位数字中的每一位,她就会睡着。Bleatrix必须以N开头,并且必须总是在I×N之后直接命名(i + 1)×N,例如,假设Bleatrix选择N= 1692。她将计算如下:n= 1692。现在她看到了数字1,2,6和9.2N= 3384。现在她看到了数字1,2,3,4,6,8和9.3n= 5076。现在她已经看到了所有的十位数,瀑布asleep.What是她入睡前最后一个要命名的数字。如果她会永远数数,那就用印刷品来代替失眠。

https://code.google.com/codejam/contest/6254486/dashboard

代码语言:javascript
复制
Array.prototype.unique = function () {
    return this.filter(function (value, index, self) {
        return self.indexOf(value) === index;
    });
}

var uniqueArr = [];
var Number = 1692;//Any number 


for (i = 1; ; i++) {
    var x = Number * i;
    while (x > 0) {
        uniqueArr.push(x % 10); //Converting number to Digits and pushing them into an array.
        x = Math.floor(x / 10);
    }
    var ar = uniqueArr.unique();
    if (ar.length == 10) {
        console.log(uniqueArr.unique(), Number * i);
        break;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-02-25 13:05:56

只要x始终是一个正数*(这里就是这种情况),您可以使用

代码语言:javascript
复制
x = ~~(x / 10)

而不是

代码语言:javascript
复制
x = Math.floor(x / 10)

这做了同样的工作,但速度却快了5倍。这是一个明显的改进,但它还是优化了代码。

*~是位运算符,它只会在逗号之后切断所有内容。所以~-6.6将得到-6,但是Math.floor(-6.6)给你一个-7.在这里小心点。

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

https://stackoverflow.com/questions/48973171

复制
相关文章

相似问题

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