算法--------------整数反转
题目描述:
给出一个 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 的思想,还是都一样的。*/
总结:
总有些优秀的人,写出来优秀的算法。
算法--------------整数反转相关推荐
- 【每日一算法】整数反转
微信改版,加星标不迷路! 每日一算法 - 整数反转 12 月 14 日 周 四 难度:简单.由于读者水平不一,所以从简单的做起,逐渐加难度. 题目:给出一个 32 位的有符号整数,你需要将这个整数中每 ...
- 【算法训练】DAY1:整数反转
1 前言 题目来源于Leetcode. 重点:理清逻辑,忽略细节,模仿高手,五毒神掌 2 题目分析 题目很容易理解,先分成两个部分 正数 负数 先解决正数 最开始想到的是 int char数组 lon ...
- python整数反转_敲代码学Python:力扣简单算法之整数反转
学习重点:整数逆序算法 力扣(LeetCode)原题leetcode-cn.com ''' 功能:整数反转 来源:https://leetcode-cn.com/explore/featured/c ...
- 整数反转leetcode java_【Java】【每日算法/刷穿 LeetCode】7. 整数反转(简单)
首页 专栏 java 文章详情 0 [每日算法/刷穿 LeetCode]7. 整数反转(简单) 宫水三叶发布于 今天 12:10 题目描述 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数 ...
- 回文数、罗马数转整数、整数反转
文章目录 前言 一.整数的回文数判断 1.负数和一位数的判断 2.将整数存进vector容器 3.下标mid和next的定位(关键) 4.循环比较并得出结果 二.罗马数字转整数 1.简介罗马数字 2. ...
- LeetCode(7.整数反转)JAVA
4LeetCode(7.整数反转) 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 ...
- C 整数反转
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 题目很简 ...
- leetcode 两数之和 整数反转 回文数 罗马数字转整数
1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...
- 任意输入一个整数反转输出
任意输入一个整数反转输出 任意输入一个整数反转输出#include<stdio.h> #include<string.h> #include <math.h> #i ...
最新文章
- 056_Connect or Sync to your Salesforce database by using an external database
- 《JAVA与模式》之状态模式
- Bootstrap的datatable控件
- webpack与vue环境搭建(转载)
- Kettle, Solr
- Byte和byte[]数组
- 两张表的笛卡尔积用sql语句
- 前端学习(3272):js中this的使用
- Ubuntu安装VMware Workstation详解
- Gitorious基本配置流程
- 【コンテンツ配信高速化 】
- 美团点评架构再调整,王兴凭什么同时杠上阿里滴滴饿了么
- javaWeb企业分布式、互联网、云开发平台-Jeesz
- elcipse 中利用maven创建web工程
- jquery 文本编辑器插件
- 干货 | 闪电网络应用开发速成指南
- Altium Designer -- 精心总结
- [Python]_ELVE_centos7安装Python3.7.1与Python2共存
- 合唱队形(最大上升子序列)
- 一篇文章搞懂 Hadoop RPC 到底是什么
热门文章
- java 业务层业务接口层_Java web五层架构
- 跨网页的新手引导_IOS中新手引导页面的实现(新手引导,Guide)
- python编写赛车游戏单机版_使用Keras和DDPG玩赛车游戏(自动驾驶)
- C++知识点32——使用C++标准库(关联容器set和multiset的初始化,赋值,查找,添加,删除与迭代器失效)
- (四)spring cloud微服务分布式云架构-配置中心和消息总线(配置中心终结版)...
- 一些随笔,我有故事,你有酒吗
- 孰轻孰重:可穿戴式设备的助益与风险
- JavaSE学习总结(六)——接口、抽象类、内部类
- 机器学习开发者的现代化路径:不需要从统计学微积分开始
- 条件注释判断浏览器版本!--[if lt IE 9]