当前位置: 首页 > news >正文

推荐佛山顺德网站建设黄陂机械加工网

推荐佛山顺德网站建设,黄陂机械加工网,中国工商网官方网站,wordpress被挂马题目要求#xff1a;给出一个32位的有符号整数#xff0c;你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21示例 4:输入#xff1a;9646324351输出: 0注意#xff1a;假设我们的环境只能存储得下 3…题目要求给出一个32位的有符号整数你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21示例 4:输入9646324351输出: 0注意假设我们的环境只能存储得下 32 位的有符号整数则其数值范围为 [2的31次方, 2的31次方 1]。请根据这个假设如果反转后整数溢出那么就返回 0。解决方案1最low的方法思路转换成字符串。获取最后第一位和最后一位。用于判断是否是负数和是否是0然后在进行判断根据情况不同进行判断处理。如下代码public int reverse(int x) {String strX Integer.valueOf(x).toString(); char [] charArr strX.toCharArray(); int length charArr.length; String [] strArr new String [length]; for(int i 0;i0;i--){ index; String str strArr[i]; newStrArr[index] str; } }else if(0.equals(lastStr)){ newStrArr new String [length-1]; for(int i length-2; i 0;i--){ String str strArr[i]; newStrArr[index] str; index; } }else if(-.equals(fasterStr)){ newStrArr[0] fasterStr; for(int i length-1; i 0;i--){ index; String str strArr[i]; newStrArr[index] str; } }else{ for(int i length-1; i 0;i--){ String str strArr[i]; newStrArr[index] str; index; } } String str ; for(int i 0;i此方案运行结果运行9毫秒消耗内存35.4M解决方案二从数学思维来处理的。例如1234 反过来就是4321也就是个位和千百位互换、十位和百位互换。这些明白了吧。也就是10的x方Y%10.其中x是位数。Y是数据。看懂上面的我们就能得到下面代码public int reverse2(int x) {//用数学思维来看 int rpc 0; while (x ! 0) { int newrpc rpc*10 x%10; log.info(rpc*10:{},x%10:{}newrpc{},(rpc*10),x%10,newrpc); if ((newrpc - x%10)/10 ! rpc){ return 0; } rpc newrpc; x x/10; } log.info(:{},rpc); return rpc;}运行后打印日志我们在来看看此方案执行结果耗时3毫秒,内存消耗34.3M再来看第三种解决方案思路使用字符串的反转方法。当溢出的时候异常直接返回0public int reverse3(int x) {try { if(x 0) { StringBuilder str new StringBuilder().append(x); return Integer.parseInt(str.reverse().toString()); }else { StringBuilder str new StringBuilder().append(-x); return Integer.parseInt(str.reverse().toString())*(-1); } }catch (NumberFormatException e) { return 0; }}此方案运行结果方案4使用了math函数、位运算及字符串反转的public int reverse4(int x){//区域 右端点 double start Math.pow(2, 31) - 1; //区域 左端点 double end -Math.pow(2, 31); if(xstart){ return 0; } //获取原始数字符号 float df Math.signum(x); Integer intDf Math.round(df); // 取绝对值 int i Math.abs(x); //使用sring的反转方式 StringBuilder str new StringBuilder().append(i).reverse(); x Integer.parseInt(str.toString()); log.info(:{},x*intDf); return x*intDf ;}执行结果方案五使用的是位移运输和math函数。public int reverse5(int x) {int res 0; int of ((1 31) - 1) / 10; while (x ! 0) { if (Math.abs(res) ((1 31) - 1) / 10){ return 0; } res res * 10 x % 10; x / 10; } return res;}执行结果我们将5种方案进行对比发现第二种和第五种方案耗时最短。也就是使用数学思路和位移运行最快。经过五中方案比较之后我们是不是体会到编程是一门艺术了。本文出处凯哥Java(kaigejava)好了今天小算法就到这里了。《每天一个小算法》希望直接可以坚持下去。
http://wiki.neutronadmin.com/news/103921/

相关文章:

  • 什么是云速建站服务视频拍摄和剪辑怎么学
  • 网站建设属什么合同企云网站建设
  • gta 买房网站建设中如何制作个人手机网站
  • 安防网站源码软件开发流程流程图
  • 网站框架模板广州冼村房价多少钱
  • 网站建设代码标准佛山有哪几个区
  • 高端网站设计公司排行榜动画制作软件排行榜
  • 建设一个购物网站多少钱wordpress换中文
  • 网站开发专业就业好不好金寨县重点工程建设管理局网站
  • 旅游网站建设技术解决方案男女生做羞羞事情的网站
  • 株洲网站建设开发网站网址没有被百度收录
  • 纯html网站模板四川省凉亭建设工程有限公司网站
  • 网站模块在线制作教程为什么wordpress在ie打开很慢
  • 站长之家网站建设制作全国建筑工程网
  • 昆明网站建设天锐科技网站建设 事业单位 安全
  • 黄冈网站制作wordpress 主题 美化版
  • 网站备案 深圳小微企业注册流程及费用
  • 竞猜网站模板wordpress后台不能登陆
  • 单位网站建设情况做多媒体挣钱吗
  • 宜昌网站模板手机端steam
  • 网站做编辑八戒影视大全
  • 南通市网站做网站的图片Pc端和手机端的区别
  • 建设银行的网站是多少微信商城怎么开店
  • 爱唐山做贡献月评十佳投票网站如何查看网站开发公司
  • 盈江城乡建设局网站wordpress主题tag标签页面代码
  • 智能网站推广优化安卓优化大师app
  • 有没有小学生做兼职的网站网站qq一键登录
  • 软件技术专业里有网站开发吗建设网站号码是多少
  • 网页游戏排行榜开服时间优化关键词排名外包
  • 用node和vue做的网站运营公开网是什么网站