# -*- coding: utf-8 -*-
'''
Python程序员面试算法宝典---解题总结: 第4章 数组 4.2 如何查找数组中元素的最大值和最小值
题目:
给定数组a1,a2,a3,..,an,要求找出数组中的最大值和最小值。
假设数组中的值两两各不相同。
分析:
我记得之前有分治算法的题目就是求数组的最大值和最小值的。
最简单的方法就是遍历整个数组用两个变量minValue和maxVale来记录最小值和最大值。
分治算法的思想:
将问题划分成更小的问题,对小问题求解,将各个小问题的求解值汇总,
然后求解出大问题的值。
关键:
1 分治三步骤
1) 划分子问题,2) 递归, 3)合并
2 为了减少递归的次数
在只有两个元素的时候直接比较,而不是通过递归来比较
# 如果有两个元素就可以比较大小了,节省递归次数
if begin + 1 == end:
if data[begin] > data[end]:
return data[end], data[begin]
else:
return data[begin], data[end]
参考:
Python程序员面试算法宝典
'''
class MyArray(object):
def __init__(self):
self.min = float('inf')
self.max = float('-inf')
def findMinAndMax(self, data, begin, end):
if not data:
return None, None
if begin > end
Python程序员面试算法宝典---解题总结: 第4章 数组 4.2 如何查找数组中元素的最大值和最小值
最新推荐文章于 2022-09-02 12:49:11 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)