赞
踩
导读概述
本章节分三篇
2、【如何实现整数的数字反转-首尾交换法】
3、【如何实现整数的数字反转-数学思维升级法】
本文分享的是第二篇【首尾交换法】实现,其它两篇请关注后文,文章内容以通俗易懂的漫画形式呈现给大家~
注:在观看本篇建议提前阅读章节一[如何实现整数的数字反转-逆序输出法],对阅读本篇很有帮助~
Code基本解法及编码实现:
- /**
- *优化解法->首尾交换思路:
- * 1.整数转字符串,再转字符数组
- * 2.交换首位(start)和末位(end)数字
- * 3.循环操作:依次交换第二(start++)和倒数第二个(end--)
- * 直到数组剩下1个或0个元素
- * 4.将原数组转成字符串,再转成整数输出
- ** 注意事项:
- * 边界问题
- * 数组索引越界:数组长度为偶数,反转完成标志为start>end;
- * 为奇数时反转完成标志为start==end
- * 数值溢出边界:溢出则返回0
- * 细节问题
- * 首位不为0
- * 符号处理
- * @param x 指定整数
- * @return 反转后的整数,或0
- */
- public int reverse(int x){
- //数值越界处理
- if(x==Integer.MIN_VALUE){
- return 0;
- }
- //提取符号
- int sign = x>0?1:-1;
- //提取正数
- int data = x>0?x:sign*x;
- //1、原正数转成字符串,再转成字符数组 目的,进行遍历返转使用
- char[] chars = String.valueOf(Integer.valueOf(data)).toCharArray();
- //2、交换首位start++ 和末位数字 end--
- int start = 0 ;
- int end = chars.length-1;
- //3、循环操作:依次交换第二start++和倒数end--
- while (start<end){//start>=end截止完成
- //交换两端等距离的元素
- char tmp = chars[start];
- chars[start]=chars[end];
- chars[end] = tmp;
- start++;
- end--;
- }
- //4、将原数组转成字符串,再转成整数输出
- long charLong = Long.valueOf(new String(chars));
- //边界校验 转成int
- int reverse = (charLong>Integer.MAX_VALUE||charLong<Integer.MIN_VALUE)?0:(int)charLong;
- //返回反转真实结果 正数*标识
- return reverse*sign;
- }
执行main方法
- public static void main(String[] args) {
- int[] array = {123,-321,726380,Integer.MAX_VALUE,Integer.MIN_VALUE};
- for (int arr:array){
- int result = reverse(arr);
- System.out.println("原整数值:"+arr+"||反转输出==>"+result);
- }
- }
运行效果:
- 原整数值:123||反转输出==>321
- 原整数值:-321||反转输出==>-123
- 原整数值:726380||反转输出==>83627
- 原整数值:2147483647||反转输出==>0
- 原整数值:-2147483648||反转输出==>0
知识小扩展:
想对复杂度有更深入的理解,请点击【干货|算法复杂度分析看这一篇就够了】一文,里面有细致的分享。
注:题目来源:Leetcode 7:
https://leetcode-cn.com/problems/reverse-integer/
• 后记 •
本系列算法文章,会从零基础建立数据结构和算法知识体系和算法思维。包括复杂度计算,常见的数据结构及操作,排序、递归、字符串匹配、搜索、贪心算法、分治算法、动态规划、回溯算法等。并且还会结合大厂的数据结构和算法面试题,讲解思路和解决方法。以及剖析数据结构和算法在互联网领域的常见应用,并且会不断持续更新分享给大家。
这套系列文章内容适用于初级程序员、高级程序员、架构师和一切喜欢研究算法追求细节的开发人员。如果感觉有所收获,可以动动小手指给点个赞,感谢阅读!
微信扫码关注公共账号!!
作者公共账号文章地址:算法5分钟|如何实现整数的数字反转【首尾交换法】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。