码迷,mamicode.com
首页 > 其他好文 > 详细

乘风破浪:LeetCode真题_007_Reverse Integer

时间:2019-01-02 19:29:08      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:public   alt   练习   max   ali   .com   理解   long   简单   

乘风破浪:LeetCode真题_007_Reverse Integer

一、前言

    这是一个比较简单的问题了,将整数翻转,主要考察了取整和取余,以及灵活地使用long型变量防止越界的问题。

二、Reverse Integer

2.1 问题理解

技术分享图片

技术分享图片

2.2 问题分析与解决

    可以看到通过简单地取整和取余运算就能得到答案,但是需要注意越界问题,使用long在Java中8个字节的特性来完成越界检查和处理。

技术分享图片

   我们的算法:

public class Solution {
    /**
     * <pre>
     * 原题
     * Reverse digits of an integer.
     * Example1: x = 123, return 321
     * Example2: x = -123, return -321
     *
     * 题目大意
     * 输入一个整数对其进行翻转
     *
     * 解题思路
     * 通过求余数求商法进行操作。
     */
    public int reverse(int x) {
        long tmp = x;
        // 防止结果溢出
        long result = 0;

        while (tmp != 0) {
            result = result * 10 + tmp % 10;
            tmp = tmp / 10;
        }

        // 溢出判断
        if (result < Integer.MIN_VALUE || result > Integer.MAX_VALUE) {
            result = 0;
        }

        return (int) result;
    }
}

技术分享图片

三、总结

   细节决定成败,对于一些简单的问题,我们也不能掉以轻心,只有沉下心来认真地分析,多做题,多思考,多练习才能游刃有余。

乘风破浪:LeetCode真题_007_Reverse Integer

标签:public   alt   练习   max   ali   .com   理解   long   简单   

原文地址:https://www.cnblogs.com/zyrblog/p/10209617.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!