题目描述:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123
输出: 321示例 2:输入: -123
输出: -321
示例 3:输入: 120
输出: 21
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

我的解决方法:

class Solution {public int reverse(int x) {int length = 0;int[] arr = new int[32];while (x != 0 ){arr[length ++ ] = x % 10;x = x / 10;}long result = 0;for (int i = 0; i < length; i++) {result += arr[i] * Math.pow(10,length -1 -i);}if (result > Integer.MAX_VALUE || result < Integer.MIN_VALUE) {return 0;}else {if (x >>> 31 == 1) {return (int)-result;}else {return (int) result;}}}
}

网上优秀的方法:

class Solution {public int reverse(int x) {int ans = 0;while (x != 0){int d = x % 10;x /= 10;if (ans >Integer.MAX_VALUE/10 || (ans == Integer.MAX_VALUE/10 && d > 7)) return 0;if (ans < Integer.MIN_VALUE/10 || (ans == Integer.MIN_VALUE/10 && d < -8)) return 0;ans = ans * 10 + d;}return ans;}
}
    // 被这个算法惊艳到了/*** 直接逆向思维,就算我不知道原来有多少位都没有关系* 每次都是上一次的数*10 加上现在的余数* 而且这样的话,不用考虑负数* 还有就是判断最大最小值的时候,利用最大值除以10,然后判断余数是不是小于7,因为最大值是‭2147483647‬* 除以10 的思想,还是都一样的。*/

总结:

总有些优秀的人,写出来优秀的算法。

算法--------------整数反转相关推荐

  1. 【每日一算法】整数反转

    微信改版,加星标不迷路! 每日一算法 - 整数反转 12 月 14 日 周 四 难度:简单.由于读者水平不一,所以从简单的做起,逐渐加难度. 题目:给出一个 32 位的有符号整数,你需要将这个整数中每 ...

  2. 【算法训练】DAY1:整数反转

    1 前言 题目来源于Leetcode. 重点:理清逻辑,忽略细节,模仿高手,五毒神掌 2 题目分析 题目很容易理解,先分成两个部分 正数 负数 先解决正数 最开始想到的是 int char数组 lon ...

  3. python整数反转_敲代码学Python:力扣简单算法之整数反转

    学习重点:整数逆序算法 力扣(LeetCode)原题​leetcode-cn.com ''' 功能:整数反转 来源:https://leetcode-cn.com/explore/featured/c ...

  4. 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)

    首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...

  5. 回文数、罗马数转整数、整数反转

    文章目录 前言 一.整数的回文数判断 1.负数和一位数的判断 2.将整数存进vector容器 3.下标mid和next的定位(关键) 4.循环比较并得出结果 二.罗马数字转整数 1.简介罗马数字 2. ...

  6. LeetCode(7.整数反转)JAVA

    4LeetCode(7.整数反转) 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 ...

  7. C 整数反转

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 题目很简 ...

  8. leetcode 两数之和 整数反转 回文数 罗马数字转整数

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...

  9. 任意输入一个整数反转输出

    任意输入一个整数反转输出 任意输入一个整数反转输出#include<stdio.h> #include<string.h> #include <math.h> #i ...

最新文章

  1. 056_Connect or Sync to your Salesforce database by using an external database
  2. 《JAVA与模式》之状态模式
  3. Bootstrap的datatable控件
  4. webpack与vue环境搭建(转载)
  5. Kettle, Solr
  6. Byte和byte[]数组
  7. 两张表的笛卡尔积用sql语句
  8. 前端学习(3272):js中this的使用
  9. Ubuntu安装VMware Workstation详解
  10. Gitorious基本配置流程
  11. 【コンテンツ配信高速化 】
  12. 美团点评架构再调整,王兴凭什么同时杠上阿里滴滴饿了么
  13. javaWeb企业分布式、互联网、云开发平台-Jeesz
  14. elcipse 中利用maven创建web工程
  15. jquery 文本编辑器插件
  16. 干货 | 闪电网络应用开发速成指南
  17. Altium Designer -- 精心总结
  18. [Python]_ELVE_centos7安装Python3.7.1与Python2共存
  19. 合唱队形(最大上升子序列)
  20. 一篇文章搞懂 Hadoop RPC 到底是什么

热门文章

  1. java 业务层业务接口层_Java web五层架构
  2. 跨网页的新手引导_IOS中新手引导页面的实现(新手引导,Guide)
  3. python编写赛车游戏单机版_使用Keras和DDPG玩赛车游戏(自动驾驶)
  4. C++知识点32——使用C++标准库(关联容器set和multiset的初始化,赋值,查找,添加,删除与迭代器失效)
  5. (四)spring cloud微服务分布式云架构-配置中心和消息总线(配置中心终结版)...
  6. 一些随笔,我有故事,你有酒吗
  7. 孰轻孰重:可穿戴式设备的助益与风险
  8. JavaSE学习总结(六)——接口、抽象类、内部类
  9. 机器学习开发者的现代化路径:不需要从统计学微积分开始
  10. 条件注释判断浏览器版本!--[if lt IE 9]