Bird
Raised Fist0
DSA Goprogramming~20 mins

Array Traversal Patterns in DSA Go - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested loop array traversal
What is the output of the following Go code that traverses a 2D array?
DSA Go
package main
import "fmt"
func main() {
	arr := [][]int{{1, 2}, {3, 4}}
	for i := 0; i < len(arr); i++ {
		for j := 0; j < len(arr[i]); j++ {
			fmt.Print(arr[i][j], " ")
		}
	}
}
A1 2 3 4
B1 3 2 4
C3 4 1 2
D2 1 4 3
Attempts:
2 left
💡 Hint
Think about how nested loops iterate row by row and column by column.
❓ Predict Output
intermediate
2:00remaining
Output of reverse traversal of an array
What is the output of this Go code that traverses an array backwards?
DSA Go
package main
import "fmt"
func main() {
	arr := []int{5, 10, 15, 20}
	for i := len(arr) - 1; i >= 0; i-- {
		fmt.Print(arr[i], " ")
	}
}
A20 15 10 5
B5 10 15 20
C20 10 15 5
D15 20 10 5
Attempts:
2 left
💡 Hint
The loop starts from the last index and moves to the first.
🔧 Debug
advanced
2:00remaining
Identify the runtime error in array traversal
What error will this Go code produce when run?
DSA Go
package main
import "fmt"
func main() {
	arr := []int{1, 2, 3}
	for i := 0; i <= len(arr); i++ {
		fmt.Print(arr[i], " ")
	}
}
Aprints: 1 2 3
Bruntime error: index out of range
Cprints: 1 2 3 0
Dcompilation error: invalid loop condition
Attempts:
2 left
💡 Hint
Check the loop condition and array indexing carefully.
🧠 Conceptual
advanced
2:00remaining
Understanding stride in array traversal
In Go, what will be the output of this code that traverses an array with a step of 2?
DSA Go
package main
import "fmt"
func main() {
	arr := []int{10, 20, 30, 40, 50}
	for i := 0; i < len(arr); i += 2 {
		fmt.Print(arr[i], " ")
	}
}
A50 30 10
B20 40
C10 20 30 40 50
D10 30 50
Attempts:
2 left
💡 Hint
The loop increments index by 2 each time, skipping every other element.
🚀 Application
expert
2:00remaining
Find the sum of elements at even indices
What is the value of variable sum after running this Go code that sums elements at even indices?
DSA Go
package main
import "fmt"
func main() {
	arr := []int{3, 6, 9, 12, 15, 18}
	sum := 0
	for i := 0; i < len(arr); i++ {
		if i%2 == 0 {
			sum += arr[i]
		}
	}
	fmt.Print(sum)
}
A33
B63
C27
D54
Attempts:
2 left
💡 Hint
Add elements at indices 0, 2, and 4 only.

Practice

(1/5)
1. What does the following Go code snippet do?
for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) }
easy
A. Prints each element of the array from start to end
B. Prints the array elements in reverse order
C. Prints only the first element of the array
D. Causes a runtime error due to index out of range

Solution

  1. Step 1: Understand the loop structure

    The loop starts at index 0 and runs while i is less than the length of the array, increasing i by 1 each time.
  2. Step 2: Analyze the print statement inside the loop

    Each iteration prints the element at index i, so all elements from start to end are printed in order.
  3. Final Answer:

    Prints each element of the array from start to end -> Option A
  4. Quick Check:

    Loop from 0 to len(arr)-1 prints all elements [OK]
Hint: Loop from 0 to len(arr) prints all elements in order [OK]
Common Mistakes:
  • Thinking it prints in reverse order
  • Assuming it prints only one element
  • Confusing loop condition causing error
2. Which of the following is the correct syntax to traverse an array arr using a range-based for loop in Go?
easy
A. for value in arr { fmt.Println(value) }
B. for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) }
C. for index, value := range arr { fmt.Println(index, value) }
D. foreach i in arr { fmt.Println(arr[i]) }

Solution

  1. Step 1: Recall Go's range syntax

    Go uses for index, value := range arr to iterate over arrays or slices.
  2. Step 2: Check each option

    for index, value := range arr { fmt.Println(index, value) } matches the correct syntax. for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) } is valid but not range-based. Options C and D are invalid Go syntax.
  3. Final Answer:

    for index, value := range arr { fmt.Println(index, value) } -> Option C
  4. Quick Check:

    Range loop syntax = for index, value := range arr { fmt.Println(index, value) } [OK]
Hint: Use 'for index, value := range arr' for range loops in Go [OK]
Common Mistakes:
  • Using Python or other language syntax
  • Confusing traditional for loop with range loop
  • Using invalid keywords like foreach
3. What is the output of the following Go code?
arr := []int{10, 20, 30, 40}
for i := len(arr) - 1; i >= 0; i-- {
    fmt.Print(arr[i], " ")
}
medium
A. 10 20 30 40
B. 40 30 20 10
C. Runtime error due to invalid index
D. No output

Solution

  1. Step 1: Understand the loop range

    The loop starts at index len(arr)-1 (3) and decrements i until it reaches 0.
  2. Step 2: Trace the printed values

    Indexes printed: 3, 2, 1, 0 corresponding to values 40, 30, 20, 10 printed with spaces.
  3. Final Answer:

    40 30 20 10 -> Option B
  4. Quick Check:

    Reverse loop prints elements backward [OK]
Hint: Loop from len(arr)-1 down to 0 prints array in reverse [OK]
Common Mistakes:
  • Assuming forward order output
  • Off-by-one errors causing runtime error
  • Confusing loop condition direction
4. Identify the error in this Go code snippet that tries to print all elements of an array arr:
for i := 0; i <= len(arr); i++ {
    fmt.Println(arr[i])
}
medium
A. The print statement syntax is incorrect
B. The loop variable should start from 1 instead of 0
C. The array arr is not declared
D. The loop condition should be i < len(arr) to avoid index out of range

Solution

  1. Step 1: Analyze the loop condition

    The loop runs while i <= len(arr), which means i can equal len(arr), an invalid index.
  2. Step 2: Understand array indexing

    Array indexes go from 0 to len(arr)-1. Accessing arr[len(arr)] causes runtime error.
  3. Final Answer:

    The loop condition should be i < len(arr) to avoid index out of range -> Option D
  4. Quick Check:

    Index must be less than length, not less or equal [OK]
Hint: Use i < len(arr) to avoid out-of-range errors [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Starting loop at 1 instead of 0
  • Ignoring array declaration errors
5. Given an array arr := []int{1, 2, 3, 4, 5}, which code snippet correctly prints only the elements at even indexes (0, 2, 4)?
hard
A. for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") }
B. for i := 1; i < len(arr); i += 2 { fmt.Print(arr[i], " ") }
C. for _, v := range arr { if v%2 == 0 { fmt.Print(v, " ") } }
D. for i := len(arr)-1; i >= 0; i-- { if i%2 == 1 { fmt.Print(arr[i], " ") } }

Solution

  1. Step 1: Understand the requirement

    We want to print elements at even indexes: 0, 2, 4.
  2. Step 2: Check each option

    for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } increments i by 2 starting at 0, correctly accessing even indexes. for i := 1; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } accesses odd indexes. for _, v := range arr { if v%2 == 0 { fmt.Print(v, " ") } } prints even values, not indexes. for i := len(arr)-1; i >= 0; i-- { if i%2 == 1 { fmt.Print(arr[i], " ") } } prints odd indexes in reverse.
  3. Final Answer:

    for i := 0; i < len(arr); i += 2 { fmt.Print(arr[i], " ") } -> Option A
  4. Quick Check:

    Increment by 2 from 0 prints even indexes [OK]
Hint: Increment index by 2 starting at 0 for even indexes [OK]
Common Mistakes:
  • Confusing even indexes with even values
  • Starting loop at 1 instead of 0
  • Using incorrect loop increments
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard