您的位置:首页 > 其它

在一个非递减数组中找到绝对值最小的数字

2012-10-16 10:21 393 查看
1、如果都是正数,则是值最小的那个。

2、如果都是负数,则是值最大的那个。

3、如果有整数有负数,则应该找到整数和负数的分界线位置,绝对值最小的数在哪个位置。

参见这里

其中,在第三个情况里面,可以使用二分搜索。

low和high两个指针,

如果mid跟lowd的符号相同,则low=mid,

如果mid跟high的符号相同,则high=mid,

直到low==high或者low+1==high的时候,

如果low==high了,那么这个位置就是要返回的位置,

如果low+1==high了,那么判断这两个位置的绝对值,小的那个就是要返回位置了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐