Solution Review: Index Array
Let’s take a detailed look at the previous challenge’s solution.
First solution
We’ll use nested loops:
- The outer loop will help us store the value of index
i
incurr
. - In the inner loop, we have to swap the values to the respective index position in the array. If that position is not available, we have to place
-1
there.
Press + to interact
package mainimport("fmt")func indexArray(arr []int, size int) {for i := 0; i < size; i++ {curr := ivalue := -1/* swaps to move elements in the proper position. */for arr[curr] != -1 && arr[curr] != curr {temp := arr[curr]arr[curr] = valuevalue = tempcurr = temp}/* check if some swaps happened. */if value != -1 {arr[curr] = value}}}/* Testing code */func main() {arr := []int{8, -1, 6, 1, 9, 3, 2, 7, 4, -1}size := len(arr)indexArray(arr, size)fmt.Println(arr)}
Time complexity
The time complexity of the solution is ...
Get hands-on with 1400+ tech skills courses.