Median
来源:互联网 发布:淘宝商城公主裙 编辑:程序博客网 时间:2024/04/27 10:37
Given a unsorted array with integers, find the median of it.
A median is the middle number of the array after it is sorted.
If there are even numbers in the array, return the N/2
-th number after sorted.
java
public class Solution { /* * @param nums: A list of integers * @return: An integer denotes the middle number of the array */ public int median(int[] nums) { // write your code here if (nums == null || nums.length == 0) { return -1; } if (nums.length == 1) { return nums[0]; } return util(nums, 0, nums.length - 1, (nums.length - 1) / 2); } private int util(int[] nums, int start, int end, int k) { if (start > end) { return -1; } int left = start; int right = end; int pivot = nums[(left + right) / 2]; while (left <= right) { while (left <= right && nums[left] < pivot) { left++; } while (left <= right & nums[right] > pivot) { right--; } if (left <= right) { int temp = nums[left]; nums[left] = nums[right]; nums[right] = temp; left++; right--; } } if (k <= right) { return util(nums, start, right, k); } else if (k >= left) { return util(nums, left, end, k); } else { return nums[k]; } }}
class Solution: """ @param: nums: A list of integers @return: An integer denotes the middle number of the array """ def median(self, nums): # write your code here if nums == None or len(nums) == 0: return -1 return self.quickSelect(nums, 0, len(nums) - 1, (len(nums) - 1) / 2) def quickSelect(self, nums, start, end, k): if start > end: return -1 left, right = start, end pivot = nums[(left + right) / 2] while left <= right: while left <= right and nums[left] < pivot: left += 1 while left <= right and nums[right] > pivot: right -= 1 if left <= right: nums[left], nums[right] = nums[right], nums[left] left += 1 right -= 1 if k <= right: return self.quickSelect(nums, start, right, k) elif k >= left: return self.quickSelect(nums, left, end, k) else: return nums[k]
阅读全文
0 0
- Median
- Median
- Median
- median
- Median
- Median
- Median
- median
- median
- Median
- Median Filter
- M Median
- Find Median
- ZOJ3612 Median
- Median Filter
- zju2011 Median
- 1029. Median
- PAT_1029: Median
- strcpy()的注意事项以及strncpy()的用处
- iOS设备发展史
- ActionBar在AppCompatActivity中使用时的几个问题总结
- java 线程方法同步和同步块
- 《银翼杀手2049》:Cyberpunk新里程碑
- Median
- [数学?] Codeforces871C. Points, Lines and Ready-made Titles
- 笔试题4
- 内存四区
- 来自sklearn中的一个例子——Classifier comparison
- Java GUI之JDialog
- 自己模拟实现strcpy函数功能
- 补发Java代码
- 笔记markdown