博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - 7 - Reverse Integer
阅读量:7215 次
发布时间:2019-06-29

本文共 636 字,大约阅读时间需要 2 分钟。

题目

URL:https://leetcode.com/problems/reverse-integer

 

 

解法

这个题目是极其简单的,对于数 x,每次对 10 取余保存为结果,之后 x 除以 10,若 x 不为0,则结果乘 10,继续取余。不过,注意一些会产生异常的条件:

  •  溢出,包括正数溢出、负数溢出;
  •  以0结尾的数字。

有一点比较坑爹,Leetcode 并没有说异常情况的返回值,本题返回值为0。

public int reverse(int x) {        long result = 0;        while (x != 0) {            result = result * 10 + x % 10;            x = x / 10;            if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) return 0;        }        return (int) result;    }

取余法,时间复杂度O(x.length),运行时间约为 36 ms

 

总结

注意细节。

还有可能相对于乘除法而言,条件判断的代价很小。将 if 语句挪出循环体外,时间立马增加 20 ms,由原来时间领先 99% 算法变为领先 20% 算法。

 

转载于:https://www.cnblogs.com/Piers/p/7153045.html

你可能感兴趣的文章
斑点检测(LoG,DoG)(下)
查看>>
《CLR Via C# 第3版》笔记之(二十二) - APM和EAP
查看>>
洛谷P5111 zhtobu3232的线段树
查看>>
Angular Cli 创建的Angular项目应用本地css文件和js文件
查看>>
java代码getHostAddress .getHostName()的练习
查看>>
【转】一个孩子关于MaD的思考概述
查看>>
C 再识数组指针 指针数组的概念
查看>>
第5次作业
查看>>
倒计时
查看>>
JAVA必会算法--选择排序
查看>>
SEO基础问题:13.什么是关键词密度?
查看>>
Ruby gem install mysql 错误解决
查看>>
坑!!!
查看>>
web前端性能优化
查看>>
java基础-数组的折半查找原理
查看>>
挑战JavaScript正则表达式每日两题(2)
查看>>
个人网盘倒下去 企业网盘顶起来
查看>>
Redis的多种启动方式比较!
查看>>
C#读取excel文件数据丢失问题
查看>>
我的编程知识库
查看>>