问题:有一个有序数组,如何求绝对值最小的数。
形如:-10 -5 -2 7 15 20, 绝对值最小为-2

思路:
1。没有正数的情况下,最右边就是绝对值最小的
2。没有负数的情况下,最左边就是绝对值最小的。
3。有正数负数有0的情况下,找到0
4。只有正数负数的情况下,找到分界点

public static int getMinAbsoluteValue(int[] a) {if(a == null) {return Integer.MAX_VALUE;}int len = a .length;if(len<1) return Integer.MIN_VALUE;if(a[0]>=0)return a[0]; //没有负数if(a[len-1]<=0) return a[len-1];//没有正数int mid = 0;int begin = 0;int end = len-1;int absMin = 0;//数组中既有正数又有负数while(true) {mid = (begin+end)>>>1;//如果值等于0,那么就是绝对值最小的数if(a[mid] == 0) return 0;else  if(a[mid]>0) {//如果值大于0,那么正负数的分界点在左半部分if(a[mid-1]>0) end = mid-1;else if(a[mid-1] ==0) return 0;else break;}else {//如果值小于0,在数组右半部分查找if(a[mid+1]<0) {begin = mid+1;  }else if(a[mid+1] ==0) return 0;else break;}}//获得正负数分界点出绝对值最小的值if(a[mid]>0) {if(a[mid]<Math.abs(a[mid-1])) {absMin = a[mid];}else {absMin = a[mid-1];}}else {if(Math.abs(a[mid])<a[mid+1]) absMin = a[mid];else absMin = a[mid+1];}return absMin;}

如何求有序数组绝对值最小的数相关推荐

  1. 如何求数组中绝对值最小的数?

    """ 有一个升序排列的数组,数组中可能有正数,负数或0,求数组中元素的绝对值最小的数.例如,数组[-10,-5,-2,7,15,50],该数组中绝对值最小的数是2 &q ...

  2. Java学习手册:(数据结构与算法-数组)如何求绝对值最小的数?

    问题: 有一个升序排列的数组,数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,例如,数组{-10,-5,-2,7,15,50},绝对值最小的是2. 方法一: 对于升序数组,求绝对值最小的数可 ...

  3. 面试题: 求绝对值最小的数

    题目: 有⼀个已经排好序的整数序列(升序,⽆重复项),序列中可能有正整数.负整数或者0,请 ⽤你认为最优的⽅法求序列中绝对值最⼩的数.**_要求不能使⽤顺序⽐较的⽅法(时间复杂 度需要⼩于 O(n) ...

  4. javascript:求绝对值最小的数

    问题来源:http://androidguy.blog.51cto.com/974126/1129543 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求, ...

  5. 《剑指offer》-- 把数组排成最小的数、丑数、二进制中1的个数、表示数值的字符串、替换空格

    一.把数组排成最小的数: 1.题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为 ...

  6. 数据结构与算法--将数组排成最小的数

    将数组排成最小的数 题目:输入一个正整数的数组,将数组中所有数字拼接在一起排列成一个新的数,打印能拼接出来的所有数字中最小的一个, 案例:输入数组{12,4,55},则能打印出最小的数组是:12455 ...

  7. JSK-399 绝对值最小的数【大数】

    绝对值最小的数 输入 10 个数,找出其中绝对值最小的数,将它和最后一个数交换. 输入格式 输入一行包括 10 个绝对值不超过 1000 的整数. 输出格式 输出 10 个交换后的整数,答案输出在一行 ...

  8. 列表转化成数组_30. 把数组排成最小的数

    把数组排成最小的数 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为3213 ...

  9. 【剑指offer-Java版】33把数组排成最小的数

    把数组排成最小的数 难点在于比较规则的确定以及比较规则的正确性证明 比如:仅仅是局部的两个数字的顺序较小,如何保证整个数组按此规则进行排序后达到全局的较小 书中关于这一点的证明直接用的反证法,忘的差不 ...

  10. 33:把数组排成最小的数

    /*** 面试题33:把数组排成最小的数* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.* 例如输入数组{3,32,321},则打印出这三个数字能排成的 ...

最新文章

  1. 一年暴涨近20倍,比特币是郁金香泡沫还是庞氏骗局?
  2. 《实现模式(修订版)》—第1章1.2节那么,现在……
  3. ikvm Java中异常_使用IKVMC将Java转换为.NET库 – 警告IKVMC0108:...
  4. java学习笔记-4.7
  5. oracle sqlplus @@用法
  6. 【神经网络】神经网络结构在命名实体识别(NER)中的应用
  7. 算法二之树形选择排序
  8. JavaSE:如何设置/获取您自己的文件和目录属性
  9. 牛客竞赛mjt的毒瘤赛
  10. 计算机组成原理教案pdf,计算机组成原理教案模板.pdf
  11. PDG转PDF全攻略
  12. 大数据下的供应商评分系统
  13. 用python搭建邮箱,自动收发邮箱
  14. 如何制作网页教程:如何制作网页最简单的方法
  15. uniapp的苹果全屏播放再退出会导致页面字体变大解决方法
  16. 如何保存你的登录密码
  17. c语言降序字母,怎么实现对数组的降序排序
  18. windows10系统如何安装日语输入法
  19. 长沙计算机学院欧阳登轶,我校学生在2020年湖南省第十六届“强智杯”大学生计算机程序设计竞赛中喜获一等奖...
  20. python 桑基图_3行代码基于python的matplotlib绘制桑基图

热门文章

  1. 大数据、云计算、人工智能的融合应用分析
  2. html5头像裁剪,H5头像裁剪的实现与坑位
  3. cp 命令 提示cp: 略过目录 “/root/temp/sk”
  4. Introducing Heka
  5. 目标检测中region proposal的作用?
  6. 制作openstack系统镜像
  7. 小米MIX 2还没上一代震撼,为什么却说雷军更自信了?
  8. phusion passenger standalone
  9. 软件项目管理案例复习题
  10. IE和Firefox浏览器下javascript、CSS兼容性研究