相邻最大差值
2016-07-29 16:00
225 查看
题目描述
请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元素的最大差值。
给定一个整数数组A和数组的大小n,请返回最大差值。保证数组元素个数大于等于2小于等于500。
测试样例:
[9,3,1,10],4
返回:6
请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元素的最大差值。
给定一个整数数组A和数组的大小n,请返回最大差值。保证数组元素个数大于等于2小于等于500。
测试样例:
[9,3,1,10],4
返回:6
/** * 桶排序 * 数组元素映射到桶 * 相邻最大差值 = 连续空桶最多 + 1 * @param A * @param n * @return */ public int findMaxDivision(int[] A, int n) { int maxNum = A[0]; int minNum = A[0]; for (int i = 0; i < n; i++) { if (maxNum < A[i]) { maxNum = A[i]; } if (minNum > A[i]) { minNum = A[i]; } } int[] buckets = new int[maxNum - minNum + 1]; for (int i = 0; i < n; i++) { buckets[A[i] - minNum] = 1; } int max = 0 ; int count = 1; for (int i = 1,len = buckets.length; i < len; i++) { if (buckets[i] == 0) {//空桶,差值+1 ++count; }else { if (max < count) { max = count; } count = 1; } } return max; }
相关文章推荐
- 求无序数组排序后相邻两个数的最大差值
- 最大间隙问题。给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。
- 面试题 :相邻两数最大差值
- 相邻两数最大差值
- 桶---求无序数组排序后,最大的相邻差值
- 最大间隙问题。给定 n 个实数,求这n个实数在数轴上相邻2个数之间的最大差值,设计解最大间隙问题的线性时间算法。
- c++-相邻最大差值
- 给定一个无序数组,排序之后求相邻两数之间的最大差值
- 实数序列,求值相邻的两个元素的最大差值
- 排序数组中的相邻两数最大差值
- 求无序数组排序后相邻俩数最大差值(思路及详解)
- 相邻两数最大差值 -- 算法小结
- 相邻最大差值
- 求Maximim Gap 排序后的两个相邻元素之间的最大差值
- 相邻最大差值
- 算法--相邻两数最大差值
- 相邻两数最大差值
- 无序数组排序后的最大相邻差值
- 无序数组的相邻最大差值
- 无序数组求相邻元素最大差值(tiger基金的笔试题)