zoukankan      html  css  js  c++  java
  • 题目:翻转整数

    这道题我觉得应该用二进制位移来做比较快,但是懒得想了就写了一个最普通的方法:

    static const auto io_speed_up = []()
    {
        std::ios::sync_with_stdio(false);
        cin.tie(nullptr);
        return 0;
    }();
    
    class Solution {
    public:
        int reverse(int x) 
        {
            long long temp = 0;
            do
                temp = temp * 10 + x % 10;
            while (x /= 10);
            return (temp > INT_MAX || temp < INT_MIN) ? 0 : temp;
        }
    };

    结果超过了99.69%,真滴好奇比这个还慢的是怎么做的。之所以说这个最简单,是因为从返回型为int和要求64位可以得到LeetCode的测试实在64位机的,这样就可以直接用longlong类型计算然后判断是否不在INT范围之内(64位机int范围即为题目规定范围),不在返回0即可。

    我看了排第一的算法,感觉与我无太大差别,仅是他计算的时候把负数转换成了正数,我试着把自己的改为正数,发现速度并没有变化。我复制了排第一的算法进行计算,发现得出时间并不快于我的,我猜测是否LeetCode在不同提交时间,速度会不一样?

  • 相关阅读:
    Effective java 读书笔记
    python测试api接口
    Git 提交后开始自动构建
    修改docker的默认存储位置
    golang实现ios推送
    NSRangeFromString 测试
    Container View Controller
    ios自定义View自动布局时计算大小
    Java执行groovy脚本
    gradle使用eclipse debug 代码
  • 原文地址:https://www.cnblogs.com/change4587/p/9170487.html
Copyright © 2011-2022 走看看