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
¶
There is no documentation for this package.