Problem:
Given n>=0, create an array length n*n with the following pattern, shown here for n=3 : {0, 0, 1, 0, 2, 1, 3, 2, 1} (spaces added to show the 3 groups).
squareUp(3) → {0, 0, 1, 0, 2, 1, 3, 2, 1}
squareUp(2) → {0, 1, 2, 1}
squareUp(4) → {0, 0, 0, 1, 0, 0, 2, 1, 0, 3, 2, 1, 4, 3, 2, 1}

Solution:
public int[] squareUp(int n) {
int[] result = new int[n * n];
int x = n-1, pass = 1, index = 0;
if(n == 0) { return result; }
for(int i = n-1; i < result.length; i+=n) {
index = i;
for(int k = 1; k <= pass; k++) {
if(k == 0) { break; }
result[index] = k;
index--;
}
pass++;
}
return result;
}
No comments:
Post a Comment