唉!我知道我最終會得到這一點,但在這一點上,我差不多2個小時,仍然陷入困境。需要求助算法通過鋸齒陣列來解決索引
我需要解決針對特定位置的鋸齒陣列的每個「級別」的單獨索引。這很難解釋,但如果你想象一個3級鋸齒陣列[2,3,4]長度。如果你接下來要把它變成一個單一的數組,那麼它的大小就是24個。現在,假設你需要找到這些索引(每個級別的鋸齒形數組一個索引),它將等於單個數組索引22.它會是1,2,1。要弄清楚單個場景並不難,但我想知道算法是如何解決可變深度鋸齒陣列的這些值的。
這是我目前嘗試的一個簡單的代碼示例:
using System;
class Program
{
static void Main(string[] args)
{
// Build up the data and info about level depth
int[] levelDepth = new[] { 2, 3, 4 };
int[][][] data = new int[][][]
{
new int[][] { new int[4], new int[4], new int[4] },
new int[][] { new int[4], new int[4], new int[4] }
};
int requestedValue = 22;
float temp = requestedValue;
// Store the index of each level array to get to the index
// for the requested value
int[] levelIndexes = new int[3] { 0, 0, 0 };
// The following does not work!
int i = levelDepth.Length;
while (i > 0)
{
temp = temp/levelDepth[i - 1];
levelIndexes[i - 1] = (int)Math.Round(temp);
i--;
}
}
}
它不能正常工作,但它幾乎讓我我需要什麼,但我認爲這只是可遇不可求。我懷疑這是一個以前解決的常見問題,我只是沒有經驗來弄清楚。 :(
此外,在任何人告訴我使用這樣的數組是非常糟糕的或「爲什麼不存儲你的數據是這樣的」 - 上面的描述和代碼是模擬一些解碼器芯片在我們的硬件上的佈局和我需要找出一種方法來解決,以級聯芯片的特定圖形的路徑;上面的例子正好芯片的佈局相匹配,我堅持了下來
您是否需要實際的指標,或者僅僅是實際指標的值? – drharris
@drharris - 指數 –