Contents
ΕΝΟΤΗΤΑ 1 — PACKAGES & PROJECT
Go Modules go mod init Το αρχείο go.mod Εξωτερικές εξαρτήσεις Packages Import και alias Το δικό μας package Exported vs unexported Η function init() Οργάνωση project Sub-packages Κυκλικές εξαρτήσεις Standard project layout
ΕΝΟΤΗΤΑ 2 — CLI
os.Args Iteration στα ορίσματα Το package flag Ορισμός flag Ανίχνευση flags flag.Args() Από string σε αριθμό
ΕΝΟΤΗΤΑ 3 — PATTERNS
Γιατί χρειαζόμαστε patterns Result variable — accumulator Boolean switch Break, continue, early return Sentinel value Η αξία των patterns Min/Max Tracking Προηγούμενη τιμή Two pointers Sliding window Variable-size window Complement lookup Challenge: δεύτερος μεγαλύτερος Όλα τα patterns
ΕΝΟΤΗΤΑ 4 — ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
Βασικές δομές δεδομένων Stack — LIFO Challenge: ισορροπημένες παρενθέσεις Queue — FIFO Deque Αφαίρεση από τη μέση Hash map, set, heap Εισαγωγή στη μέση Όλες οι δομές
ΕΝΟΤΗΤΑ 5 — ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ
Big-O Οι έξι περιπτώσεις Μέτρηση σε δικό σου κώδικα Αναζήτηση Binary search Ταξινόμηση Το package slices slices.SortFunc Anonymous functions slices.Sort vs sort.Slice Bubble sort Οι υπόλοιποι αλγόριθμοι Challenge: binary search Αναζήτηση & ταξινόμηση
ΕΝΟΤΗΤΑ 6 — RECURSION
Recursion Base case Το call stack Τα δύο υποχρεωτικά μέρη Unwinding phase Arguments στην αναδρομή Divide and conquer Merge sort Γιατί βγαίνει O(n log n) Πώς σκέφτεσαι αναδρομικά Οι τρεις παγίδες Υπάρχει break στο recursion; Challenge: άθροισμα ψηφίων Challenge: λαβύρινθος Recursion, με μια ματιά
ΕΝΟΤΗΤΑ 7 — GREEDY & BACKTRACKING
Greedy Ρωμαϊκοί αριθμοί Συσκέψεις στην αίθουσα Ο σκελετός ενός greedy Πότε να το εμπιστευτείς Challenge: πόσες εργασίες Backtracking Ο σκελετός σε τρεις γραμμές Το base case Επιλογές «ναι» ή «όχι» Το δέντρο αποφάσεων Pruning Loop μέσα στο recursion N βασίλισσες Ο έλεγχος απειλής Ο αλγόριθμος Sudoku Πότε ποιο Ο πίνακας απόφασης Greedy & backtracking
ΕΝΟΤΗΤΑ 8 — DYNAMIC PROGRAMMING
Memoization Tabulation Πότε λύνεται με DP Τα ρέστα, σωστά αυτή τη φορά Δύο διαστάσεις Τι άλλο υπάρχει Challenge: πόσοι τρόποι Δυναμικός προγραμματισμός
ΕΠΙΛΟΓΟΣ
Όλα όσα είδαμε Το δέντρο αποφάσεων Τελικό glossary