算法题一
来源:互联网 发布:人机界面编程 编辑:程序博客网 时间:2024/05/16 14:56
有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现
<?php$arr1 = [4,6,9,11,12,15];$arr2 = [-20,-18,-10,-9,-4];$arr3 = [-10,-5,1,3,9];//结果1: 4, 结果2: -4, 结果3: 1echo sprintf('结果1: %s, 结果2: %s, 结果3: %s', get_min($arr1), get_min($arr2), get_min($arr3));function get_min($arr) { //分为3中情况,全是正数,全是负数,正负数都有 //大于或等于0的话,最新就是第一个 if ($arr[0] >= 0) { return $arr[0]; } //全是负数,则绝对值最小是最后一个数字 if (($end = end($arr)) <= 0) { return $end; } $k = 0; foreach($arr as $key => $val) { if ($val >= 0 ) { $k = $key; break; } } //下标是k 和 下标是k-1 做比较 if ($arr[$k] >= abs($arr[$k - 1])) { return $arr[$k - 1]; } return $arr[$k];}
0 0
- 算法题(一)
- Java 算法题 一
- 算法题一
- 算法基础训练题(一)
- 算法基础训练题(一)
- 算法基础训练题(一)
- 【算法题一】 百钱买百鸡
- 面试算法题总结(一)
- 算法导论上机题一
- 算法谜题系列(一)
- 算法基础训练题(一)
- leetcode算法题(一)
- 基本算法题练习一
- 算法题:凑算式一
- 算法设计题一:栈
- 每日一题LeetCode+算法
- 面试算法题(一)
- 算法一
- Linux下安装MySQL
- 51nod 1117 聪明的木匠 (优先队列_STL)
- Java 代码实现分组
- 开心的金明
- java变长参数
- 算法题一
- Android Activity的跳转动画效果
- 移动浏览器前景畅想
- Android Fragment 真正的完全解析(下)
- fips2
- 安装nginx实录
- android系统自带的主题
- nginx平滑升级
- go语音之select