go--programming

command module
v0.0.0-...-b466aab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2025 License: MIT Imports: 1 Imported by: 0

README

Go--Programming

Simple projects that helped me sharpen my programming knowledge and skills in Go Programming language.

boot.dev

Week 1 – Arrays, Slices & Strings (Foundations)

Day 1

Reverse an array in-place.

Find the maximum element in an array.

Day 2

Rotate an array by k steps.

Check if an array is sorted.

Day 3

Merge two sorted arrays.

Remove duplicates from a sorted array.

Day 4

String reversal (with and without rune for Unicode safety).

Check if a string is a palindrome.

Day 5

Count vowels/consonants in a string.

Find the first non-repeating character.

Day 6

Two Sum problem using a hash map.

Move all zeros to the end of an array.

Day 7

Practice set: mix of 5 easy problems from above under 30 minutes.

Week 2 – Stacks, Queues & Linked Lists Goal: Implement custom stacks, queues, and linked lists in Go.

Day 8

Implement a stack using slices.

Valid Parentheses problem.

Day 9

Implement a queue (slice-based).

Sliding window maximum.

Day 10

Implement a circular queue.

Recent calls counter.

Day 11

Singly linked list: insert, delete, traverse.

Reverse a linked list.

Day 12

Detect cycle in linked list.

Merge two sorted linked lists.

Day 13

Implement a doubly linked list.

LRU Cache (map + doubly linked list).

Day 14

Practice set: 3–4 medium problems from stacks/queues/lists.

Week 3 – Trees, Graphs & Recursion Goal: Master recursion and traversal algorithms.

Day 15

Binary tree: preorder, inorder, postorder traversal.

Level-order traversal.

Day 16

Invert a binary tree.

Check if a binary tree is symmetric.

Day 17

Binary Search Tree (insert, search).

Lowest common ancestor in BST.

Day 18

Graph: adjacency list implementation.

DFS (recursive and iterative).

Day 19

BFS traversal.

Shortest path using BFS.

Day 20

Dijkstra’s algorithm.

Detect cycle in a graph.

Day 21

Practice set: 2 graph problems, 2 tree problems.

Week 4 – Sorting, Searching, DP & Mixed Goal: Combine knowledge for advanced problem solving.

Day 22

Implement bubble sort, merge sort, quicksort.

Day 23

Binary search (iterative + recursive).

Search in rotated sorted array.

Day 24

Recursion: subsets generation.

Recursion: n-queens problem.

Day 25

DP: Fibonacci (top-down & bottom-up).

DP: Climbing stairs.

Day 26

DP: Coin change.

DP: Longest increasing subsequence.

Day 27

Greedy: activity selection.

Greedy: minimum coins.

Day 28

Practice set: 6 problems from sorting, searching, DP.

Final Days – Mock Problem-Solving Day 29

Timed LeetCode session:

2 easy, 2 medium, 1 hard.

Day 30

Build a Mini Algorithm Library in Go:

Put all your implemented algorithms in a single pkg/algorithms folder.

Write unit tests for each function.

  Golang/
  │── go.mod
  │── README.md
  │
  ├── 1_foundations/
  │   ├── syntax/
  │   │   ├── functions.go
  │   │   ├── loops.go
  │   │   └── conditionals.go
  │   ├── slices_maps/
  │   │   ├── basics.go
  │   │   └── exercises.go
  │   ├── pointers_structs/
  │   │   ├── pointers.go
  │   │   ├── structs.go
  │   │   └── exercises.go
  │   └── interfaces/
  │       ├── interfaces.go
  │       └── exercises.go
  │
  ├── 2_core_data_structures/
  │   ├── arrays_slices/
  │   │   ├── reverse_array.go
  │   │   ├── rotate_array.go
  │   │   ├── merge_sorted_arrays.go
  │   │   └── arrays_slices_test.go
  │   ├── stacks/
  │   │   ├── stack.go
  │   │   ├── valid_parentheses.go
  │   │   └── evaluate_postfix.go
  │   ├── queues/
  │   │   ├── circular_queue.go
  │   │   ├── sliding_window_maximum.go
  │   │   └── recent_calls_counter.go
  │   ├── linked_lists/
  │   │   ├── singly_linked_list.go
  │   │   ├── doubly_linked_list.go
  │   │   ├── reverse_linked_list.go
  │   │   └── detect_cycle.go
  │   ├── hash_maps/
  │   │   ├── two_sum.go
  │   │   ├── group_anagrams.go
  │   │   └── hash_map_tips.md
  │   ├── trees/
  │   │   ├── binary_tree.go
  │   │   ├── bst.go
  │   │   ├── level_order_traversal.go
  │   │   ├── invert_binary_tree.go
  │   │   └── tree_utils.go
  │   └── graphs/
  │       ├── adjacency_list.go
  │       ├── dfs.go
  │       ├── bfs.go
  │       ├── dijkstra.go
  │       └── graph_utils.go
  │
  ├── 3_algorithms/
  │   ├── sorting/
  │   │   ├── bubble_sort.go
  │   │   ├── merge_sort.go
  │   │   ├── quick_sort.go
  │   │   ├── kth_largest.go
  │   │   └── merge_intervals.go
  │   ├── searching/
  │   │   ├── binary_search.go
  │   │   ├── ternary_search.go
  │   │   ├── search_rotated_array.go
  │   │   └── first_last_occurrence.go
  │   ├── recursion_backtracking/
  │   │   ├── n_queens.go
  │   │   ├── word_search.go
  │   │   └── subsets_generation.go
  │   ├── dynamic_programming/
  │   │   ├── fibonacci.go
  │   │   ├── climbing_stairs.go
  │   │   ├── coin_change.go
  │   │   └── lis.go
  │   └── greedy/
  │       ├── activity_selection.go
  │       └── minimum_coins.go
  │
  ├── utils/
  │   ├── timer.go
  │   ├── printer.go
  │   └── input.go
  └── tests/
      └── all_tests.go

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL