You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: A comprehensive explanation of the Breadth First Search (BFS) algorithm, including implementation, complexity analysis, and mathematical proofs. The document covers the algorithm's properties for finding shortest paths in graphs and includes Python implementations with detailed theoretical foundations and lemmas about level ordering.
description: A technical exploration of Directed Acyclic Graphs (DAGs) focusing on their topological ordering properties and fundamental lemmas. The document includes mathematical proofs of key DAG properties and presents a Python implementation of the topological sorting algorithm.
Copy file name to clipboardexpand all lines: algorithms/DFS.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Depth First Search Algorithm and Tree Properties
3
-
category: algorithms
3
+
category: Algorithms
4
4
tags: graph theory, depth first search, spanning trees, graph traversal
5
5
description: A technical explanation of Depth First Search (DFS) algorithm and its tree properties, including both recursive and iterative implementations. The document covers key properties of DFS trees, including the ancestor-descendant relationship of non-tree edges, and includes a formal lemma and proof about DFS tree characteristics.
description: Explains how to partition an undirected graph into connected components using BFS or DFS algorithms in O(|V| + |E|) time complexity. Includes Python implementation using adjacency lists and demonstrates how to create a data structure that enables O(1) time queries for path existence between vertices.
description: A comprehensive examination of divide and conquer algorithmic strategies, focusing on their implementation and analysis. The document covers theoretical foundations with mathematical proofs, practical examples including bisection method and closest pair problem, and includes Python implementations demonstrating these concepts.
description: A comprehensive guide covering various dynamic programming algorithms and their implementations, including knapsack, sequence alignment, and tree-based problems. Includes detailed explanations of problem-solving approaches, correctness proofs, and runtime analysis for each algorithm, with practical Python implementations.
Copy file name to clipboardexpand all lines: algorithms/patterns/sliding-window.md
+2-2
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Sliding Window Pattern
3
-
category: algorithms
3
+
category: Algorithms
4
4
tags: sliding window, fixed size window, dynamic size window, streaming algorithms, array problems, contiguous subarray, linear data structure
5
5
description: A technical exploration of the sliding window pattern in algorithms, focusing on its applications and variations.
6
6
---
@@ -40,7 +40,7 @@ Some problems will require you to `map` (as in apply a function to each element
40
40
Dynamic size windows often involve more complicated logic within each iteration, since at any given step you need to decide whether to expand or contract the window, on top of how to update the window state for each case.
description: A comprehensive overview of graph theory, including concepts such as nodes, edges, trees, and minimum spanning trees, as well as algorithms like depth-first search and breadth-first search.
description: A comprehensive overview of electronic components used in electronics devices, including Transistors, Op-Amps, Filters, Amplifiers, and Comparators.
6
6
---
@@ -9,7 +9,7 @@ description: A comprehensive overview of electronic components used in electroni
9
9
10
10
## DC Sources
11
11
12
-
Direct current sources are sources that provide a constant voltage or current. Batteries are a common example of a DC voltage source. If you graph the voltage over time, it's a flat line.
12
+
Direct current sources are sources that provide a constant voltage or current. Batteries are a common example of a DC voltage source. If you graph the voltage over time, it's a flat line.
13
13
14
14
Voltage sources supply the required current to maintain a constant voltage, and current sources supply the required voltage to maintain a constant current.
description: In-depth analysis of electric circuits, including short and open circuits, Ohm's law, Kirchoff's laws, impedance, power, and energy. A comprehensive guide for electrical engineers and students.
6
6
---
@@ -11,11 +11,11 @@ description: In-depth analysis of electric circuits, including short and open ci
11
11
12
12
Electricity, being the flow of electrons, is similar to many other types of flow. For prosperity, engineers use **conventional current**, a bad theory made long ago that positive charges flow from high potential to low potential. In reality, electrons are negatively charged and flow from low potentials to high potentials.
13
13
14
-
**Potential**? What's that? It's the energy per unit charge at a point in space. It's measured in volts, and is the driving force behind the flow of electricity. From this point on I'll refer to potential as voltage, like a true engineer.
14
+
**Potential**? What's that? It's the energy per unit charge at a point in space. It's measured in volts, and is the driving force behind the flow of electricity. From this point on I'll refer to potential as voltage, like a true engineer.
15
15
16
16
If you're smooth brained like me, it helps to think of it as similar to potential energy of balls on a track, but for electrons. A higher voltage means the electron has a long way to fall. This model only takes you so far, but it helps as a mental model for characterizing the behavior of electricity.
17
17
18
-
If potential is the driving factor behind the flow of electricity (like gravity), then **current** is the magnitude of the flow itself (like throughput). It's measured in amperes (A, Amp), which is a compound unit of charge per unit time.
18
+
If potential is the driving factor behind the flow of electricity (like gravity), then **current** is the magnitude of the flow itself (like throughput). It's measured in amperes (A, Amp), which is a compound unit of charge per unit time.
19
19
20
20
Finally, **resistance** is the opposition to the flow of electricity. It's measured in ohms ($\Omega$), and can be thought of as anything that drops the voltage (like a hill or friction for potential energy) when current flows through it.
description: Explains the concept of combinatorial logic, its differences with sequential logic, and various techniques for minimizing boolean expressions.
Copy file name to clipboardexpand all lines: distributed-systems/bigtable.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Bigtable, A Distributed Storage System for Structured Data
3
-
category: distributed-systems
3
+
category: Distributed Systems
4
4
tags: Bigtable, Distributed Storage, Google
5
5
description: A highly scalable, reliable, and fault-tolerant distributed storage system designed for structured data. Built by Google, it uses a combination of commodity hardware and software to provide low-latency, high-throughput access to large amounts of data.
description: This document discusses various consistency models used in distributed systems, including Paxos, linearizability, sequential consistency, snapshot reads, causal consistency, processor consistency, and memory barriers. It explains the differences between these models and when to use them.
6
6
---
@@ -13,7 +13,7 @@ Consistency specifies the interface (as opposed to implementation) for behavior
| Strong Consistency | The system behaves as if there is a single server. Systems that maintain a single consistent log of operations are often strongly consistent. |
19
19
| Weak Consistency | Definitions vary, but basically just *not* strong consistency. |
Copy file name to clipboardexpand all lines: distributed-systems/distributed-cache-coherence.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Linearizable Caches
3
-
category: distributed-systems
3
+
category: Distributed Systems
4
4
tags: Cache Coherence, Consistency Models, Distributed Systems
5
5
description: A linearizable cache is a cache that provides strong consistency guarantees for reads and writes. It is a type of cache coherence protocol that ensures all copies of data are consistent with each other, even in the presence of failures or network partitions.
description: A highly available key-value storage system sacrificing consistency under failure conditions, using object versioning and application assisted conflict resolution.
Copy file name to clipboardexpand all lines: distributed-systems/google-file-system.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Google File System (GFS) Overview
3
-
category: distributed-systems
3
+
category: Distributed Systems
4
4
tags: Cloud Storage, Distributed Systems, Google Cloud
5
5
description: An overview of the Google File System (GFS), a highly scalable and fault-tolerant distributed storage system designed to handle large amounts of data across many commodity hardware nodes.
description: This document discusses various consistency models used in distributed systems, including Paxos, linearizability, sequential consistency, snapshot reads, causal consistency, processor consistency, and memory barriers. It explains the differences between these models and when to use them.
6
6
---
7
7
---
8
8
title: Distributed Consensus Fundamentals
9
-
category: distributed-systems
9
+
category: Distributed Systems
10
10
tags: Distributed Systems, Consensus Algorithms
11
11
description: This document covers the fundamentals of distributed consensus algorithms, including leader election, replicated state machines, reliable datastores, and coordination services.
0 commit comments