Bird
Raised Fist0
Goprogramming~5 mins

Array length in Go - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array length
O(1)
Understanding Time Complexity

We want to understand how long it takes to find the length of an array in Go.

Does the time change if the array is bigger or smaller?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


package main

import "fmt"

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    length := len(arr)
    fmt.Println(length)
}
    

This code creates an array and gets its length using the built-in len function.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Accessing the array length property.
  • How many times: Exactly once, no loops or traversals.
How Execution Grows With Input

Getting the length does not depend on how big the array is.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The operation count stays the same no matter the array size.

Final Time Complexity

Time Complexity: O(1)

This means getting the length of an array takes the same amount of time no matter how big the array is.

Common Mistake

[X] Wrong: "Getting the length of an array takes longer if the array is bigger because it counts each item."

[OK] Correct: The length is stored as a property, so Go does not count items each time. It just reads the stored value instantly.

Interview Connect

Knowing that array length access is very fast helps you understand what operations are costly and which are not. This skill helps you explain your code clearly in interviews.

Self-Check

"What if we used a slice instead of an array? Would getting the length still be as fast?"

Practice

(1/5)
1. What does the len() function return when used with an array in Go?
easy
A. The memory size of the array in bytes
B. The number of elements in the array
C. The capacity of the array's underlying slice
D. The last element of the array

Solution

  1. Step 1: Understand the purpose of len() in Go

    The len() function returns the count of elements in arrays, slices, maps, and strings.
  2. Step 2: Apply len() to an array

    When used on an array, len() returns the fixed number of elements it holds.
  3. Final Answer:

    The number of elements in the array -> Option B
  4. Quick Check:

    len(array) = number of elements [OK]
Hint: len() always gives count of elements in an array [OK]
Common Mistakes:
  • Confusing len() with capacity
  • Thinking len() returns memory size
  • Assuming len() returns last element
2. Which of the following is the correct way to get the length of an array named arr in Go?
easy
A. len(arr)
B. arr.length
C. size(arr)
D. length(arr)

Solution

  1. Step 1: Recall Go syntax for length

    In Go, the built-in function len() is used to get the length of arrays and slices.
  2. Step 2: Check each option

    Only len(arr) is valid syntax; others are invalid or do not exist in Go.
  3. Final Answer:

    len(arr) -> Option A
  4. Quick Check:

    Use len() function for array length [OK]
Hint: Use len(array) to get length, not dot or other functions [OK]
Common Mistakes:
  • Using dot notation like arr.length
  • Using non-existent functions like length() or size()
  • Confusing with other languages' syntax
3. What will be the output of this Go program?
package main
import "fmt"
func main() {
    arr := [4]int{10, 20, 30, 40}
    fmt.Println(len(arr))
}
medium
A. 0
B. 3
C. 4
D. Compilation error

Solution

  1. Step 1: Analyze the array declaration

    The array arr is declared with 4 elements: 10, 20, 30, 40.
  2. Step 2: Understand len(arr)

    The len() function returns the number of elements, which is 4.
  3. Final Answer:

    4 -> Option C
  4. Quick Check:

    len([4]int{...}) = 4 [OK]
Hint: Count elements inside [ ] to find length [OK]
Common Mistakes:
  • Counting elements incorrectly
  • Thinking len() returns last index (3)
  • Expecting runtime error
4. Identify the error in this Go code snippet:
package main
import "fmt"
func main() {
    arr := [3]int{1, 2, 3}
    fmt.Println(len(arr))
    fmt.Println(arr[3])
}
medium
A. fmt.Println cannot print arrays
B. len(arr) is invalid for arrays
C. Array declaration syntax is wrong
D. Accessing arr[3] causes an index out of range error

Solution

  1. Step 1: Check array length and indexing

    The array arr has length 3, so valid indices are 0, 1, and 2.
  2. Step 2: Identify invalid index access

    Accessing arr[3] is out of range and causes a runtime panic.
  3. Final Answer:

    Accessing arr[3] causes an index out of range error -> Option D
  4. Quick Check:

    Array indices go from 0 to len-1 [OK]
Hint: Array indices start at 0, max index = length-1 [OK]
Common Mistakes:
  • Assuming len(arr) is invalid
  • Thinking fmt.Println can't print arrays
  • Confusing array length with capacity
5. Given two arrays in Go:
arr1 := [5]int{1, 2, 3, 4, 5}
arr2 := [3]int{10, 20, 30}
Which expression correctly checks if arr2 has fewer elements than arr1?
hard
A. len(arr2) < len(arr1)
B. len(arr1) < len(arr2)
C. arr2.length < arr1.length
D. size(arr2) < size(arr1)

Solution

  1. Step 1: Identify lengths of both arrays

    arr1 has length 5, arr2 has length 3.
  2. Step 2: Write correct comparison syntax

    Use len() to get lengths. To check if arr2 is smaller, compare len(arr2) < len(arr1).
  3. Final Answer:

    len(arr2) < len(arr1) -> Option A
  4. Quick Check:

    len(arr2) = 3 < 5 = len(arr1) [OK]
Hint: Use len() and compare lengths directly [OK]
Common Mistakes:
  • Using wrong function names like length or size
  • Reversing comparison order
  • Using dot notation for length
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