如何查找數字序列中的最低和最高值對?我想保存摺線圖的低/高值。查找序列中下一個最高和最低的數字
你能幫我用一張僞代碼,使人們可以實現自己喜愛的前衛語言的答案。
我將使用它來生成一個D3.js的線圖。如果有人知道如何用D3做到這一點,我會非常樂意瞭解它。
數據樣本: [,10,11,,15%,,10,,15,17,,15,]
Desired Result:
array[0][high] = 20
array[0][low] = 5
array[1][high] = 25
array[1][low] = 5
array[2][high] = 26
array[2][low] = 7
這就是我到目前爲止(使用Javascript)。你們是否看到我們可以優化這段代碼?
// data sample
var data_sample = Array(5, 15, 20, 15, 6, 11, 21, 14, 9, 4, 15, 20, 15, 1, 10, 20, 4);
// algo
var low = high = k = 0;
var log = [];
for (var i = 0; i < data_sample.length; i++) {
var current = data_sample[i];
var m = i+1;
var next = data_sample[m];
if (typeof next == 'undefined') {
break;
}
if (current < next) {
if (low === 0) {
low = current;
} else if (current < low) {
low = current;
}
} else if (current > next && low !== 0) {
if (high === 0) {
high = current;
} else if (current > high) {
high = current;
}
}
if (low > 0 && high > 0){
log[k] = [];
log[k]['low'] = low;
log[k]['high'] = high;
k++
low = high = 0;
}
};
預先感謝您
是你數組初始化一樣,或者它只是一個錯字?這不是多維的。 – andrex 2014-09-25 06:55:37
它是一個二維數組。這只是爲了說明結果數組將包含0維中序列的第一個高/低數字和第一個dim中的第二個低/高數值,依此類推。 – ndalpe 2014-09-25 07:20:41
我發佈了一個答案,但刪除了它,因爲它依賴於選擇3個結果,是由你來選擇? – elclanrs 2014-09-25 07:29:59