鑑於:實數的數組A[1..n]
。對於每個元素A [i]於陣列A的,找到最接近Ĵ使得A [J]> A [I]
目標:數組D[1..n]
使得
D[i] = min{ distance(i,j) : A[j] > A[i] }
或一些默認值(如0)當不存在更高值元素。我真的很想在這裏使用歐幾里德距離。
例:
A = [-1.35, 3.03, 0.73, -0.06, 0.71, -0.21, -0.12, 1.49, 1.41, 1.42]
D = [1, 0, 1, 1, 2, 1, 1, 6, 1, 2]
是否有任何方式打敗明顯O(n
^2)溶液?我迄今取得的唯一進展是D[i] = 1
,只要A[i]
不是本地最大值。我一直在想很多,並沒有提出什麼。我希望最終擴展到2D(所以A
和D
是矩陣)。
你的符號很好很簡潔,但如果你用英文解釋的話,它可能會更有用(你可能會得到更多的答案)。 – noah 2010-03-31 20:08:24
需要'家庭作業'標籤? – 2010-03-31 21:08:31
noah:謝謝!我試圖用較少的符號來書寫標題,但是當我將它呈現給坐在我旁邊的兩個人時,他們不喜歡它。我能想到的最好的結果是「在數組的每個元素上,找到最接近數組的元素。」 Paul R:這實際上是我正在研究的一個更大項目中的一小部分,這不是作業。但你是對的,它看起來像功課。 – SamH 2010-03-31 21:32:04