трансформация 1D массива в nD массив
Подскажите, как можно одномерный массив использовать в качестве многомерного?
Например есть массив int[] a = {1,2,3,4,5,6,7,8,9}. Надо реализовать функцию, которая даст мне индекс массива, в зависимости от измерения. Припустим если представить этот массив в 1D, то getIndex(new int[]{2}) должно видать "3", а в 2D getIndex(new int[]{1,1}) "5" . P.S. массив в аргументе функции: длина - количество измерений(Dimension) массива, елементы - индексы каждого измерения. |
Ответ: трансформация 1D массива в nD массив
если 2д индекс, то y*width+x
3д индекс соответственно z*width*height + y*width+x |
Ответ: трансформация 1D массива в nD массив
Это я знаю... Но мне надо для n-мерного массива...
|
Ответ: трансформация 1D массива в nD массив
входные данные:
int[] size - массив в котором размерности. Он известен заранее. int[] val - массив в котором координаты нужного элемента. Последний элемент size[size.Lenght-1] хоть в алгоритме и не используется, но он нужен будит для проверки, что val[i] < size[i]. Код:
public int GetIndex(int[] val) |
Часовой пояс GMT +4, время: 02:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot