Implement Prototype[T comparable](values []T) []T by scanning earlier retained values (O(n²)); Solve[T comparable] uses a membership map for expected O(n). Return the first occurrence of each distinct value in original order, comparing by Go ==. Inputs are concrete comparable values with safe equality; no interface values containing uncomparable dynamic data. Return a detached nonnil empty slice for nil/empty input. Preserve original storage; do not sort or coerce types. Named types and pointer identity must be preserved. Extra memory O(number of unique values).

Edit exercise.go; retain the public types and signatures. prototype and final are separate stages. The executable tests recover panics as failures, report named checks, and exit nonzero on any failure. A successful run must execute at least one check. Tests use logical time or explicit synchronization where relevant.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.