【发布时间】:2013-06-12 14:04:16
【问题描述】:
好的,我有一个包含一些值的随机数组:
Integer[] array = {null,null,5,111,21,null,22,null,null,null,98,25,47,null,1,23,null}
我想用最接近的两个现有数组值的平均值替换所有 null 值。
例如:前两个null 值需要替换为数字5({null,null,5,... 变为{5,5,5,...)。
下一个例子:{...,22,null,null,null,98,...} 应该变成:{...,22,60,60,60,98,...};所有三个null 值都将替换为22 和98 ((22+98)/2) 的平均值。
最后一个例子:{...,23,null}应该变成{...,23,23}; null 被替换为 23,因为它是数组的最后一个元素。
有人知道如何为这个问题编写算法吗?
【问题讨论】:
-
为什么将前两个空值替换为 5 而不是最接近的两个现有数组值的平均值,即 5 和 111?
-
@jwpat7:“两个最近”应该理解为空值左右分别取的2个最近的值,我假设。
-
@haylem 也许,也许不是......这个问题根本不够清楚。
-
抱歉,回答迟了。当数组以空值开头时,将它们替换为右侧的第一个现有值,因为如果该空值的右侧和左侧都没有现有值,则无法计算空值的平均值。空值两边都必须有整数值。
标签: java arrays algorithm null