zoukankan      html  css  js  c++  java
  • 乘风破浪:LeetCode真题_007_Reverse Integer

    乘风破浪: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;
        }
    }
    

    三、总结

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

  • 相关阅读:
    清北学堂 清北-Day1-R1-Count
    清北学堂 清北-Day1-R2-监听monitor
    LuoGu P2420 让我们异或吧
    Milk(sort+结构体)
    开门人和关门人(结构体+sort)
    python-神奇的下划线
    python-pathlib
    python-文本字符串
    python-闭包
    进制-Iterative-进制转换
  • 原文地址:https://www.cnblogs.com/zyrblog/p/10209617.html
Copyright © 2011-2022 走看看