zoukankan      html  css  js  c++  java
  • leetCode:reverseInteger 反向整数 【JAVA实现】

    反向整数

    给定一个 32 位有符号整数,将整数中的数字进行反转,如果超出整数的最大或者最小范围返回0

    更多文章查看个人博客 个人博客地址:反向整数

    方法一

    利用StringBuilder的reverse方法,将数字转换成字符反转然后再转换回整数

     public int reverseInteger(int num) {
            if (num == 0 || (num < 10 && num > -10)) {
                return num;
            }
            // 获得绝对值 去掉正负号
            int temp = Math.abs(num);
    
            StringBuilder st = new StringBuilder(String.valueOf(temp));
            StringBuilder reverse = st.reverse();
            long result = Long.valueOf(reverse.toString());
    
            if (num > 0) {
                return result > Integer.MAX_VALUE ? 0 : (int) result;
            } else {
                return result < Integer.MIN_VALUE ? 0 : -(int) result;
            }
        }
    
    
    • StringBuilder reverse方法也是通过一个for循环把字符反转,时间复杂度是O(n),空间复杂度O(n)
    名称 结果
    时间复杂度 O(n)
    空间复杂度 O(n)

    方法二

    利用一个循环取余的方法将整数反转,效率要比上边方法好

     public int reverseInteger(int num) {
    
            if (num == 0 || (num < 10 && num > -10)) {
                return num;
            }
    
            long result = 0;
            for (; num != 0; num /= 10) {
                result = result * 10 + num % 10;
            }
            return result > Integer.MAX_VALUE || result < Integer.MIN_VALUE ? 0 : (int) result;
        }
    
    名称 结果
    时间复杂度 O(n)
    空间复杂度 O(1)

    更多文章查看个人博客 个人博客地址:反向整数

  • 相关阅读:
    学习Vue.js
    Xmind思维导图
    Webpack 入门教程
    Vscode 使用介绍
    jdk,jre下载安装
    Java JDK下载
    FileZilla FTP下载
    notepad++下载
    windows环境搭建Vue开发环境
    SecureCRTPortable的安装和使用(图文详解)
  • 原文地址:https://www.cnblogs.com/NiceCui/p/11062574.html
Copyright © 2011-2022 走看看