1.我们的程序运行过程中每分钟会采集一个整数的数据指标。
持续采集n分钟就得到一个有n个元素的整数数组a[n]。
现在我们需要一个简单的算法,检测采集到的数据指标中,是否有异常。
异常的检测标准是:如果在连续m分钟内的指标的平均值大于w,则说明有异常。
输入:数组a[n], 正整数m, 整数w
返回:有异常返回 1,没有异常返回 0
例如:对于a={1, 5, 1, 3, 2}, m=2, w=2, 返回:1
附加说明:不同的实现方式执行效率不一样,如果能找到一个很高效的算法就更好了。
2、我们的程序运行过程中用到了一个数组a,数组元素是一个Map/Dictionary。
数组元素的“键”和“值”都是字符串类型。在不同的语言中,对应的类型是:
PHP的array, Java的HashMap, C++的std::map, Objective-C的NSDictionary, Swift的Dictionary, Python的dict, JavaScript的object, 等等
示例:
a[0]["key1"]="value1"
a[0]["key2"]="value2"
a[1]["keyA"]="valueA"
...
为了方便保存和加载,我们使用了一个基于文本的存储结构,数组元素每行一个:
text="key1=value1;key2=value2\nkeyA=valueA\n..."
要求:请实现一个“保存”函数、一个“加载”函数。
text=store(a);
a=load(text);
这两个函数分别用于把数组保存到一个文本字符串中、把文本字符串中的内容读取为数组。
必须自己手写代码实现保存/加载逻辑,严格按照上述的“每行一个、key=value”的格式保存。
附加说明:基于上述格式,如果value中有特殊字符,比如有换行符/分号等怎么办?