From 36203ac074400872c6acbec7a586c2ecbd3091d7 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 31 Mar 2018 19:14:40 -0700 Subject: [PATCH 01/32] Update graph_resources.md --- graphs/graph_resources.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/graphs/graph_resources.md b/graphs/graph_resources.md index fb581ef..534906d 100644 --- a/graphs/graph_resources.md +++ b/graphs/graph_resources.md @@ -23,10 +23,13 @@ ## Extra graph algorithms **NOTE**: This section covers algorithms that will generally not come up in interviews. ### Union find, disjoint sets +Guide:https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/ +Interview question bank: https://leetcode.com/tag/union-find/ ### Shortest paths algorithms +Guide: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/tutorial/ +Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/ ### Minimum spanning tree algorithms - - -## Resources +Guide: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/ +Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/practice-problems/ From edb65617fde1254bfb4291d9c6d0abaf930019b5 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 31 Mar 2018 19:16:04 -0700 Subject: [PATCH 02/32] Update graph_resources.md --- graphs/graph_resources.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/graphs/graph_resources.md b/graphs/graph_resources.md index 534906d..8c0b40e 100644 --- a/graphs/graph_resources.md +++ b/graphs/graph_resources.md @@ -23,13 +23,13 @@ ## Extra graph algorithms **NOTE**: This section covers algorithms that will generally not come up in interviews. ### Union find, disjoint sets -Guide:https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/ -Interview question bank: https://leetcode.com/tag/union-find/ +* Guide: https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/ +* Interview question bank: https://leetcode.com/tag/union-find/ ### Shortest paths algorithms -Guide: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/tutorial/ -Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/ +* Guide: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/tutorial/ +* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/ ### Minimum spanning tree algorithms -Guide: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/ -Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/practice-problems/ +* Guide: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/ +* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/practice-problems/ From 8db16cf93f7cea984172f8efa819b81fdcd7d251 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 4 Apr 2018 23:05:54 -0700 Subject: [PATCH 03/32] Update graph_resources.md Updating resources changes --- graphs/graph_resources.md | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/graphs/graph_resources.md b/graphs/graph_resources.md index 8c0b40e..335c60e 100644 --- a/graphs/graph_resources.md +++ b/graphs/graph_resources.md @@ -1,19 +1,18 @@ - -## Glossary -1. **vertex (a.k.a. node):** used to represent one data point -2. **edge:** connections between pairs of vertices -3. **neighbor:** a neighbor node refers to a node that is directly connected to another node by an edge -4. **directed graph:** a graph that in which all edges are associated with a direction -5. **undirected graph:** a graph that in which all edges have no directions -6. **path:** is a sequence of vertices connected by edges -7. **cycle:** a path whose first and last vertices are the same -8. **cyclic graph:** a graph in which at least one cycle exists -9. **acyclic graph:** a graph in which no cycle exists -10. **adjacency list:** an approach to represent graphs in which each node stores a list of its adjacent vertices -11. **edge set/list:** an approach to represent graphs in which a graph as a collection of all its edges -12. **adjacency matrix:** an approach to represent graphs in which graph with _n_ nodes as a _n_ by _n_ boolean matrix, in which matrix\[_u_\]\[_v_\] is set to true if an edge exists from node _u_ to node _v_. +## Glossary - EDITS +1. **vertex (node):** used to represent a single data point +2. **edge:** a connection between a pair of vertices +3. **neighbor:** a neighbor node is a node that is directly connected to another node by an edge +4. **directed graph:** a graph in which all edges have direction +5. **undirected graph:** a graph in which all edges have no direction +6. **path:** a sequence of vertices connected by edges +7. **cycle:** a paththat begins and ends at the same vertex +8. **cyclic graph:** a graph which contains at least one cycle +9. **acyclic graph:** a graph whichdoes not contain a cycle +10. **adjacency list:** an approach to representing graphs in which each node stores a list of its adjacent vertices +11. **edge set/list:** an approach to representing graphs in which a graph is a collection of all its edges +12. **adjacency matrix:** an approach to representing graphs in which a graph with _n_ nodes is storeed as an _n_ by _n_ boolean matrix, where matrix\[_u_\]\[_v_\] is true if an edge exists between node _u_ to node _v_. 13. **breadth first search:** pick an arbitrary node as the root and explore each of its neighbors before visiting their children -14. **depth first search:** start with an arbitrary node as a root and explore each neighbor fully before exploring the next one +14. **depth first search:** start with an arbitrary node as a root and explore each neighbor fully before exploring the root's next neighbor 15. **topological sort:** an ordering of nodes for a directed acyclic graph (DAG) such that for every directed edge _uv_ from vertex _u_ to vertex _v_, _u_ comes before _v_ in the ordering. 16. **sink nodes:** in a DAG, a sink node has no outgoing edges 17. **source nodes:** in a DAG, a source node only has outgoing edges From aca39c14c54a797c342c7acd3e56336af3c68acc Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 4 Apr 2018 23:06:22 -0700 Subject: [PATCH 04/32] Update graph_resources.md Removed extra word --- graphs/graph_resources.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphs/graph_resources.md b/graphs/graph_resources.md index 335c60e..d70b76e 100644 --- a/graphs/graph_resources.md +++ b/graphs/graph_resources.md @@ -1,4 +1,4 @@ -## Glossary - EDITS +## Glossary 1. **vertex (node):** used to represent a single data point 2. **edge:** a connection between a pair of vertices 3. **neighbor:** a neighbor node is a node that is directly connected to another node by an edge From 2a1676f40f909e477bdfdbaab24d3783e34e4d33 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 4 Apr 2018 23:16:45 -0700 Subject: [PATCH 05/32] Updating top_sort with fixes --- graphs/top_sort.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/graphs/top_sort.md b/graphs/top_sort.md index 8929363..3c3344a 100644 --- a/graphs/top_sort.md +++ b/graphs/top_sort.md @@ -1,15 +1,15 @@ # Topological Sorting -Aside from DFS and BFS, the most common graph concept that interviews will test is topological sorting. The objective of this algorithm is to produce an ordering of nodes in a directed graph such that the direction of nodes is respected. +Aside from DFS and BFS, the most common graph concept that interviews will test is topological sorting. Topological sorting produces a linear ordering of nodes in a directed graph such that the direction of edges is respected. A **topological sort** is an ordering of nodes for a directed acyclic graph (DAG) such that for every directed edge _uv_ from vertex _u_ to vertex _v_, _u_ comes before _v_ in the ordering. ## Example -An application of this algorithm would be trying to order a sequence of tasks given their dependencies on other tasks. In this application, there is an directed edge from _u_ to _v_ if task _u_ must be completed before task _v_ can start. For example, when cooking, we need to turn on the oven (task _u_) before we can bake the cookies (task _v_). +An application of this algorithm is ordering a sequence of tasks given their dependencies on other tasks. In this application, there is an directed edge from _u_ to _v_ if task _u_ must be completed before task _v_ can start. For example, when cooking, we need to turn on the oven (task _u_) before we can bake the cookies (task _v_). ## Implementation: -The algorithm behind how to do this is simply a modification of DFS. +Topological sort is simply a modification of DFS. Topological sort simply involves running DFS on an entire graph and adding each node to the global ordering of nodes only after all of a node's children are visited. This ensures that parent nodes will be ordered before their child nodes honoring the forward direction of edges in the ordering. ### Graph with no cycles ```python @@ -32,4 +32,3 @@ def dfs(graph, start_node, visited, sorted\_nodes): dfs(graph, neighbor, visited, sorted_nodes) sorted_nodes.appendleft(start_node) ``` - From 17a6173dd05a4153a60e2ecb4498d1791bbf14da Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 4 Apr 2018 23:24:12 -0700 Subject: [PATCH 06/32] Reworded graph traversals --- graphs/graph_traversals.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphs/graph_traversals.md b/graphs/graph_traversals.md index 8c5fc87..ceba01d 100644 --- a/graphs/graph_traversals.md +++ b/graphs/graph_traversals.md @@ -39,7 +39,7 @@ def depth_first_search(graph, start): * [Detect a cycle in a graph](https://www.geeksforgeeks.org/detect-cycle-in-a-graph/) ## Breadth first search -In **breadth first search**, we pick an arbitrary node as the root and explore each of its neighbors before visiting their children. Breadth first search is the better of the two algorithms at finding the shortest path between two nodes. +In **breadth first search**, we pick an arbitrary node as the root and explore each of its neighbors before visiting their children. Breadth first search is the better suited at finding the shortest path between two nodes. From 1d21e4c61ff161b5bc404070dc565a3b7419d004 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Fri, 25 May 2018 21:38:42 -0700 Subject: [PATCH 07/32] Update intro_to_graphs.md --- graphs/intro_to_graphs.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/graphs/intro_to_graphs.md b/graphs/intro_to_graphs.md index 4cbb4c0..c8a9ac2 100644 --- a/graphs/intro_to_graphs.md +++ b/graphs/intro_to_graphs.md @@ -12,7 +12,7 @@ Graphs consist of a set of.. * Nodes that are directly connected by an edge are commonly referred to as **neighbors**. * **edges**, connections between pairs of vertices - + ## Graph types @@ -21,7 +21,7 @@ A **directed** graph is a graph that in which all edges are associated with a di An **undirected** graph is a graph in which all edges do not have a direction. An example of this would be a friendship! - + ### Cyclic & acyclic graphs Before going over the what cyclic and acyclic graphs are, there are two key terms to cover: **path** and **cycle**. A **path** is a sequence of vertices connected by edges and a **cycle** a path whose first and last vertices are the same. @@ -30,7 +30,7 @@ A **cyclic** graph means that there contains a least one cycle within the graph. An **acyclic** graph has no cycles within it. - + A commonly used phrase when referring to graphs is a **directed acylic graph (DAG)**, which is a directed graph in which there are *no* cycles. In a DAG, these two terms are commonly used to denote nodes with special properties: * **Sink** nodes have no outgoing edges, only incoming edges @@ -40,17 +40,17 @@ A commonly used phrase when referring to graphs is a **directed acylic graph (DA ## Adjacency lists **Adjacency list** is the most common way to represent graphs. With this approach of representing a graph, each node stores a list of its adjacent vertices. For undirected graphs, each edge from _u_ to _v_ would be stored twice: once in _u_'s list of neighbors and once in _v_'s list of neighbors. - + ## Edge sets/ lists An **edge set** simply represents a graph as a collection of all its edges. - + ## Adjacency matrix An **adjacency matrix** represents a graph with _n_ nodes as a _n_ by _n_ boolean matrix, in which matrix[_u_][_v_] is set to true if an edge exists from node _u_ to node _v_. - + The representation of a graph is efficient for checking if an edge exists between a pair of vertices. However, it may be less efficient for search algorithms because it requires iterating through all the nodes in the graph to identify a node's neighbors. From 234be9a23e19fdea976f3682c3451871445771d1 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 26 May 2018 21:06:12 -0700 Subject: [PATCH 08/32] updated graph guides --- graphs/graph_resources.md | 34 -------------------- graphs/graph_traversals.md | 6 ++-- graphs/intro_to_graphs.md | 66 +++++++++++++++++++++++++++----------- graphs/top_sort.md | 4 +-- 4 files changed, 53 insertions(+), 57 deletions(-) delete mode 100644 graphs/graph_resources.md diff --git a/graphs/graph_resources.md b/graphs/graph_resources.md deleted file mode 100644 index d70b76e..0000000 --- a/graphs/graph_resources.md +++ /dev/null @@ -1,34 +0,0 @@ -## Glossary -1. **vertex (node):** used to represent a single data point -2. **edge:** a connection between a pair of vertices -3. **neighbor:** a neighbor node is a node that is directly connected to another node by an edge -4. **directed graph:** a graph in which all edges have direction -5. **undirected graph:** a graph in which all edges have no direction -6. **path:** a sequence of vertices connected by edges -7. **cycle:** a paththat begins and ends at the same vertex -8. **cyclic graph:** a graph which contains at least one cycle -9. **acyclic graph:** a graph whichdoes not contain a cycle -10. **adjacency list:** an approach to representing graphs in which each node stores a list of its adjacent vertices -11. **edge set/list:** an approach to representing graphs in which a graph is a collection of all its edges -12. **adjacency matrix:** an approach to representing graphs in which a graph with _n_ nodes is storeed as an _n_ by _n_ boolean matrix, where matrix\[_u_\]\[_v_\] is true if an edge exists between node _u_ to node _v_. -13. **breadth first search:** pick an arbitrary node as the root and explore each of its neighbors before visiting their children -14. **depth first search:** start with an arbitrary node as a root and explore each neighbor fully before exploring the root's next neighbor -15. **topological sort:** an ordering of nodes for a directed acyclic graph (DAG) such that for every directed edge _uv_ from vertex _u_ to vertex _v_, _u_ comes before _v_ in the ordering. -16. **sink nodes:** in a DAG, a sink node has no outgoing edges -17. **source nodes:** in a DAG, a source node only has outgoing edges -18. **directed acylic graph (DAG):** a directed graph in which there are *no* cycles - - -## Extra graph algorithms -**NOTE**: This section covers algorithms that will generally not come up in interviews. -### Union find, disjoint sets -* Guide: https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/ -* Interview question bank: https://leetcode.com/tag/union-find/ - -### Shortest paths algorithms -* Guide: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/tutorial/ -* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/ - -### Minimum spanning tree algorithms -* Guide: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/ -* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/practice-problems/ diff --git a/graphs/graph_traversals.md b/graphs/graph_traversals.md index ceba01d..7e4b2c1 100644 --- a/graphs/graph_traversals.md +++ b/graphs/graph_traversals.md @@ -1,10 +1,9 @@ -# Graph traversals These traversal algorithms are conceptually the same as the ones introduced in the tree section. ## Depth first search In a **depth first search**, we start with an arbitrary node as a root and explore each neighbor fully before exploring the next one. - + **Implementation:** ```python @@ -41,7 +40,7 @@ def depth_first_search(graph, start): ## Breadth first search In **breadth first search**, we pick an arbitrary node as the root and explore each of its neighbors before visiting their children. Breadth first search is the better suited at finding the shortest path between two nodes. - + **Implementation:** ```python @@ -80,3 +79,4 @@ def breadth_first_search(graph, start): ## Key Takeaways: * DFS is better for analyzing structure of graphs (ex. looking for cycles) * BFS is better for optimization (ex. shortetest path algorithms) + diff --git a/graphs/intro_to_graphs.md b/graphs/intro_to_graphs.md index c8a9ac2..9cb1106 100644 --- a/graphs/intro_to_graphs.md +++ b/graphs/intro_to_graphs.md @@ -1,60 +1,59 @@ -# Introduction to Graphs -# Introduction +## Introduction Graphs are one of the most prevalent data structures in computer science. It's a powerful data structure that's utilized to represent relationships between different types of data. In a graph, each data point is stored as a **node** and each relationship between those data points is represented by an **edge**. For example, a social network is considered a graph in which each person is considered a node and a friendship between two people is considered an edge. Graphs are best utilized for problems in which there are binary relationships between objects. Once a problem can be represented as a graph, the problem can generally be solved based off of one of the key graph algorithms. For interviews, it is vital to know how to implement a graph, basic graph traversals (BFS, DFS) and how to topologically sort the graph. -# Graph Terminology -## Graph components +## Graph Terminology +### Graph components Graphs consist of a set of.. * **vertices**, which are also referred to as nodes * Nodes that are directly connected by an edge are commonly referred to as **neighbors**. * **edges**, connections between pairs of vertices - + -## Graph types +### Graph types -### Directed & undirected graphs +#### Directed & undirected graphs A **directed** graph is a graph that in which all edges are associated with a direction. An example of a directed edge would be a one way street. An **undirected** graph is a graph in which all edges do not have a direction. An example of this would be a friendship! - + -### Cyclic & acyclic graphs +#### Cyclic & acyclic graphs Before going over the what cyclic and acyclic graphs are, there are two key terms to cover: **path** and **cycle**. A **path** is a sequence of vertices connected by edges and a **cycle** a path whose first and last vertices are the same. A **cyclic** graph means that there contains a least one cycle within the graph. An **acyclic** graph has no cycles within it. - + A commonly used phrase when referring to graphs is a **directed acylic graph (DAG)**, which is a directed graph in which there are *no* cycles. In a DAG, these two terms are commonly used to denote nodes with special properties: * **Sink** nodes have no outgoing edges, only incoming edges * **Source** nodes only have outgoing edges, no incoming edges -# Graph representations -## Adjacency lists +## Graph representations +### Adjacency lists **Adjacency list** is the most common way to represent graphs. With this approach of representing a graph, each node stores a list of its adjacent vertices. For undirected graphs, each edge from _u_ to _v_ would be stored twice: once in _u_'s list of neighbors and once in _v_'s list of neighbors. - + -## Edge sets/ lists +### Edge sets/ lists An **edge set** simply represents a graph as a collection of all its edges. - + -## Adjacency matrix +### Adjacency matrix An **adjacency matrix** represents a graph with _n_ nodes as a _n_ by _n_ boolean matrix, in which matrix[_u_][_v_] is set to true if an edge exists from node _u_ to node _v_. - + The representation of a graph is efficient for checking if an edge exists between a pair of vertices. However, it may be less efficient for search algorithms because it requires iterating through all the nodes in the graph to identify a node's neighbors. -## Runtime Analysis +### Runtime Analysis Below is a chart of the most common graph operations and their runtimes for each of the graph representations. In the chart below, _V_ represents the number of verticies in the graph and _E_ represents the number of edges in the graph. | Representation | Getting all adjacent edges for a vertex| Traversing entire graph | hasEdge(u, v) | Space | @@ -64,3 +63,34 @@ Below is a chart of the most common graph operations and their runtimes for each | **Adjacency List** | O(1) | O(V + E) | O(max number of edges a vertex has) | O(E + V) Credit: [UC Berkeley data structures course](https://docs.google.com/presentation/d/1GOOt1Ierm9jJFq9o26uRW20GdU6E5hrAZvsoQIreJew) + +## Glossary +1. **vertex (node):** used to represent a single data point +2. **edge:** a connection between a pair of vertices +3. **neighbor:** a neighbor node is a node that is directly connected to another node by an edge +4. **directed graph:** a graph in which all edges have direction +5. **undirected graph:** a graph in which all edges have no direction +6. **path:** a sequence of vertices connected by edges +7. **cycle:** a paththat begins and ends at the same vertex +8. **cyclic graph:** a graph which contains at least one cycle +9. **acyclic graph:** a graph whichdoes not contain a cycle +10. **adjacency list:** an approach to representing graphs in which each node stores a list of its adjacent vertices +11. **edge set/list:** an approach to representing graphs in which a graph is a collection of all its edges +12. **adjacency matrix:** an approach to representing graphs in which a graph with _n_ nodes is storeed as an _n_ by _n_ boolean matrix, where matrix\[_u_\]\[_v_\] is true if an edge exists between node _u_ to node _v_. +13. **sink nodes:** in a DAG, a sink node has no outgoing edges +14. **source nodes:** in a DAG, a source node only has outgoing edges +15. **directed acylic graph (DAG):** a directed graph in which there are *no* cycles + +## Extra graph algorithms +**NOTE**: This section covers algorithms that will generally not come up in interviews. +### Union find, disjoint sets +* Guide: https://www.hackerearth.com/practice/notes/disjoint-set-union-union-find/ +* Interview question bank: https://leetcode.com/tag/union-find/ + +### Shortest paths algorithms +* Guide: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/tutorial/ +* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/shortest-path-algorithms/practice-problems/ + +### Minimum spanning tree algorithms +* Guide: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/tutorial/ +* Interview question bank: https://www.hackerearth.com/practice/algorithms/graphs/minimum-spanning-tree/practice-problems/ diff --git a/graphs/top_sort.md b/graphs/top_sort.md index 3c3344a..e4617d6 100644 --- a/graphs/top_sort.md +++ b/graphs/top_sort.md @@ -1,4 +1,4 @@ -# Topological Sorting +## Introduction Aside from DFS and BFS, the most common graph concept that interviews will test is topological sorting. Topological sorting produces a linear ordering of nodes in a directed graph such that the direction of edges is respected. A **topological sort** is an ordering of nodes for a directed acyclic graph (DAG) such that for every directed edge _uv_ from vertex _u_ to vertex _v_, _u_ comes before _v_ in the ordering. @@ -6,7 +6,7 @@ A **topological sort** is an ordering of nodes for a directed acyclic graph (DAG ## Example An application of this algorithm is ordering a sequence of tasks given their dependencies on other tasks. In this application, there is an directed edge from _u_ to _v_ if task _u_ must be completed before task _v_ can start. For example, when cooking, we need to turn on the oven (task _u_) before we can bake the cookies (task _v_). - + ## Implementation: Topological sort is simply a modification of DFS. Topological sort simply involves running DFS on an entire graph and adding each node to the global ordering of nodes only after all of a node's children are visited. This ensures that parent nodes will be ordered before their child nodes honoring the forward direction of edges in the ordering. From f3da0d70268d66749cf16da3541404902ef2c287 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 26 May 2018 21:19:07 -0700 Subject: [PATCH 09/32] adding hash table and heaps guides --- hash_tables/hash_tables.md | 58 +++++++++++++++++++++++++++ heaps/heaps.md | 80 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 hash_tables/hash_tables.md create mode 100644 heaps/heaps.md diff --git a/hash_tables/hash_tables.md b/hash_tables/hash_tables.md new file mode 100644 index 0000000..4813baf --- /dev/null +++ b/hash_tables/hash_tables.md @@ -0,0 +1,58 @@ +## Introduction +**Hash tables** are one of the most common and useful data structures in both interviews and real life. The biggest advantage of hash tables is that they provide quick key-to-value lookup. + +One use of a hash table would be to implement a phone book. In this scenario, the key is a name and the value is a phone number. + +```python +address_book = {} +address_book["Bob"] = "111-222-3333" +address_book["Alice"] = "444-555-6666" +address_book.get("Bob") +'111-222-3333' +``` + +Hash tables are very efficient â“ their insertion, deletion, and get operations take, on average, constant time. +## How it works: +### Hash Codes +Internally,a hash table stores its values in an array. A special **hash function** is utilized to convert each key into a code, which is then converted into an index into the underlying array. This hash function has a hard requirement to return the same hash code for equal keys. + +Hash function generate a code, known as the **hash code**. Each data type will have its own hash function that generates its hash code differently. It is important to remember that a hash code is not equivalent to the index in the underlying array storage structure--there are often more hash codes than indices in the underlying array. + +[insert diagram here] + + +**Note:** When utilizing a hash table with a class you've created, be sure that the hash function for that object type operates as you would expect. If two objects are equivalent, you should ensure that their hash codes are the same. + + +### Collisions +If the hash function is implemented well, inputted objects will be distributed evenly across the array indices. However, the number of hash codes is often greater than the size of the underlying array, so some keys will bes assigned the same index. When two keys are matched to the same index, this is called a **collision**. There are several different ways of addressing collisions. + +There are multiple approaches to dealing with collisions. The most common one is simply to store all the objects that get assigned to the same index in a linked list. In this scenario, instead of simply storing the value at that index, the linked list must contain both the entire key and the value in pairs instead of just the value, so that the values can be uniquely tied to a key. + +[insert diagram here] + +For more information about other ways to address hash collisions, see the [hash tables Wikipedia page](https://en.wikipedia.org/wiki/Hash_table#Open_addressing) for descriptions of several different approaches. If you have time, I'd encourage you to learn about open addressing, the other common hash collision method. + +**Note on updating keys in the hash table**: Be wary of updating a key object that's present in the hash table. Once it's updated, lookup will no longer work for that key. Instead, if a key needs to be updated, remove it, update the key, then re-insert the key into the table. + +## Runtimes +For interviews, it is generally assumed that the hash table is a well formed one, with few collisions. However, in the worst case scenario, all operations can take linear time. When a hash table distributes the objects poorly, all the objects may hash to the same index in the underlying array and any operation would require going through all of the previous entries. + +| | Lookup | Insert | Delete | +| -------- | -------- | -------- | -------- | +| Best Case | O(1) | O(1) | O(1) | +| Worst Case| O(n) | O(n) | O(n) | + + +## Key takeaways +* Hash tables are an extremely useful data structure-- keep them in mind as a tool for most interview questions +* Hash tables have the best performance for lookups, inserts, and deletions. All three operations on average take O(1) time. + +## Resources +To get a more thorough understanding on the internals of hash tables, here are a few links to helpful resources. +* Hash table guide with helpful diagrams: https://medium.com/basecs/hashing-out-hash-functions-ea5dd8beb4dd +* Princeton Coursera video lecture series: https://www.coursera.org/learn/algorithms-part1/lecture/CMLqa/hash-tables +* HackerRank video (short summary): https://youtu.be/shs0KM3wKv8 + + + diff --git a/heaps/heaps.md b/heaps/heaps.md new file mode 100644 index 0000000..03bc813 --- /dev/null +++ b/heaps/heaps.md @@ -0,0 +1,80 @@ +# Heaps + +## Introduction +Heaps are an often overlooked data structure, but come up quite often in interview problems. **Heaps** are special tree based data structures that satisfy two properties: + +1. All nodes are ordered in a specific way, depending on the type of heap. There are two types of heaps: min heaps and max heaps. + * In **min heaps**, the root node contains the smallest element and all the nodes in the heap contain elements that are less than their child nodes. + * In **max heaps**, the root node contains the largest element and all the nodes in the heap contain elements that are greater than their child nodes. + +2. It is a complete binary tree. A **binary treeâ™s** nodes will have at most two children: a left child, and right child. A heap is a complete binary tree, which means that it fills each level entirely except the last level. Another way of thinking about this is that all the nodes in one level will have children before any of those nodes will have grandchildren. + +[Insert diagram here of min heap/ max heap] + +## Heap Operations +In order to understand the runtimes of heap operations, it is vital to understand how insertion and deletion work within a heap. + +### Insertion +When a new element is inserted into a heap, it is added in the next empty spot in the heap, in the left most position in the last level of the heap, in order to maintain the full shape of the heap. However, this new item may violate the other key property of the heap, its ordering. + +In a min heap, if the parent of the new element is greater than it, it gets swapped with the parent. This element keeps getting **bubbled up** in the tree until it either reaches the root of the heap or it has been placed in the right order. This same process applies to max heaps as well, but the check to ensure that the node is in the proper position is that the parent node is greater than the new node. + +[Diagram of a swapping procedure] + +### Removal +When removing from a heap, the root node is always removed. Then, the last element, the leftmost node in the last level of the heap, is removed and set as the root. This removal process retains the heap shape, but this new ordering may violate the proper ordering of the heap. + +In a min heap, if either one of the new element's children are less than their parent, the new element is swapped with the smaller of the two children. This element keeps getting **bubbled down** in the tree until it either reaches the last level of the heap or it has been placed in the right position. The same process applies to max heaps as well, but the ordering is such that the children are both greater than the current node. + +[Diagram of a swapping procedure] + +### Building a heap from a list +One approach to building a heap from a list of N elements is starting with an empty heap and adding each item from a list, one at a time. This approach takes O(N log N) time because it performs N insertions, each of which takes log N time. However, this approach is suboptimal and the optimal approach of building a heap from N items only takes O(N) time! + +The math and implementation behind this optimization are a bit complex, but are explained well in the [Wikipedia page](https://en.wikipedia.org/wiki/Binary_heap#Building_a_heap). Itâ™s a good idea to get a general understanding of the optimization. + +## Implementation +Surprisingly, this complex data structure can be represented using an array! Given that the root node will always be either the least or greatest element in the heap, we can place this element as the first element in the array. This underlying array is then filled up by going through each level of the heap, from left to right, top to bottom. + +With the guarantee of fullness and the binary tree property of the heap, we can easily calculate the indices of the children and parents of each node using these formulas: +* Parent: (current index - 2) / 2 +* Left child: (current index * 2) + 1 +* Right child: (current index * 2) + 2 + +[insert diagram here] + +These calculations enable it to easily implement the insertion and removal procedures within the array. + +## Runtimes +In the worst case scenario, the swapping procedure for insertions and deletions will move the element through the height of the heap. Because heaps are binary trees that are guaranteed to be as complete as possible, the number of levels in the heap will be log n. + + +| Operation | Runtime | +| ------------------------------------| -------- | +| Reading largest or smallest element | O(1) | +| Insertion | O(log n) | +| Deletion | O(log n) | +| Creating a heap from a list | O(n) | + +## Key takeaways +* Heaps are especially useful when for getting the largest or smallest elements, and in situations where you donâ™t care about fast lookup, delete, or search. +* Heaps are especially useful for questions that involve getting the x-largest or x-smallest elements of some data set. +* Building a heap only takes O(n) time, so you can potentially optimize a solution by building a heap from a list instead of running insertion n times to create the heap. + +## Glossary +**Binary tree**: a tree that has at most two children. +**Bubble down**: the process of moving an element down within the heap by swapping it with one of its children until it is placed in the proper position that satisfies the heap ordering. +**Bubble up**: the process of moving an element up within the heap by swapping it with its parent until it is placed in the proper position that satisfies the heap ordering. +**Max heap**: tree based structure in which the root node contains the largest element and all the nodes in the heap contain elements that are greater than their child nodes. +**Min heap**: tree based structure in which the root node contains the smallest element and all the nodes in the heap contain elements that are less than their child nodes. + +## Example problems +* [Top K frequent words](https://leetcode.com/problems/top-k-frequent-words/description/) +* [Find K pairs with smallest sums](https://leetcode.com/problems/find-k-pairs-with-smallest-sums/description/) +* [Implementing a heap](http://interactivepython.org/courselib/static/pythonds/Trees/BinaryHeapImplementation.html) + +## Resources +To get a more thorough understanding of the internals of heaps, here are a few links to helpful resources. +* Guide on heaps, with helpful diagrams: https://medium.com/basecs/learning-to-love-heaps-cef2b273a238 +* Princeton Coursera video lecture series: https://www.coursera.org/learn/algorithms-part1/lecture/Uzwy6/binary-heaps +* HackerRank video: https://youtu.be/t0Cq6tVNRBA From 94cd2e9df8b4de760ba45a8d93af1b2aa4abb989 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 26 May 2018 22:41:15 -0700 Subject: [PATCH 10/32] added heap figures --- heaps/figures/bubbling_down.png | Bin 0 -> 98897 bytes heaps/figures/bubbling_up.png | Bin 0 -> 95173 bytes heaps/figures/heap_as_array.png | Bin 0 -> 40259 bytes heaps/figures/min_max_heap.png | Bin 0 -> 40745 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 heaps/figures/bubbling_down.png create mode 100644 heaps/figures/bubbling_up.png create mode 100644 heaps/figures/heap_as_array.png create mode 100644 heaps/figures/min_max_heap.png diff --git a/heaps/figures/bubbling_down.png b/heaps/figures/bubbling_down.png new file mode 100644 index 0000000000000000000000000000000000000000..e39afc352801f64c5f00f325256ce406ce381217 GIT binary patch literal 98897 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 SPCHg6eByVnW93KB-S{s@PZj(C literal 0 HcmV?d00001 diff --git a/heaps/figures/bubbling_up.png b/heaps/figures/bubbling_up.png new file mode 100644 index 0000000000000000000000000000000000000000..3e98d3fb211dc454d1c5d5024deb1e65895c345c GIT binary patch literal 95173 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 KJX7rylKNllu7I%s literal 0 HcmV?d00001 diff --git a/heaps/figures/heap_as_array.png b/heaps/figures/heap_as_array.png new file mode 100644 index 0000000000000000000000000000000000000000..de6fb779f903d24803abd2a9ff9cf5c6751f0881 GIT binary patch literal 40259 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 z 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

SNOUt4)Xy$ef6m(ITX&bL>kryU;Jr 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 RfiELG92EL<-GP|A{{k_pG#3B> literal 0 HcmV?d00001 From b0d1bd7bb89fc07a1afb314221c7510dedcf3a60 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sat, 26 May 2018 22:59:02 -0700 Subject: [PATCH 11/32] updated heaps guide --- heaps/heaps.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/heaps/heaps.md b/heaps/heaps.md index 03bc813..6d9f5e9 100644 --- a/heaps/heaps.md +++ b/heaps/heaps.md @@ -1,5 +1,3 @@ -# Heaps - ## Introduction Heaps are an often overlooked data structure, but come up quite often in interview problems. **Heaps** are special tree based data structures that satisfy two properties: @@ -7,9 +5,9 @@ Heaps are an often overlooked data structure, but come up quite often in intervi * In **min heaps**, the root node contains the smallest element and all the nodes in the heap contain elements that are less than their child nodes. * In **max heaps**, the root node contains the largest element and all the nodes in the heap contain elements that are greater than their child nodes. -2. It is a complete binary tree. A **binary treeâ™s** nodes will have at most two children: a left child, and right child. A heap is a complete binary tree, which means that it fills each level entirely except the last level. Another way of thinking about this is that all the nodes in one level will have children before any of those nodes will have grandchildren. +2. It is a complete binary tree. A **binary tree's** nodes will have at most two children: a left child, and right child. A heap is a complete binary tree, which means that it fills each level entirely except the last level. Another way of thinking about this is that all the nodes in one level will have children before any of those nodes will have grandchildren. -[Insert diagram here of min heap/ max heap] + ## Heap Operations In order to understand the runtimes of heap operations, it is vital to understand how insertion and deletion work within a heap. @@ -19,14 +17,14 @@ When a new element is inserted into a heap, it is added in the next empty spot i In a min heap, if the parent of the new element is greater than it, it gets swapped with the parent. This element keeps getting **bubbled up** in the tree until it either reaches the root of the heap or it has been placed in the right order. This same process applies to max heaps as well, but the check to ensure that the node is in the proper position is that the parent node is greater than the new node. -[Diagram of a swapping procedure] + ### Removal When removing from a heap, the root node is always removed. Then, the last element, the leftmost node in the last level of the heap, is removed and set as the root. This removal process retains the heap shape, but this new ordering may violate the proper ordering of the heap. In a min heap, if either one of the new element's children are less than their parent, the new element is swapped with the smaller of the two children. This element keeps getting **bubbled down** in the tree until it either reaches the last level of the heap or it has been placed in the right position. The same process applies to max heaps as well, but the ordering is such that the children are both greater than the current node. -[Diagram of a swapping procedure] + ### Building a heap from a list One approach to building a heap from a list of N elements is starting with an empty heap and adding each item from a list, one at a time. This approach takes O(N log N) time because it performs N insertions, each of which takes log N time. However, this approach is suboptimal and the optimal approach of building a heap from N items only takes O(N) time! @@ -41,14 +39,13 @@ With the guarantee of fullness and the binary tree property of the heap, we can * Left child: (current index * 2) + 1 * Right child: (current index * 2) + 2 -[insert diagram here] + These calculations enable it to easily implement the insertion and removal procedures within the array. ## Runtimes In the worst case scenario, the swapping procedure for insertions and deletions will move the element through the height of the heap. Because heaps are binary trees that are guaranteed to be as complete as possible, the number of levels in the heap will be log n. - | Operation | Runtime | | ------------------------------------| -------- | | Reading largest or smallest element | O(1) | @@ -57,7 +54,7 @@ In the worst case scenario, the swapping procedure for insertions and deletions | Creating a heap from a list | O(n) | ## Key takeaways -* Heaps are especially useful when for getting the largest or smallest elements, and in situations where you donâ™t care about fast lookup, delete, or search. +* Heaps are especially useful when for getting the largest or smallest elements, and in situations where you don't care about fast lookup, delete, or search. * Heaps are especially useful for questions that involve getting the x-largest or x-smallest elements of some data set. * Building a heap only takes O(n) time, so you can potentially optimize a solution by building a heap from a list instead of running insertion n times to create the heap. From 78b5bbf61e5a7df2d7b7aba3030031d0e693d8b7 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sun, 27 May 2018 00:13:28 -0700 Subject: [PATCH 12/32] updated hash tables guide --- hash_tables/figures/hash_collision.png | Bin 0 -> 137100 bytes hash_tables/figures/hash_table.png | Bin 0 -> 122973 bytes hash_tables/hash_tables.md | 11 +++++------ 3 files changed, 5 insertions(+), 6 deletions(-) create mode 100644 hash_tables/figures/hash_collision.png create mode 100644 hash_tables/figures/hash_table.png diff --git a/hash_tables/figures/hash_collision.png b/hash_tables/figures/hash_collision.png new file mode 100644 index 0000000000000000000000000000000000000000..18ceda2ece0028772629f814ae861566f5766fc8 GIT binary patch literal 137100 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 z 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 h46!OC^melvN{@jC^Z+bkUy zVDqKvpc^*P&S%>pb97U_1rj`En0zZ1RoL%)<$TUH#}R~~Gty&CRyah=_}!8ynv?G- zvNI+@J3(Usuvar6|GtacFLEYBqORwb!>&3iXhs#HjGGnGD027%sXGa-9tmC;CZu6wo~n{&~Ok`rS$0_&}pS{5#DofLLO12#Kop%^uO$ziaahJ;Y|pL$aA*nX!aYQxqV<=M>q_Xx88H?7E%%4 zn80TJbQpr85Zyx}9JgbOb?8!N>q|g{vvFE~B_)RX!#h{`kGo8;E0HQA2AsFGz52X@ zIj_%>l2ln=%l?S)^2&7lHnbh%^~`c|$xxCXg{{lfPE5JqqQBA-cD-aNV-)Czb>kf? z*%8I2l~UB#Ld<+i^EiGwY7OH{0p+M(pIWs-BVm>o=N;N8ffQ;lyxgFm8pqP6iyh&AbVT!nnN! z-)q|+rE?AwS8f*NK36Phk)8e&8m#GzIw~vv^KkMsasmIj?Al;~6aZ(8xdkMW8F>h6 z(+nccx)QwV9EL>AF;aa8C#)RlQhN4_94>UXOa)tWBFpEA$`Y`W>doBcs`=XFv?$F% zM6*1r#O%=x0vjr)W`F(aMje_1@(H1nZ!}>baxLNzlpEeo9P~b!J1C(eV&~R;%^||p zwdpO)<@u-46L3uz=E5c4mnFZkSBOY5!cjF`1~DI>gB|4@7OGRj&@*()B*PP7s|ZCi zii7YzrQ#95p6CD2zupzcz3Q{CU*%=jC3whpop76`;x|8MSN(VT+lBzDtm}ezzraGW z9qWIv^Gy@S4n0x96C9azEy!QLE%8DRy*AMdAb7JT9lz1u_W=muygg zWKgn|H>ome0BAuxr|U|6@rK3?2o%z0Wy@%s{VHnUo(Jin36?tl<#pSKd3{neRRSA1 zHqCNWbQB)jUHR7@^8rhZ=>YQ@Y^CUneMlar{v$>Hm8yI4g$RT|`h;!2m-v=W@3K*U zE_3wW4PH`K!FUW-H(^pY1)FZ-C!@^g%{<^A82Nv`?=dC>JH_|rXn!6GpoJp@#M_u? z@)g|(nailu$D51fLqd!&&w?>u7;wTi!NYR#!|0Z=@*!AQOw1WbAn62-9`HH9g)1hwr~}HN9{V8>dtEKo zVvb1v(*3yAWk$%`-)+>$wai5S557Kt2Q=>iJSEFGkZpHEu4XoZXN(~5#kRJy^d!^0R2Vh6Pn zSPHloL^z@Z@zTk(9w8Tdg({1e!Rmnfv@gliRAJ_Ua6tmGG3BG~#Zdv5hs8!9uD!7P zse%c8?Nh1FGtxH^Nbnu8&N5Ba${HQZeZFNK=GQ0k%2r}+9}fBx%bFf4Vhz61%&Kg| z3%&E{Jc}=&!wVD7$jP;Ng>>q~W@~fCIHUhED$kH}TM5%_I@&vt-)4-E{Nm8^szTml5Uf*cTr6Ou#$cy_Rq&t4Cr)gSyS zyh!vu1A6`VCYJLF(z>*0hsC8I7Z(1KnpdV;qw#Hn?tYn1pUu!;_bPZ1X%HdqCSF@v4q_!9W)FblAyufdEMZcf! zJFytS*YQeGA0mExm9rGwh2&gkR$qRX*G2*=d$!d5)9n~~j)PDD4W||FWqc_|`{Lol6?~yY zRn=Svhc`kNmp9vT$}ftDzRCPP!xH2DdB7i}1eEFo7na7B9A)<^2Q2cdIt5_Aj^sj| z^X%c_bSN!;n;H$`V9yx1e}0iqH}8)X;b=4AOYz5b#?=m!F2I$pZqh8`1lr)*`TuRT zB;bpCyq&Zx+Xc!h2Q9X;oxII6!7!KqQdq$Q*;aFC_NT?Qq>0R%2`GWA4wCv8 zcD`hJDF_n%C3IMYEl-IpdQEus^U;M8KiFt$MCmiPEsyh*A{}*t{n^9axJay5^?0>M zI|CoHZ7`)x3NdUcOg}GIuMi0w{{3NzAyk1)*n(fe9wNjr$o5eNpj$62yOE7y;L^dwQ&2VU^d3?s&)cy2Xsp-qyUAKC-a_qij586Pv z4(M~^c7CRQK5nbaCi=r?0S|LNz5%wGrYf*5;FF-%LWV!$we6vnS9q>cnH@2X`!@#r z>>7w*A#HbjE)?XDB?ooe-#SN&gQQ!?kn$-eafCuvwI&&v_IP-}$6-5&>YwJgjS+CI zGU8{4Ef0b_oUx4Jp}w0q1-lH2mZtNCRq1|Hy@X#(KCrOJZO?J!am4}qvNTfwE(}Jx z{(Pm&4LOR|o{n7mQO&?Ie@u0-;cn9?dhl;=M+T#b1sSZ7x`FdA$@2!>qX_$rEDIwJ zMzo61y+Fy6$?!nfZ`^Z2eVfUTfB;(~#LhKXd-OD}hZjmM{qdf%x|{ti`_3-JdUiPQ zP)mX-87p@m3y_skeL3$4LmccWDe1sL4Iz5{1tV!g{7F}Id>*khs zvc@qCKqV^xM0-Z+MEkEY?O>R+QJ}jYzTAAe!+}$aCl`0emCeMoIN)kd)Wcmg8M(=4 zdn$C9?lVC-eOB2LCfOacll~_|Ackne`X>Wq`dr{8K@Jj%?*~QbqHQGS+9<~*7Hfb8 zrT=V3uF=3y!;qmBEWQhZUY!O7u{i>_?X@I!vz@^N@&>|tsjyMEAla;IM(&L_kZZsN zL2Pz;0emk3xOvml}-& z78VvGoJ;gj-CZrI3Jz8~tBdq}7uP;_*FW5E#iBP`809#fcOs(H!k!QSRqa8BhT>PE z#by%#i6|98zOWp~!T~Nm2*jT2CWO>xtXTKNMb}>V3Ag<7xtJwLQRzs=eKxVrKZ2wa zIn~lEintK}Nh^^5A%}gsq*@mi-T)0R9ONA1xrzOrJT)gLP;n-iHwxsaai~~zeudIY z%cn)t6U=R`_OK&gXN1LrcCs~`+RuG66+B=rJ1b;+={Kv*zFw%quC@wP6Uq+LA*YCj zXXlSY5$Js7PHMX9SEIB#MxzToPUCp0WY3xILC}evn8q)H*Qy1Y48wl;gQ13XP5jr!(};AGbfU%(3{=n;;t9YKaJE|!9BH- zgriUIS7_;QFbM##^-nU6lRr>!n7e<86bV^07ch~uU}xlG7KEXYyJqm?Bu!KVz9B#N znPf`iF^!m1MCfN!ag9=_k}8(`({uYj>3aSWiI8x!*9J{7%!4xoS2G!1b55%esD01q ze60^4+x;@Ta9A#<)A)UX8*b=e`kNs3+LDw)8Y+wLE7HY@O61YA4GB+RnDgizt9rv* zps*KvG%Qo5QEzNSt0MJx4W*Q4IGlr+mN>nE*l>$V9J*{CAQUcGNAC)HoOXky)D#Bp z4cEm5B=M@M`##~)?Q0sS-t71fp2(x7k+}{VA*P5)-r>w7MpZHrIrjc4zDu|1gvAm& z(}$-Uya{6rGCzCDZ0g%6?lS%mu$xVc`bquW!u6p_Cu61|>pP_E)*Veqf_K-pXN58q zg1;m3{E=NEbed9kzkGf9f+OFaHJ^rG<81~hOqbNW#D4;08`+Q026 zNZ8+16Cd7EH4Isb7%U>(fW`FmoDD_jPFsw985h2;(N3VTjwe9n__0JGi-n9$u|IcE z$g!U;5$|+bR96c!^S7|C%W5&jqRfpAQvEG*F+Dc0tm|>}=1*ZB{lvoew&tl{5KWH}MysWuN zxha%cYrRBwl=%rseAa>wlJzrEyaMso(n?PqHAE9iq~xKtd6BOqAbXz^#@4Ud?sJN> z&63aNzVJ;c?5dMvzr8{eaFZqP+JyD6X5t;xYYk;gbYbk*S>?GE4Zo?0wQv|RzQ(L? zK1d@BV6+WLxJPuU3qN54mlzefHoPQ>x*^5Z+EP8B0Uo26Arnn~YP)k$qHfn$(T*PO zwu!y%pOGtSg|@Ur7Zbr)IL=nC9t(xd0ms?64vzZFxEQWWyAn2sWa&$e6vw$9(qWRd zYfhr#0_9J2$5ZK`4wWmm{R2i+oVCG>^6WTky<7af&i-~dzLhi;qLpJX2x&#qf8i+p z$o7&zkH2g|PD4KCfT%zo7poEDCoqPOs!ck|2BRV!G(V?Cc_i)2SnB^|w;iL`J9tfr zx|jDvIuP7u7#f>iABl$GHR(%UG2*DwyYUPzHJ0b{d(^j!=Z{u6s;?b-JYmP|*#Czw zsv_3+<9s>Zx79ED8H@-n>m%~VE<=lh1xV@|!HPt}BeZwWIFd6ti`n{jEmw8c$2H2f zs4omf#A8~{7h(B7IG_S|Nx0Y;^3B%m@JFZakm>w0zbeLXt(gu>uaaR?gJgW}nl2>7 zUzSdiWkX@jSm!|Ym<+zaJ{ZD|@EulSf_XEJ@|Qb^+J$|0uG?>@-Tn|@o)Gn#lf7I{ zk66jlw(}%%2tT`Qcc6sM?ir-3xtXvFB|W)h=aCuYKf~-((jn*(8yO_iYhK6peSfi* zQ&-pV%vs=;Kx0mUolKVZfh$YfBTQYIaezW*8G=pr%luKZCnFj=vLMpKpd0eezwn+# z-PqG(UAn7)%Nx_LXoCYqgbUJkETN!x0%CR;b$Y?R-|xgFGg69I2_xX1DAXC4!(IsaC3 z!@%#ish?Z#8Whz%&HGLre5yf^_1x7g`zpD7E?1jFGKVQ+>Sl`#+J+Y;-g4X(A|xD3 zw>4OqS7uKydpc;abtji019Bt~$1A_`&hLcAa&RqQ6J->0|JRxJ5CHS0mOT+|k^D7e z^GJgNyISOIH}h}TEq8~}s3bS~R!LIzEvj8#W#2M#HBG(dYktW!U-f`FpBw^-r9U%~ zv~}TC#;t=8(;VQ+WeYDvJe-1+kKCzIukbltrjEihbOTc+(UR*DWV*`h!*B^CG}7@P z|HzvvYz3s8CIctSB!nNrezQ?3vRZ?y7nLvh6w#c!;_jH_x}n6sNdiVXDV1j$Ge9NW zz!BQkM(ThK%A8v39}c3-?hwuVga#oZ{~ud#9n^N)bqf~{5Udmk?(R!lycXxMp zDNc(+ad&su;_mM5?k9cE_dNG|&v#~i|0FY+OmfLyd+)W@Ua5ck0U^Ojvl+NQT0-9L zR)VK4fN=T<)6-vX+T>gEX-4^@^wx&LH?)PMj;MQ+H zL?ym-B0yhQviW>;xPB~}5ihgMXvI&h=VS7`+3?$JF_Ln@3V8RXtr`dCD$Ji=VRZH#wI>|m)3}0 zt%+l7)L~x`7x(KtpYCOlY}H^WNYGv(BrbkCrbXCLquQ&<{7(_(eq5wL@{T5dUq)%7 zpFr~8_Xi#J&M(Sg<*Tbs`CI6j2SrO@a|E?pJ?fY9QGKJ>G?a}XUa*(aIV(tO$ zJ5Thm6PPfXJ2DcXrW!Pc6Yq6OVML!KPXDt0t;_U4!S6szJ73{?kqaII31mJNo#?qd zeOBo&i@scZVi_88;_B6$24p9SQT1|Qk&=FQ*z0xJkGKF-LB6JusD)CpD7>*+FP&`D z4y)+yi+2CaO8Rs~s$P>%R%&9-m4~|Frhz6G?Y>I6|aBe@EeJTKb-l{(RruGuD*YPQpPp08Fpz*a`HLy8+S*@c@e=3tG5@C+!nH9T7>Zzz9kE*#qUUSB)Y(lNTN$O<^qA~b)Cqac zMDe+dH4Mo9cHoS_=%af6Y?#pFHSHu{&i~;_=;e3B`Sfs={iomvl2KK=t=e$8z$qL5 zNn>mbb{F55tJb4zkGW0$xEysodX+FBOO!`OoF1;sV=mgQl07R9pYjd02 zasZrHWXzw|;*W7QLb|t%-U=c2{zc+!^dM*~@Ly6J<-77lkAgFudRn2GuODGCKNX^H zC)rWzmYZ8t>r06ZwV`md5nRGq8|8 zVfC=`f&hdUyN*eOF;_)}C?|yT@&IEE+_YdTit>S|Ahgk&L_F_nyAKV00!RencEtJ` z5z`Ms5inZCS9CmaaKfQO2>W?i-I6804LFSj0M4txcd_ACaD1klge0(xh)LhB39u`sK{4o; zqLF!|fFA2O%m>RpO<{>ak8r5`|31q9-z%+XF#o5Sz~Lws)fB^Tthcfueelz zi?>&r%Ki%fb5tt#vHbxEC4_ThHa;4wtzwQ(Z>kipB4nKg>4QBz?h4-OZsX?^upp-& zEBUqnwyAEO7U!*@NZ+YftYs-UnGh^+MX@4i9x$>>^EBS=5sVSA9!e81;Ov!4Jqq(P z#mrI)3RCRh$qStV6fXic&Pv7&ZWQ za2p@ZxPgVaNhKZ{C3Ed8$m=6d5oF#6QycXa>_3lo0i6e(_Z0;0;u&n`AkdU-Z=V39 z$`D#(I!e#iX{=o+-M9nXjV{Lr{(yBG>rMU`9(KFMkS?>Q27Io~YThrU`UL!}C+MyC z?A-JuUcX8Pb7!m1#x=H#FsC-5jjtZ9L3EahCOWq3z>EsHoQ?S;^eR5*9WUL4JeE_; z9?1E&8!NdV;OMm!?Tdc=rEIfbaoEGdn~}n`kwrp6@!t^G6bcLyY9Ua;8(J$;&_rKV zm$GYcArcLr1#4NGQKyMvXu@HeQio01c6?WLRAb#Ve0j~&Jnw7`ux0!E25_^yK>Wc; zEmVt-;4GOV9_!RrUGn;ZQr=OfmNULw$%zDv43vWefikY&X2*j@@qBMTE`GWmx###T01P}PlX!vok zNI+t-L8;_!_DGt`n@zuB5Ks~`1Kr_QR-aq(dLqZTf*Ud19^+mixoWvXB zW7Z?Z>{k8VhNzn012Mr3X+8e_-9_L8dfz#Q)ht9#>_3_J|4qPQz)MA?E1!TW4hzi{ zl7rzubQ+-tVbGVXuGBTmhSO`e?^Cg!Pifj4J|C+QF^w|!C=!zM^{z*8$MMw0)W)#zepHQ$mSGp1VZMNWji2;xz4c+@mN7kFSfw9fF34i}Z$HcmtH3HGm zo-!?h9aLam2}(bIUbSU6tsiwmGQ1%ZX&M74w(y$G5o$g3LPE-Ec{y3VWs}3%D&0GL z*c^FU8Jv#&dklko?{JHof`N1CLxZ04;_CeMm!SnB|I&R;d;}v+Q+Vtxbja1f5BnUD zpMq~gjsSNhfg0L4B&r624k(bbdNPXgCd_yUEwK;WPaK96LJA#HGqV-G_4YB-m_xF0 zu%R+?{LPD-Y8)AmySeF&p^buD37qKeGHq!;S`^6pRnag$N)5=i9n6kmMDt_pvhVJk zA$&#-=z#HFs0bpa42SoC{a)%O>Xx+fy=n`EQsxb8tP@h+U9eGC3~Zf~-a9m7R7qf1 zFSv^3yr`~48J^fknS98dc}dykxlS0xpq1=7eelHeFdL>Slj-6YdIyz+clppH?eFA0^X1~(RyvGz=Mzc;G-(3v0@SwBZG9p|1O|7^vwTD8WZksk7vlT=J z2wc(Sl!H}dt8(fi?!fW+ydiNKC4-=y#L*0$$lsu7Qjc^JtY3X@?~0eLZY}xEdvI7X>&%L0U7@W$IhrYX4?3x&yULq68`Z(w@TRs7<`S)C%lKs>mVD%1t}|^LcB2!t8+f?y{&Xp4Q^}%cnbhK@$Mn1iQpy*MsS^V3c3i->{ ziIZV}N9`^!&O(yDRP!Aru1gpn`;=;dMnX8?g_~bRDIh3izPLBJQkL7J-*-M;`}J$u za^4>DM~J^n)yQNov0xlw1HA$~|6@wHmQT4I$HbKacnl{ot)gvA;;we%9IKWxRmv&W z&L;tfn$H9JhjM&P-65+nf zCU1jrWn;+*r%$qlmVPkWpW?EB=6P$qS54IVObaC7M7h?4|EW`%3>e{?clkhQ_X_KWY7jVns*&wG{^-p~^VJf5@E6}qN=dB|&lKE@Nj0iN&Gi*<}dS+-pGUBK%n9LOr5k3Zv1VkPkwnXZNo$Wj$Vy0fCW?Ku@@{S5CWA?>}W5 zV>c1OTEAD&Vwp;r;YMTNnrXFyJi~tAV<)GfW{6x#q*33}#{{o}w#&J9rh=|%#_nIO zX#tI1D&~k^)Qgri!eMdI zS?VV3;avkd%3 zFh-(lv(wati@T<0hBoyn{zhBQ;DTlOn2$iJlN1(FP1h|@lO2y)RoA4~c0}S_E)*-b zG+7^rALdJG=z|%SM3jQarFqaud3Z!o{e&{4dk~!i|Fjhhim)P3(ASeq{F>L(6wUE! zusdMew7Vy?zuTZ(fjl4d#k|29=Sz%VX|2J8P$@+JL8d`2o2n@*z;dCol{UT?AGbWb zmWrobN9K<}sgB-lDnp+{4+6Ly4=Im=RS$w9zoa5A&9RNz{3!+W_anx2hC@LlHmzGB zC#E+Db!N2sXb*YyCMpZ-)5!+wo(XS_&Ahrc|j9bQrg6U(6-or6yj!qRvcUOoUEZggvbpN?bXhIYeDYHmX%-5DNC7DZ9~yKMc^q z70X9=eAU%B8FH^9{~Z46yg`Ekne-rKzgu@fSa>T{IlJ-OJBVlPFs!Pz&fGC$8_qLD zS?3pjW9;&0f^fnvOIkRr6Vw&N9;VtHTNU6(VjiSr5<^=HlzzaBowr_6%x6v1P)7PD zmKb(@F#v;$)Cv5%UH$0R7CzdRO_-yH$DZIDwt!cGG1qaJ8$~rrT8jW=lufEvXQM;N zpcEd`%55MQ>y-#LXCuQjX;EGKlv|^zy8PW%(Ic^%%ewVWhokFpUX<2gI!TU?1ogghwJ41^M!=(P`$dyrQBP# z(FNmGm?&OTF%)-q8E;jNXj81{CUV;j1u{7>p9+2aznv*W54>4!qeq(~tW_!Qr=cqs zi=s`$Qb@_c(m8?@Gs(hG9CGe7Z z@s@ILqjj{-JzUio)na11eS?#pB~4xGMSc7n0<>t0s<1FVi2Y$wY-*^))_gQ>#A6L= z##xo5Enj&xXOjD|!BpGnKKItoh zP~?rZeKT7xGkQ^QO!Iu3Tu5m?{`*yIkSBt(u!Xr$l~|tUYE0gGA;RLWD4kqHyaegi z_f;rR=Tx*!1DQxV0b&y1ytU7lpa1?s(rX8*q1|s+FyHLNDokYgrXlZa(-1# zX+(+iw}hOK0Pmm6w<$KN3U#B!Ez2J_mBlBKg>> zl!Qq|FYO+siE#f*EIIpEEQua^&WLM=*C34Y*`hkD=tRXv?9zbOe;km1CN{Aaq(UJS0%t{E>qOo|Fh;jvXXFxrvcF+i z2)xczItjQe?S8=2$D68fd2ny2`hdd#=F?s)QW4C98OS=T_}i96a$~%mED^ah+1@9W z;NA<_pH?ZmQKao|(HN6@_@^mL&G4`0 z8V6r6K8Mi$OuEbtbJY$P=z4UfvY5?>jT+A2sjPN%Yt(TI%=%J37GBR-`XlqaOGj*4 z{rf}Hw?k?23gbL9G3IX<6~#gEyI;YjtkI=lj7w5HezqAHbjmUM)qx|E&#img!JI>c zZo+%?#1w+q#TXuzZvr7zcCTUc%qsArB7k1k3Hy~xsWhpe_Jnrvl0#;~VbBx*2R8Xs zUr9g$5(_Si?R`)1@GFpI5b6Y>@azRe(JvB&s=4$taFkDV83lr1X9}d><@yQJ<_S&? zS&dMMINY9~o}QTTUVK9*iD%=Se+5&MGs_bNp;+%=A*|cwG}HC?7u4FlsAhfJzy=;H zJ;eJ4_A^z?@1v=kvr>PW>o+^Ja7roN5ZUQlVvWApNe864%fO%|1X5iS%(L=*^44td>jQ=a1XjI3e1Q3F50{zd!c9` z4Q16HxPtVhKQuJR`ArNJJyssXHKiR{+sGXywwq$*UK>Q`z$RuWJJN0*q8-hY#aMI< zNW?_UA-#ppx&{;(Pk)ac)(g9x4E^I?1`w=E_niX$$<693g1`zXZgwsykv1p=d%=ni z>I~jp;z494-|a#ASB7hf1(-l}?V$ujMDGBbciC(#I%AgayMTL;%E`MT#{g*nv^i~Z z1B9m1=F-_ZfxCqW8YFeN?{LKzI?T*}r@i2$3Dpmo){lF^`y8{O_fKdsE%)>fziPep zv61CV%eYxd*-*PMZF)Mu?m3&`mUU$zHNHE^7TB0Or3H9%dGC$&{kDUcFG@k zmd|0&*aGqTt{Cq$y8Kd6{xX+*VKheIzqy3~Qf=0%A`P4$?_oI03FyzZJ-n`;ouP7t zO53+!A?}Kv0U*W2inw0bZ;Vu0)YuRj1ZjTzsfKkzhqgPwtEjRb6C!28g2xcqcWXyg89gE~ z@gFaMqY@ml6<8E(v$9`dADbj`T1X6mP}(Toq~(N-F&{ICqXnw)=T|wR2bQd>CQP#2 z@6`5|d0gxWfmm_e5rV4*!eXKU!4Q-Fm&iH*l#+HQ&Ldsu&Z zu+s+0yrbEIbjaf#qxw@k81iF&RxB`}gJi^aH&uUHdo8XKYR4XNF|_>p7v}qh`7YZa za;B>nH0)Qk$g#%wtSwVYU;j%^OaSQB`GOg(a2vyM!TemmET1LMNAO~@IwVb?+=L?k zoocjCQ>V#F*&L334rvepdfFQp)W^of=jY>0b&>)}HJn*lDNvdGOo;0(`HtAoaXhC9 zc19xpM8^1Q7IBCXC*Lf2cf%iE^83k;HQ`e+r9Op-b$b16^Lnp;GAf zl&h4=OvF@_aEW?x$tY*bh7@i1nMZ4WTTF5X2CW?#Z|rYL&v#Ro=U@{oQL`iTES!=@ z-6oYej)ou3X=+|-Z7&2_4gN-$GA+ozq>tDaQu;G!L&LblY<+}hNhm?q{k_Cj9^PpvcbN5K!sH6;RrOP7AT!bTQ8SaZYE0Bj#FiK{x2`8`v{w$T~^4aae+L zJ&pe5Hrn(x{G!Gpwx1QyL<)5tFny7lMX=9gsy3$qbrPJI@a)MvE|OzjLG=9eid|`H z4u3vQ7y0Ec>#a7(H#Js{6}o;_kdZF>B-)QUjS&^$4{zE3Rf+(t*SFM-r8{8D7TWe&Y{58s0*x{f%^-Zw?j zsd_j`)iG^n+8*{>-hR(ABe(9?w8K@kN z9BP!XFfP>R_^j2_zao^ZpQLtNN0uh@Yzm$I!eLP^6nBzY(@FC{cmH`GeU~2Fw*6Xl zm~+EVY3Q6@KiBY-+C&;o zS;MxDyeHC@(ZbI!r{ondaBYTG09V#^i8k^hcPC-e}0b*a-I#3iBM@O=i~pSOxBz z0fRaj&15$HDx43GbSmAC@57RQX+?F;78qfiJYevjSGXjNp4<@rHk z&5N8rW4e5n#qezCHoOYZq-5{J;yr>S=>vG> z`k)%+=y3Z;*vWw_^H)-)dmI^2KvOtTIXpsxdrntBm}?&(K}I}*4UNp3z=OkBPFOe5 ze>L(_Y!jJs=jTRWPn6DdmnAw3_Cs?CrJKlmoZ?;oIqjsaqOb>fC|c+#Ca+SJ`Ql1vXs7O>Vp4X-v@0irbILf%wTHQeIGUDFTge_KL^Hl29HDhU?q z>M1BJ6SC&n;(r<0?4q)TyYj$OC#YgIsFf^vOsPf-V2%nU5up~I&`{2qQ0E})ZD4~1 zMA*d)_AI*f87%G_?x+ZuCFqrQbU_X^0N?cVc2m1fB&X`>r=8%Nv6dc9?RYDZ>r{FY>9F*NFQd1wiRId z@Mqyuf)OE#)FOV;%&UC6KtMYOsSl;`W82Ub#{TyNET!UY`(g0%IdirTE#K_qr0PwW zVi+u9_1`FUoo?GI=oqWL> z4tdm^`S#&bJSgB#XFpeGVS@9K)cHNTE7+#(w@~MH6+4uRg8{@!OU=x^Z~^zBr_r>l z#T48s)SA+{Sv<^f$o>ozPDMBXq_djd5~?+BFcw>&@PceJmSu%3L!`@x<)SCnCqf;5 z?OvrmfPUO9N1y*U&B#TD^iC|Qe_9^;+TKvb&q`tV|MC+K)0-ST{vi2-C}rXk;a`og z+9TmH?P{d=OGz*R4B@-5ya0zDp)g&Ik?d&krdTJRHyRoD4kc#uX%fcWr1k@5A-U*R zGq$yXC(=))OPZU%c=by||JW-)Mh1U3<~d}#?4FSJei{RPZ8d_kK}yBJ8@y2PY%i;N zFPvmuH}8x>E8Q|&pAY+@`}JM>7hGN}2S*&|kQPRMnxse2{=gUGca2>&0tzk7q+p;D zS(O_utzH(y)K6XJ5`#MX5Y(0Lq61V#c#{_js`s0`jFA^$Y8#$RK%XsxS9PQsxJaiE&u*aT?0@CTxnN zg%P5QV-2rv0sn=ml}WkxsWgE*oN=RIZ@hj$ajQ8?3@EBX8Hmzmb_%V(3NY8!z$-Q zbFr;#+ofS5wC8)2x6NB{Mle@G#qIb7M$J9*6*Ia?$1Ibo zy%Hl_zahGTh3zz=S}rVx!<(y!tre z9Hm1qr6Aa38w)=p&m(enUh^8pnJ_JSf1@U>SFyMXk|DdiH(~CrK9TPmhmUt13D($H z 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

D}Htj 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 literal 0 HcmV?d00001 diff --git a/hash_tables/figures/hash_table.png b/hash_tables/figures/hash_table.png new file mode 100644 index 0000000000000000000000000000000000000000..94a052adcf0a542029ad7aaa420cf82705ed09fa GIT binary patch literal 122973 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 N-o8 Date: Wed, 30 May 2018 00:43:39 -0700 Subject: [PATCH 13/32] added stacks queues initial draft --- stacks_queues/figures/queues.png | Bin 0 -> 17201 bytes stacks_queues/figures/stacks.png | Bin 0 -> 16171 bytes stacks_queues/stacks_queues.md | 49 +++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 stacks_queues/figures/queues.png create mode 100644 stacks_queues/figures/stacks.png create mode 100644 stacks_queues/stacks_queues.md diff --git a/stacks_queues/figures/queues.png b/stacks_queues/figures/queues.png new file mode 100644 index 0000000000000000000000000000000000000000..463724f22f30334e5facd13361b038f53ede8687 GIT binary patch literal 17201 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 Date: Wed, 6 Jun 2018 23:29:40 -0700 Subject: [PATCH 14/32] Edit Stacks and Queues guide --- stacks_queues/stacks_queues.md | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/stacks_queues/stacks_queues.md b/stacks_queues/stacks_queues.md index 86accb2..124685b 100644 --- a/stacks_queues/stacks_queues.md +++ b/stacks_queues/stacks_queues.md @@ -1,33 +1,33 @@ ## Introduction -Stacks and queues are foundational data structures that are useful when adding and removing in particular orders. It's important to be comfortable with these two data structures. +Stacks and queues are foundational data structures that are useful for problems that rely on adding and removing elements in a particular order. It's important to be comfortable with these two data structures. ## Stacks -A **stack** is a data structure that stores objects in which the most recently stored objects are the first ones to be removed, (LIFO: last in, first out). An example to help you remember the mechanics of a stack is to associate it with stacks in real life. With a stack of plates, the plates that are placed on top of a stack will be the first ones that are removed from the top! +A **stack** stores objects such that the most recently added objects are the first ones to be removed (LIFO: last in, first out). An example to help you remember the mechanics of a stack is to associate it with stacks in real life. In a stack of plates, the ones placed on top will be the first ones removed! ![](https://i.imgur.com/qMSmxsa.png) It's important to know the common operations of a stack. The two key stack operations are: -1) pop(): removing an item from the stack in a last in, first out order (LIFO) -2) push(item): adding an item to the stack +1. pop(): removing an item from the stack in last in, first out order (LIFO) +2. push(item): adding an item (to the top of the stack) ## Queues -A **queue** is a data structure that stores objects in which the most stored objects are the first ones to be removed. A helpful acronym associated with queues is FIFO, first in first out. An example to help you remember the mechanics of a queue is to associate it with queues in real life. With a queue of people waiting to get a seat in a restaurant, the first people to get in the queue will be the first people seated at that restaurant. +A **queue** stores objects such that the objects added earliest are the first ones to be removed (FIFO: first in first out). An example to help you remember the mechanics of a queue is to associate it with queues in real life. In a queue of people waiting to get a seat in a restaurant, the first people in line (in the queue) will be the first to get a table. ![](https://i.imgur.com/NKuZd0s.png) It's important to know the common operations associated with a queue. The two important queue operations are: -1) dequeue(): removing an item from the queue in a first in, first out order (FIFO) -2) enqueue(item): adding an item to the queue +1. dequeue(): removing an item from the queue in first in, first out order (FIFO) +2. enqueue(item): adding an item (to the back of the queue) ## Key takeaways -* Stacks are very useful for it's backtracking features. For example, parsing questions tend to use stacks because of the LIFO property. +* Stacks are very useful for their backtracking features. For example, parsing questions tend to use stacks because of their LIFO property. * Stacks can be used to implement recursive solutions iteratively. -* Queues are useful when the ordering of the data matters as it preserves that ordering. For example, they're used for caching. +* Queues are useful when the ordering of the data matters because they preserve the original ordering. For example, queues are used for caching. ## Example problems -* Stacks: +* Stacks: * [Implement a queue with stacks](https://leetcode.com/problems/implement-queue-using-stacks/description/) * Queues: @@ -35,15 +35,14 @@ It's important to know the common operations associated with a queue. The two im ## Resources ### Guides -* [Overview of stacks & queues with applications](https://www.cs.cmu.edu/~adamchik/15-121/lectures/Stacks%20and%20Queues/Stacks%20and%20Queues.html) -* [In depth stacks guide](https://medium.com/basecs/stacks-and-overflows-dbcf7854dc67) -* [In depth queues guide](https://medium.com/basecs/to-queue-or-not-to-queue-2653bcde5b04) +* [Overview of stacks and queues with applications](https://www.cs.cmu.edu/~adamchik/15-121/lectures/Stacks%20and%20Queues/Stacks%20and%20Queues.html) +* [In-depth stacks guide](https://medium.com/basecs/stacks-and-overflows-dbcf7854dc67) +* [In-depth queues guide](https://medium.com/basecs/to-queue-or-not-to-queue-2653bcde5b04) ### Libraries -* [Java queue library](https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html) -* [Java stack library]( +* [Java Queue library](https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html) +* [Java Stack library]( https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html) * [Python queue library]( https://docs.python.org/2/tutorial/datastructures.html#using-lists-as-queues) * [Python stack library](https://docs.python.org/2/tutorial/datastructures.html#using-lists-as-stacks) - From b5f8ab9a4102916f2c6925bfda2ca24d5533b55d Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 27 Jun 2018 13:56:16 -0700 Subject: [PATCH 15/32] add binary search --- strings_arrays/binary_search.md | 63 +++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 strings_arrays/binary_search.md diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md new file mode 100644 index 0000000..8aa2533 --- /dev/null +++ b/strings_arrays/binary_search.md @@ -0,0 +1,63 @@ +Binary Search Guide +======================== +Binary search is a method for locating an element in a sorted list efficiently. Searching for an element can done naively in $O(N)$ time, but binary search speeds it up to $O(\log N)$. Binary search is a great tool to keep in mind for array problems. + +Algorithm +------------------ +In binary search, you are provided a list of sorted numbers and a key. The desired output is the index of the key, if it exists. + +Binary search is a recursive algorithm. The high level approach is that we examine the middle element of the list. The value of the middle element determines whether to terminate the algorithm (found the key), recursively search the left half of the list, or recursively search the right half of the list. +``` +def binary_search(nums, key): + if nums is empty: + return None + if middle element is equal to key: + return middle index + if middle element is greater than key: + binary search left half of nums + if middle element is less than + binary search right half of nums +``` + +There are two canonical ways of implementing binary search: recursive and iterative. Both solutions utilizes two pointers that keep track of the portion of the list we are searching. + +### Recursive Binary Search + +The recursive solution utilizes a helper function to keep track of pointers to the section of the list we are currently examining. The search either completes when we find the key, or the two pointers meet. + +```python +def binary_search(nums, key): + return binary_search_helper(nums, key, 0, len(nums)) + +def binary_search_helper(nums, key, start_idx, end_idx): + middle_idx = (start_idx + end_idx) // 2 + if start_idx == end_idx: + return None + if nums[middle_idx] > key: + return binary_search_helper(nums, key, start_idx, middle_idx) + elif nums[middle_idx] < key: + return binary_search_helper(nums, key, middle_idx + 1, end_idx) + else: + return middle_idx +``` + +### Iterative Binary Search + +The iterative solution manually keeps track of the section of the list we are examining, using the two-pointer technique. The search either completes when we find the key, or the two pointers meet. +```python +def binary_search(nums, key): + left_idx, right_idx = 0, len(nums) + while right_idx > left_idx: + middle_idx = (left_idx + right_idx) // 2 + if nums[middle_idx] > key: + right_idx = middle_idx + elif nums[middle_idx] < key: + left_idx = middle_idx + 1 + else: + return middle_idx + return None +``` + +## Runtime and Space Complexity + +Binary search completes in $O(\log N)$ time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with tail call optimization. From 7542c7ea23a25f014bb2e48e204de3e0261f3f5e Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Wed, 27 Jun 2018 14:05:58 -0700 Subject: [PATCH 16/32] Update binary_search.md --- strings_arrays/binary_search.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md index 8aa2533..1752a6c 100644 --- a/strings_arrays/binary_search.md +++ b/strings_arrays/binary_search.md @@ -1,6 +1,4 @@ -Binary Search Guide -======================== -Binary search is a method for locating an element in a sorted list efficiently. Searching for an element can done naively in $O(N)$ time, but binary search speeds it up to $O(\log N)$. Binary search is a great tool to keep in mind for array problems. +Binary search is a method for locating an element in a sorted list efficiently. Searching for an element can done naively in **O(N)** time, but binary search speeds it up to **O(log N)**. Binary search is a great tool to keep in mind for array problems. Algorithm ------------------ @@ -60,4 +58,4 @@ def binary_search(nums, key): ## Runtime and Space Complexity -Binary search completes in $O(\log N)$ time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with tail call optimization. +Binary search completes in **O(log N)** time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with tail call optimization. From dd79a923b61d775f1fceeff420f52cb6947ae32a Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sun, 8 Jul 2018 21:11:15 -0700 Subject: [PATCH 17/32] Update binary_search.md --- strings_arrays/binary_search.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md index 1752a6c..56e7f6f 100644 --- a/strings_arrays/binary_search.md +++ b/strings_arrays/binary_search.md @@ -2,7 +2,7 @@ Binary search is a method for locating an element in a sorted list efficiently. Algorithm ------------------ -In binary search, you are provided a list of sorted numbers and a key. The desired output is the index of the key, if it exists. +In binary search, you are provided a list of sorted numbers and a key. The desired output is the index of the key, if it exists and None if it doesn't. Binary search is a recursive algorithm. The high level approach is that we examine the middle element of the list. The value of the middle element determines whether to terminate the algorithm (found the key), recursively search the left half of the list, or recursively search the right half of the list. ``` @@ -58,4 +58,12 @@ def binary_search(nums, key): ## Runtime and Space Complexity -Binary search completes in **O(log N)** time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with tail call optimization. +Binary search completes in **O(log N)** time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with [tail call optimization](https://en.wikipedia.org/wiki/Tail_call). + +## Example problems +* [Search insert position](https://leetcode.com/problems/search-insert-position/description/) +* [Search in a 2D matrix](https://leetcode.com/problems/search-a-2d-matrix/description/) + +## Video walkthrough +* [HackerRank binary search video](https://www.youtube.com/watch?v=P3YID7liBug) +* [Search a 2D matrix](https://www.youtube.com/playlist?list=PL7zKQzeqjecINi-_8CmiFLMLCCxjIHBPj) From 294211fb5ec331cc6c66c3567f0dd3af4cb0baa4 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sun, 8 Jul 2018 21:11:51 -0700 Subject: [PATCH 18/32] Create two_pointer --- strings_arrays/two_pointer | 138 +++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 strings_arrays/two_pointer diff --git a/strings_arrays/two_pointer b/strings_arrays/two_pointer new file mode 100644 index 0000000..19fb340 --- /dev/null +++ b/strings_arrays/two_pointer @@ -0,0 +1,138 @@ +The **two pointer method** is a helpful technique to always keep in mind when working with strings and arrays questions. It's a clever optimization that can help reduce time complexity with no added space complexity (a win-win!) by utilizing extra pointers to avoid repetitive operations. + +This approach is best demonstrated through a walkthrough, as done below. + +## Problem: Minimum size subarray sum + +Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead. + +**Example:** +```python +>>> min_sub_array_length([2,3,1,2,4,3], 7) +2 +``` + +Explanation: the subarray [4,3] has the minimal length under the problem constraint. + +## Solution #1: Brute Force +**Approach** + +When first given a problem, if an optimal solution is not immediately clear, it's better to have a solution that works rather than to be stuck. With this problem, a brute force solution would be to generate all possible subarrays and find the length of the shortest subarray that sums up to a sum that is greater than or equal to the given number. + +**Implementation** +```python= +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + for end_idx in range(start_idx, len(nums)): + subarray_sum = get_sum(nums, start_idx, end_idx) + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + return min_length if min_length != float("inf") else 0 + +def get_sum(nums, start_index, end_index): + result = 0 + for i in range(start_index, end_index + 1): + result += nums[i] + return result +``` + +**Time and space complexity** + +The time complexity of this solution would be O(N^3^). The double for loop results in O(N^2^) calls to get_sum and each call to get_sum has a worst case run time of O(N), which results in a O(N^2^ * N) = **O(N^3^) runtime**. + +The space complexity would be **O(1)** because the solution doesn't create new data structures. + +## Improvements +#### Optimization #1: Keep track of a running sum instead of running `get_sum` in each iteration of the inner `end_idx` for loop +In the brute solution, a lot of repetitive calculations are done in the inner `end_idx` for loop with the `get_sum` function. Instead of having to recalculate the sum from elements `start_idx` to `end_idx` within every iteration of the `end_idx` loop, we can store a `subarray_sum` variable to store calculations from previous iterations and simply add to it within each iteration of the `end_idx` loop. + +```python= +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + subarray_sum = 0 + for end_idx in range(start_idx, len(nums)): + subarray_sum += nums[end_idx] + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + return min_length if min_length != float("inf") else 0 +``` + +This optimization reduces the time complexity from O(N3) to O(N2) with the addition of a variable to store the accumulating sum. + + +#### Optimization #2: Reduce number of calculations by terminating the inner `end_idx` for loop early +With the improved solution, we can further reduce the number of iterations in the inner for loop by terminating it early. Once we have a `subarray_sum` that is equal to or greater than the target sum, we can simply move to the next iteration of the outer for loop. This is because the questions asks for minimum length subarray and any further iterations of the inner for loop would only cause an increase in the subarray length. + +```python= +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + subarray_sum = 0 + for end_idx in range(start_idx, len(nums)): + subarray_sum += nums[end_idx] + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + continue + return min_length if min_length != float("inf") else 0 +``` + +This is a minor time complexity improvement and this solution will still have a worst case runtime of O(N2). The improvement is nice, but to reduce the runtime from O(N2) to O(N), we would need to somehow eliminate the inner for loop. + + +## Solution #2: Two pointer approach +**Approach** +The optimal, two pointer approach to this problem utilizing the observations we made in the previous section. The main idea of this approach is that we grow and shrink an interval as we loop through the list while keeping a running sum that we update as we alter the interval. + +There will be two pointers, one to track the start of the interval and the other to track the end. They will both start at the beginning of the list and will dynamically move to the right until we hit the end of the list. + +First, we grow the interval to the right until it exceeds the minimum sum. Once we find that interval, we move the start pointer right as much as we can to shrink the interval until it sums up to a number that is smaller than the sum. + +Then, we move the end pointer to once again to try and hit the sum with new intervals. If growing the interval by moving the end pointer leads to an interval that sums up to at least the target sum, we need to repeat the process of trying to shrink the interval again by moving the start pointer before further moving the end pointer. + +As we utilize these two pointers to determine which intervals to evaluate, we have a variable to keep track of the current sum of the interval as we go along to avoid recalculating it every time one of the pointers moves to the right and another variable to store the length of the shortest interval that sums up to >= the target sum. + +This push and pull of the end and start pointer will continue until we finish looping through the list. + + +**Implementation** +```python= +def min_sub_array_length(nums, sum): + start_idx = 0 + min_length, subarray_sum = float('inf'), 0 + + for end_idx in range(len(nums)): + subarray_sum += nums[end_idx] + while subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + subarray_sum -= nums[start_idx] + start_idx += 1 + if min_length == float('inf'): + return 0 + return min_length +``` + +**Time and space complexity** + +The time complexity of this solution would be **O(N)** because each element is at most visited twice. In the worst case scenario, all elements will be visited once by the start pointer and another time by the end pointer. + +The space complexity would be **O(1)** because the solution doesn't create new data structures. + +**Walkthrough** + +Take the example of `min_sub_array_length([2,3,1,2,4,3], 7)`. The left pointer starts at 0 and the right doesn't exist yet. + +As we start looping through the list, our first interval is [2]. We won't fulfill the while loop condition until the list reaches [2, 3, 1, 2] whose sum, 8 is >= 7. We then set the `min_length` to 4. + +Now, we shrink the interval to [3, 1, 2] by increasing `start_idx` by 1. This new interval sums up to less than the target sum, 7 so we need to grow the interval. In the next iteration, we grow the interval to [3, 1, 2, 4], which has a sum of 10 and once again, we satisfy the while loop condition. + +We then shrink the interval to [1, 2, 4]. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 3. + +We now move the `end_idx` pointer and it hits the end of the list, with interval [2, 4, 3]. Then shrink the interval to [4, 3], which sums up to 7, the target sum. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 2. This is the final result that is returned. + +## Takeaways + +This optimization can often be applied to improve solutions that involve the use of multiple for loops, as shown in the example above. If you have an approach that utilizes multiple for loops, analyze the actions within those for loops to determine if repetitive calculations can be removed through strategic movements of multiple pointers. + +**Note**: Though this walkthrough demonstrated applying the two pointer approach to an arrays problem, this approach is commonly utilized to solve string problems as well. From edb39787e67bb571cd65ba084b5684402d645007 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sun, 8 Jul 2018 21:12:36 -0700 Subject: [PATCH 19/32] Rename two_pointer to two_pointer.md --- strings_arrays/{two_pointer => two_pointer.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename strings_arrays/{two_pointer => two_pointer.md} (100%) diff --git a/strings_arrays/two_pointer b/strings_arrays/two_pointer.md similarity index 100% rename from strings_arrays/two_pointer rename to strings_arrays/two_pointer.md From f5fdba9d4b25a4fdd34d785b197f6f9530bc246d Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Sun, 8 Jul 2018 21:13:08 -0700 Subject: [PATCH 20/32] Create sorting.md --- strings_arrays/sorting.md | 143 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 strings_arrays/sorting.md diff --git a/strings_arrays/sorting.md b/strings_arrays/sorting.md new file mode 100644 index 0000000..500a4ad --- /dev/null +++ b/strings_arrays/sorting.md @@ -0,0 +1,143 @@ +Sorting is a fundamental tool for tackling problems, and is often utilized to help simplify problems. + +There are several different sorting algorithms, each with different tradeoffs. In this guide, we will cover several well-known sorting algorithms along with when they are useful. + +We will go into detail for merge sort and quick sort, but will describe the rest at a high level. + +## Terminology +Two commonly used terms in sorting are: + +1. **in-place sort**: modifies the input list and does not return a new list +2. **stable sort**: retains the order of duplicate elements after the sort ([3, 2, 4, **2**] -> [2, **2**, 3, 4]) + +## Merge sort +**Merge sort** is perhaps the simplest sort to implement and has very consistent behavior. It adopts a divide-and-conquer strategy: recursively sort each half of the list, and then perform an O(N) merging operation to create a fully sorted list. + +### Implementation + +The key operation in merge sort is `merge`, which is a function that takes two sorted lists and returns a single list which is sorted. +```python +def merge(list1, list2): + if len(list1) == 0: + return list2 + if len(list2) == 0: + return list1 + if list1[0] < list2[0]: + return [list1[0]] + merge(list1[1:], list2) + else: + return [list2[0]] + merge(list1, list2[1:]) +``` +This is a recursive implementation of `merge`, but an iterative implementation will also work. + +Given this `merge` operation, writing merge sort is quite simple. + + +```python +def merge_sort(nums): + if len(nums) <= 1: + return nums + middle_idx = len(nums) // 2 + left_sorted = merge_sort(nums[:middle_idx]) + right_sorted = merge_sort(nums[middle_idx:]) + return merge(left_sorted, right_sorted) +``` + +### Runtime + +Merge sort is a recursive, divide and conquer algorithm. It takes O(log N) recursive merge sorts and each merge is O(N) time, so we have a final runtime of O(N log N) for merge sort. Its behavior is consistent regardless of the input list (its worst case and best case take the same amount of time). + +**Summary** +* Worst case: O(N log N) +* Best case: O(N log N) +* Stable: yes +* In-place: no + +## Quick sort + +**Quick sort** is also a divide and conquer strategy, but uses a two-pointer swapping technique instead of `merge`. The core idea of quick sort is to select a "pivot" element in the list (typically the middle element), and swap elements in the list such that everything left of the pivot is less than it, and everything right of the pivot is greater. We call this operation `partition`. Quick sort is notable in its ability to sort efficiently in-place. + +```python +def partition(nums, left_idx, right_idx): + pivot = nums[left_idx] + while True: + while nums[left_idx] < pivot and left_idx <= right_idx: + left_idx += 1 + while nums[right_idx] > pivot and right_idx >= left_idx: + right_idx -= 1 + if left_idx >= right_idx: + return right_idx + nums[left_idx], nums[right_idx] = nums[right_idx], nums[left_idx] + left_idx += 1 + right_idx -= 1 +``` +The partition function modifies `nums` inplace and takes up no extra memory. It also takes O(N) time in the worst case to fully partition a list. + +```python +def quick_sort_helper(nums, left_idx, right_idx): + if left_idx >= right_idx: + return + pivot_idx = partition(nums, left_idx, right_idx) + if left_idx < pivot_idx - 1: + quick_sort_helper(nums, left_idx, pivot_idx) + if right_idx > pivot_idx + 1: + quick_sort_helper(nums, pivot_idx + 1, right_idx) + +def quick_sort(nums): + quick_sort_helper(nums, 0, len(nums) - 1) +``` + +### Runtime + +The best case performance of quick sort is O(N log N), but depending on the structure of the list, quick sort's performance can vary. + +If the pivot happens to be the median of the list, then the list will be divided in half after the partition. + +In the worst case, however, the list will be divided into an N - 1 length list and an empty list. Thus, in the worst possible case, quick sort has O(N2) performance, since we'll have to recursively quicksort (N - 1), (N - 2), ... many lists. However, on average and in practice, quick sort is still very fast due to how fast swapping array elements is. + +The space complexity for this version of quick sort os O(log N), due to the number of call stacks created during recursion, but an iterative version can make space complexity O(1). + +**Summary** +* Worst case: O(N2) +* Best case: O(N log N) +* Stable: no +* In-place: yes + +## Insertion sort + +In **insertion sort**, we incrementally build a sorted list from the unsorted list. We take elements from the unsorted list and insert them into the sorted list, making sure to maintain the order. + +This algorithm takes O(N2) worst time, because looping through the unsorted list takes O(N) and finding the proper place to insert can take O(N) time in the worst case. However, if the list is already sorted, insertion sort takes O(N) time, since insertion time will be O(1). Insertion sort can be done in-place, so it takes up O(1) space. + +Insertion sort is easier on linked lists, which have O(1) insertion whereas arrays have O(N) insertion because in an array, inserting an element requires shifting all the elements behind that element. + +**Summary** +* Worst case: O(N^2^) +* Best case: O(N) +* Stable: yes +* In-place: yes + +## Selection sort + +**Selection sort** incrementally builds a sorted list by finding the minimum value in the rest of the list, and swapping it to be in the front. + +It takes O(N2) time in general, because we have to loop through the unsorted list which is O(N) and in each iteration, we search the rest of the list which always takes O(N). Selection sort can be done in-place, so it takes up O(1) space. + +**Summary** +* Worst case: O(N2) +* Best case: O(N2) +* Stable: no +* In-place: yes + +## Radix sort + +**Radix sort** is a situational sorting algorithm when you know that the numbers you are sorting are bounded in some way. It operates by grouping numbers in the list by digit, looping through the digits in some order. + +For example, if we had the list [100, 10, 1], radix sort would put 100 in the group which had 1 in the 100s digit place and would put (10, 1) in a group which had 0 in the 100s digit place. It would then sort by the 10s digit place, and finally the 1s digit place. + +Radix sort thus needs one pass for each digit place it is sorting and takes O(KN) time, where K is the number of passes necessary to cover all digits. + +**Summary** +* Worst case: O(KN) +* Best case: O(KN) +* Stable: yes (if going through digits from right to left) +* In-place: no From b9cd5316c010761dc88061330c24a9c393a282a4 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Mon, 9 Jul 2018 01:56:32 -0700 Subject: [PATCH 21/32] Create strings_arrays.md --- strings_arrays/strings_arrays.md | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 strings_arrays/strings_arrays.md diff --git a/strings_arrays/strings_arrays.md b/strings_arrays/strings_arrays.md new file mode 100644 index 0000000..554c36d --- /dev/null +++ b/strings_arrays/strings_arrays.md @@ -0,0 +1,40 @@ +## Arrays +An **array** is a data structure that holds a fixed number of objects. Because arrays have fixed sizes, they are highly efficient for quick lookups regardless of how big the array is. However, there is a tradeoff with this fast access time; any insertion or deletion from the middle of the array requires moving the rest of the elements to fill in or close the gap. To optimize time efficiency, try to add and delete mostly from the end of the array. + +Arrays commonly come up in interviews, so it's important to review the array library for the language you code in. + +**Tips:** +* Off-by-one errors can often happen with arrays, so be wary of potentially over indexing as it will throw an error +* Try to add elements to the back of an array instead of the front, as adding to the front requires shifting every element back +* In Java, arrays are a fixed size so consider utilizing an [ArrayList](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) instead if you need to dynamically alter the size of the array. + +## Strings +**Strings** are a special kind of array, one that only contains characters. They commonly come up in interview questions, so it's important to go through the string library for the language you're most comfortable with. You should know common operations such as: getting the length, getting a substring, splitting a string based on a delimiter, etc. + +It's important to note that whenever you mutate a string, a new copy of the string is created. There are different ways to reduce the space utilized depending on the language: +* In Python, you can represent a string as a list of characters and operate on the list of character instead. +* In Java, you can utilize the [StringBuffer](https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html) class to mitigate the amount of space utilized if you need to mutate a string. + + + +## Patterns List +* [Two pointer](https://guides.codepath.com/compsci/Two-pointer) +* [Binary Search](https://guides.codepath.com/compsci/Binary-Search) +## Further reading links +### Strings +#### General guide +* [Coding for Interviews Strings Guide](http://blog.codingforinterviews.com/string-questions/) + +#### Strings in C++ + * [Character Arrays in C++](https://www.youtube.com/watch?v=Bf8a6IC1dE8) + * [Character Arrays in C++ Part 2](https://www.youtube.com/watch?v=vFZTxvUoZSU) + +### Arrays +#### General guide + * [InterviewCake Arrays](https://www.interviewcake.com/concept/java/array) + +#### Python arrays +* [Google developer lists guide](https://developers.google.com/edu/python/lists) +#### Java arrays + * [InterviewCake DynamicArray](https://www.interviewcake.com/concept/java/dynamic-array-amortized-analysis?) + * [ArrayList Succinctly Guide](https://code.tutsplus.com/tutorials/the-array-list--cms-20661) From 51ed1061c5b5f39bb06d054d6093f145fdd68575 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Mon, 9 Jul 2018 01:57:22 -0700 Subject: [PATCH 22/32] Update strings_arrays.md --- strings_arrays/strings_arrays.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/strings_arrays/strings_arrays.md b/strings_arrays/strings_arrays.md index 554c36d..9484cc2 100644 --- a/strings_arrays/strings_arrays.md +++ b/strings_arrays/strings_arrays.md @@ -15,12 +15,10 @@ It's important to note that whenever you mutate a string, a new copy of the stri * In Python, you can represent a string as a list of characters and operate on the list of character instead. * In Java, you can utilize the [StringBuffer](https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html) class to mitigate the amount of space utilized if you need to mutate a string. - - ## Patterns List * [Two pointer](https://guides.codepath.com/compsci/Two-pointer) * [Binary Search](https://guides.codepath.com/compsci/Binary-Search) -## Further reading links + ### Strings #### General guide * [Coding for Interviews Strings Guide](http://blog.codingforinterviews.com/string-questions/) From 592b39f07055e7c0d24f1b5aff8c315e84413618 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Mon, 9 Jul 2018 01:58:00 -0700 Subject: [PATCH 23/32] Update binary_search.md --- strings_arrays/binary_search.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md index 56e7f6f..036889c 100644 --- a/strings_arrays/binary_search.md +++ b/strings_arrays/binary_search.md @@ -66,4 +66,5 @@ Binary search completes in **O(log N)** time because each iteration decreases th ## Video walkthrough * [HackerRank binary search video](https://www.youtube.com/watch?v=P3YID7liBug) -* [Search a 2D matrix](https://www.youtube.com/playlist?list=PL7zKQzeqjecINi-_8CmiFLMLCCxjIHBPj) +* [Question walkthrough: Search a 2D matrix](https://www.youtube.com/playlist?list=PL7zKQzeqjecINi-_8CmiFLMLCCxjIHBPj) +* [Question walkthrough: Ice Cream Parlor](https://youtu.be/Ifwf3DBN1sc) From 020bfd13c90df0088a436fda968cfe1b55a2bdd4 Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Mon, 9 Jul 2018 01:58:21 -0700 Subject: [PATCH 24/32] Create sorting_colors.md --- strings_arrays/sorting_colors.md | 83 ++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 strings_arrays/sorting_colors.md diff --git a/strings_arrays/sorting_colors.md b/strings_arrays/sorting_colors.md new file mode 100644 index 0000000..3fa6156 --- /dev/null +++ b/strings_arrays/sorting_colors.md @@ -0,0 +1,83 @@ +## Problem +Given N objects colored red, white and blue, sort them *in-place* in red-white-blue order. + +Red, white, and blue objects are represented as 0, 1, and 2 respectively. + +Example: +```python +>>> colors = [2, 1, 2, 0, 0, 1] +>>> sort_colors(colors) +>>> colors +[0, 0, 1, 1, 2, 2] +``` + +## Approach #1: Merge or quick sort + +**Approach** +The problem is asking us to sort a list of integers, so we could potentially use an algorithm like merge sort or quick sort. + +**Time and space complexity** +With a sorting algorithm such as is O(N log N) in the worst case. The space complexity is O(1) since we sort in place. + +## Approach #2: Counting sort +**Approach** +We know that the numbers we are sorting are 0, 1, or 2. This leads to an efficient counting sort implementation, since we can just count the numbers of each and modify the list in place to match the counts in sorted order. + +**Implementation** +```python +from collections import defaultdict +def sort_colors(colors): + counts = defaultdict(int) + for num in colors: + counts[num] += 1 + idx = 0 + while idx < counts[0]: + colors[idx] = 0 + idx += 1 + while idx < counts[0] + counts[1]: + colors[idx] = 1 + idx += 1 + while idx < counts[0] + counts[1] + counts[2]: + colors[idx] = 2 + idx += 1 +``` + +**Time and space complexity** +This solution has complexity O(N), since we loop through the list once, then loop through the dictionary to modify our list, both of which take N time. This solution takes up O(1) space, since everything is done in place and the counts dictionary has a constant size. + +## Approach #3: Three-way partition +This approach uses multiple pointers. Reading the [two pointer guide](https://guides.codepath.com/compsci/Two-pointer) may be helpful. + +**Approach** +Although we cannot asymptotically do better than O(N) since we need to pass through the list at least once, we can limit our code to only making one pass. This will be slightly faster than approach #2. + +We can accomplish this by seeing that sorting an array with three distinct elements is equivalent to a `partition` operation. Recall that in quick sort, we partition an array to put all elements less than a pivot to the left and greater than to a right. Since we only have three potential values in our list, partitioning using the middle value as a pivot will effectively sort the list. + +This particular type of partition is a bit tricky though because we're partitioning on the middle element (the 1's) of our list. It's called a three-way partition, since we are also grouping together elements that are equal in the middle (the 1's). + + +**Implementation** + +```python +def sort_colors(colors): + left, middle, right = 0, 0, len(colors) - 1 + while middle <= right: + if colors[middle] == 0: + colors[middle], colors[left] = colors[left], colors[middle] + left += 1 + middle += 1 + elif colors[middle] == 1: + middle += 1 + elif colors[middle] == 2: + colors[middle], colors[right] = colors[right], colors[middle] + right -= 1 + middle += 1 +``` + + +**Time and space complexity** +This solution has also has complexity O(N), but only takes one pass since it uses two pointers that stop moving when one moves past the other. + +It is slightly faster than the counting sort and is O(1) space, since it is in-place. + +**Note:** This problem is also known as the [Dutch flag problem](https://en.wikipedia.org/wiki/Dutch_national_flag_problem). From 0cc200732115cc4cb4c6444d0d0da0002966ba0f Mon Sep 17 00:00:00 2001 From: Iris Wang Date: Mon, 9 Jul 2018 01:59:02 -0700 Subject: [PATCH 25/32] Update strings_arrays.md --- strings_arrays/strings_arrays.md | 159 +++++++++++++++++++++++++------ 1 file changed, 130 insertions(+), 29 deletions(-) diff --git a/strings_arrays/strings_arrays.md b/strings_arrays/strings_arrays.md index 9484cc2..5713344 100644 --- a/strings_arrays/strings_arrays.md +++ b/strings_arrays/strings_arrays.md @@ -1,38 +1,139 @@ -## Arrays -An **array** is a data structure that holds a fixed number of objects. Because arrays have fixed sizes, they are highly efficient for quick lookups regardless of how big the array is. However, there is a tradeoff with this fast access time; any insertion or deletion from the middle of the array requires moving the rest of the elements to fill in or close the gap. To optimize time efficiency, try to add and delete mostly from the end of the array. +The **two pointer method** is a helpful technique to always keep in mind when working with strings and arrays questions. It's a clever optimization that can help reduce time complexity with no added space complexity (a win-win!) by utilizing extra pointers to avoid repetitive operations. -Arrays commonly come up in interviews, so it's important to review the array library for the language you code in. +This approach is best demonstrated through a walkthrough, as done below. -**Tips:** -* Off-by-one errors can often happen with arrays, so be wary of potentially over indexing as it will throw an error -* Try to add elements to the back of an array instead of the front, as adding to the front requires shifting every element back -* In Java, arrays are a fixed size so consider utilizing an [ArrayList](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) instead if you need to dynamically alter the size of the array. +## Problem: Minimum size subarray sum -## Strings -**Strings** are a special kind of array, one that only contains characters. They commonly come up in interview questions, so it's important to go through the string library for the language you're most comfortable with. You should know common operations such as: getting the length, getting a substring, splitting a string based on a delimiter, etc. +Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead. -It's important to note that whenever you mutate a string, a new copy of the string is created. There are different ways to reduce the space utilized depending on the language: -* In Python, you can represent a string as a list of characters and operate on the list of character instead. -* In Java, you can utilize the [StringBuffer](https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html) class to mitigate the amount of space utilized if you need to mutate a string. +**Example:** +```python +>>> min_sub_array_length([2,3,1,2,4,3], 7) +2 +``` -## Patterns List -* [Two pointer](https://guides.codepath.com/compsci/Two-pointer) -* [Binary Search](https://guides.codepath.com/compsci/Binary-Search) +Explanation: the subarray [4,3] has the minimal length under the problem constraint. -### Strings -#### General guide -* [Coding for Interviews Strings Guide](http://blog.codingforinterviews.com/string-questions/) +## Solution #1: Brute Force +**Approach** -#### Strings in C++ - * [Character Arrays in C++](https://www.youtube.com/watch?v=Bf8a6IC1dE8) - * [Character Arrays in C++ Part 2](https://www.youtube.com/watch?v=vFZTxvUoZSU) +When first given a problem, if an optimal solution is not immediately clear, it's better to have a solution that works rather than to be stuck. With this problem, a brute force solution would be to generate all possible subarrays and find the length of the shortest subarray that sums up to a sum that is greater than or equal to the given number. -### Arrays -#### General guide - * [InterviewCake Arrays](https://www.interviewcake.com/concept/java/array) +**Implementation** +```python +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + for end_idx in range(start_idx, len(nums)): + subarray_sum = get_sum(nums, start_idx, end_idx) + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + return min_length if min_length != float("inf") else 0 + +def get_sum(nums, start_index, end_index): + result = 0 + for i in range(start_index, end_index + 1): + result += nums[i] + return result +``` + +**Time and space complexity** + +The time complexity of this solution would be O(N3). The double for loop results in O(N2) calls to get_sum and each call to get_sum has a worst case run time of O(N), which results in a O(N2 * N) = **O(N3) runtime**. + +The space complexity would be **O(1)** because the solution doesn't create new data structures. + +## Improvements +#### Optimization #1: Keep track of a running sum instead of running `get_sum` in each iteration of the inner `end_idx` for loop +In the brute solution, a lot of repetitive calculations are done in the inner `end_idx` for loop with the `get_sum` function. Instead of having to recalculate the sum from elements `start_idx` to `end_idx` within every iteration of the `end_idx` loop, we can store a `subarray_sum` variable to store calculations from previous iterations and simply add to it within each iteration of the `end_idx` loop. + +```python +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + subarray_sum = 0 + for end_idx in range(start_idx, len(nums)): + subarray_sum += nums[end_idx] + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + return min_length if min_length != float("inf") else 0 +``` + +This optimization reduces the time complexity from O(N3) to O(N2) with the addition of a variable to store the accumulating sum. + + +#### Optimization #2: Reduce number of calculations by terminating the inner `end_idx` for loop early +With the improved solution, we can further reduce the number of iterations in the inner for loop by terminating it early. Once we have a `subarray_sum` that is equal to or greater than the target sum, we can simply move to the next iteration of the outer for loop. This is because the questions asks for minimum length subarray and any further iterations of the inner for loop would only cause an increase in the subarray length. + +```python +def min_sub_array_length(nums, sum): + min_length = float("inf") + for start_idx in range(len(nums)): + subarray_sum = 0 + for end_idx in range(start_idx, len(nums)): + subarray_sum += nums[end_idx] + if subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + continue + return min_length if min_length != float("inf") else 0 +``` + +This is a minor time complexity improvement and this solution will still have a worst case runtime of O(N2). The improvement is nice, but to reduce the runtime from O(N2) to O(N), we would need to somehow eliminate the inner for loop. + + +## Solution #2: Two pointer approach +**Approach** +The optimal, two pointer approach to this problem utilizing the observations we made in the previous section. The main idea of this approach is that we grow and shrink an interval as we loop through the list while keeping a running sum that we update as we alter the interval. + +There will be two pointers, one to track the start of the interval and the other to track the end. They will both start at the beginning of the list and will dynamically move to the right until we hit the end of the list. + +First, we grow the interval to the right until it exceeds the minimum sum. Once we find that interval, we move the start pointer right as much as we can to shrink the interval until it sums up to a number that is smaller than the sum. + +Then, we move the end pointer to once again to try and hit the sum with new intervals. If growing the interval by moving the end pointer leads to an interval that sums up to at least the target sum, we need to repeat the process of trying to shrink the interval again by moving the start pointer before further moving the end pointer. + +As we utilize these two pointers to determine which intervals to evaluate, we have a variable to keep track of the current sum of the interval as we go along to avoid recalculating it every time one of the pointers moves to the right and another variable to store the length of the shortest interval that sums up to >= the target sum. + +This push and pull of the end and start pointer will continue until we finish looping through the list. + + +**Implementation** +```python +def min_sub_array_length(nums, sum): + start_idx = 0 + min_length, subarray_sum = float('inf'), 0 + + for end_idx in range(len(nums)): + subarray_sum += nums[end_idx] + while subarray_sum >= sum: + min_length = min(min_length, end_idx - start_idx + 1) + subarray_sum -= nums[start_idx] + start_idx += 1 + if min_length == float('inf'): + return 0 + return min_length +``` + +**Time and space complexity** + +The time complexity of this solution would be **O(N)** because each element is at most visited twice. In the worst case scenario, all elements will be visited once by the start pointer and another time by the end pointer. + +The space complexity would be **O(1)** because the solution doesn't create new data structures. + +**Walkthrough** + +Take the example of `min_sub_array_length([2,3,1,2,4,3], 7)`. The left pointer starts at 0 and the right doesn't exist yet. + +As we start looping through the list, our first interval is [2]. We won't fulfill the while loop condition until the list reaches [2, 3, 1, 2] whose sum, 8 is >= 7. We then set the `min_length` to 4. + +Now, we shrink the interval to [3, 1, 2] by increasing `start_idx` by 1. This new interval sums up to less than the target sum, 7 so we need to grow the interval. In the next iteration, we grow the interval to [3, 1, 2, 4], which has a sum of 10 and once again, we satisfy the while loop condition. + +We then shrink the interval to [1, 2, 4]. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 3. + +We now move the `end_idx` pointer and it hits the end of the list, with interval [2, 4, 3]. Then shrink the interval to [4, 3], which sums up to 7, the target sum. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 2. This is the final result that is returned. + +## Takeaways + +This optimization can often be applied to improve solutions that involve the use of multiple for loops, as shown in the example above. If you have an approach that utilizes multiple for loops, analyze the actions within those for loops to determine if repetitive calculations can be removed through strategic movements of multiple pointers. + +**Note**: Though this walkthrough demonstrated applying the two pointer approach to an arrays problem, this approach is commonly utilized to solve string problems as well. -#### Python arrays -* [Google developer lists guide](https://developers.google.com/edu/python/lists) -#### Java arrays - * [InterviewCake DynamicArray](https://www.interviewcake.com/concept/java/dynamic-array-amortized-analysis?) - * [ArrayList Succinctly Guide](https://code.tutsplus.com/tutorials/the-array-list--cms-20661) From 32ce4bc0c8308336984086a113ff80cb40b0c4fc Mon Sep 17 00:00:00 2001 From: bzsinger Date: Mon, 30 Jul 2018 01:26:52 -0700 Subject: [PATCH 26/32] Make small edits to strings and arrays guides --- strings_arrays/binary_search.md | 16 ++-- strings_arrays/sorting.md | 78 +++++++++-------- strings_arrays/sorting_colors.md | 36 ++++---- strings_arrays/strings_arrays.md | 139 ------------------------------- strings_arrays/two_pointer.md | 66 ++++++++------- 5 files changed, 100 insertions(+), 235 deletions(-) delete mode 100644 strings_arrays/strings_arrays.md diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md index 036889c..f1b64a9 100644 --- a/strings_arrays/binary_search.md +++ b/strings_arrays/binary_search.md @@ -1,10 +1,10 @@ -Binary search is a method for locating an element in a sorted list efficiently. Searching for an element can done naively in **O(N)** time, but binary search speeds it up to **O(log N)**. Binary search is a great tool to keep in mind for array problems. +Binary search is a technique for efficiently locating an element in a sorted list. Searching for an element can done naively in **O(n)** time by checking every element in the list, but binary search's optimization speeds it up to **O(log n)**. Binary search is a great tool to keep in mind for array problems. Algorithm ------------------ -In binary search, you are provided a list of sorted numbers and a key. The desired output is the index of the key, if it exists and None if it doesn't. +In binary search, you are provided a sorted list of numbers and a key. The desired output of a binary search is the index of the key in the sorted list, if the key is in the list, or ```None``` otherwise. -Binary search is a recursive algorithm. The high level approach is that we examine the middle element of the list. The value of the middle element determines whether to terminate the algorithm (found the key), recursively search the left half of the list, or recursively search the right half of the list. +Binary search is a recursive algorithm. From a high-level perspective, we examine the middle element of the list, which determines whether to terminate the algorithm (found the key), recursively search the left half of the list (middle element value > key), or recursively search the right half of the list (middle element value < key). ``` def binary_search(nums, key): if nums is empty: @@ -13,7 +13,7 @@ def binary_search(nums, key): return middle index if middle element is greater than key: binary search left half of nums - if middle element is less than + if middle element is less than binary search right half of nums ``` @@ -21,12 +21,12 @@ There are two canonical ways of implementing binary search: recursive and iterat ### Recursive Binary Search -The recursive solution utilizes a helper function to keep track of pointers to the section of the list we are currently examining. The search either completes when we find the key, or the two pointers meet. +The recursive approach utilizes a helper function to keep track of pointers to the section of the list we are currently examining. The search either terminates when we find the key or if the two pointers meet. ```python def binary_search(nums, key): return binary_search_helper(nums, key, 0, len(nums)) - + def binary_search_helper(nums, key, start_idx, end_idx): middle_idx = (start_idx + end_idx) // 2 if start_idx == end_idx: @@ -41,7 +41,7 @@ def binary_search_helper(nums, key, start_idx, end_idx): ### Iterative Binary Search -The iterative solution manually keeps track of the section of the list we are examining, using the two-pointer technique. The search either completes when we find the key, or the two pointers meet. +The iterative approach manually keeps track of the section of the list we are examining using the two-pointer technique. The search either terminates when we find the key, or the two pointers meet. ```python def binary_search(nums, key): left_idx, right_idx = 0, len(nums) @@ -58,7 +58,7 @@ def binary_search(nums, key): ## Runtime and Space Complexity -Binary search completes in **O(log N)** time because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers to locations in the list. Even the recursive solution has constant space with [tail call optimization](https://en.wikipedia.org/wiki/Tail_call). +Binary search has **O(log n)** time complexity because each iteration decreases the size of the list by a factor of 2. Its space complexity is constant because we only need to maintain two pointers. Even the recursive solution has constant space with [tail call optimization](https://en.wikipedia.org/wiki/Tail_call). ## Example problems * [Search insert position](https://leetcode.com/problems/search-insert-position/description/) diff --git a/strings_arrays/sorting.md b/strings_arrays/sorting.md index 500a4ad..a96f751 100644 --- a/strings_arrays/sorting.md +++ b/strings_arrays/sorting.md @@ -1,8 +1,8 @@ Sorting is a fundamental tool for tackling problems, and is often utilized to help simplify problems. -There are several different sorting algorithms, each with different tradeoffs. In this guide, we will cover several well-known sorting algorithms along with when they are useful. +There are several different sorting algorithms, each with different tradeoffs. In this guide, we will cover several well-known sorting algorithms along with when they are useful. -We will go into detail for merge sort and quick sort, but will describe the rest at a high level. +We will describe merge sort and quick sort in detail and the remainder of the featured sorting algorithms at a high level. ## Terminology Two commonly used terms in sorting are: @@ -11,11 +11,11 @@ Two commonly used terms in sorting are: 2. **stable sort**: retains the order of duplicate elements after the sort ([3, 2, 4, **2**] -> [2, **2**, 3, 4]) ## Merge sort -**Merge sort** is perhaps the simplest sort to implement and has very consistent behavior. It adopts a divide-and-conquer strategy: recursively sort each half of the list, and then perform an O(N) merging operation to create a fully sorted list. +**Merge sort** is perhaps the simplest sort to implement and has very consistent behavior. It adopts a divide-and-conquer strategy: recursively sort each half of the list, and then perform an O(n) merging operation to create a fully sorted list. ### Implementation -The key operation in merge sort is `merge`, which is a function that takes two sorted lists and returns a single list which is sorted. +The key operation in merge sort is `merge`, which is a function that takes two sorted lists and returns a single sorted list composed of elements of the combined lists. ```python def merge(list1, list2): if len(list1) == 0: @@ -31,7 +31,6 @@ This is a recursive implementation of `merge`, but an iterative implementation w Given this `merge` operation, writing merge sort is quite simple. - ```python def merge_sort(nums): if len(nums) <= 1: @@ -43,18 +42,17 @@ def merge_sort(nums): ``` ### Runtime - -Merge sort is a recursive, divide and conquer algorithm. It takes O(log N) recursive merge sorts and each merge is O(N) time, so we have a final runtime of O(N log N) for merge sort. Its behavior is consistent regardless of the input list (its worst case and best case take the same amount of time). +Merge sort is a recursive, divide and conquer algorithm. It takes O(log n) recursive merge sorts and each merge is O(n) time, so we have a final runtime of O(n log n) for merge sort. Its behavior is consistent regardless of the input list (its worst case and best case take the same amount of time). **Summary** -* Worst case: O(N log N) -* Best case: O(N log N) -* Stable: yes -* In-place: no + +| Worst case | Best case | Stable | In-place| +|:----------:|:---------:|:------:|:-------:| +| O(n log n) | O(n log n) | ✅ | ❌ | ## Quick sort -**Quick sort** is also a divide and conquer strategy, but uses a two-pointer swapping technique instead of `merge`. The core idea of quick sort is to select a "pivot" element in the list (typically the middle element), and swap elements in the list such that everything left of the pivot is less than it, and everything right of the pivot is greater. We call this operation `partition`. Quick sort is notable in its ability to sort efficiently in-place. +**Quick sort** is also a divide and conquer strategy, but uses a two-pointer swapping technique instead of `merge`. The core idea of quick sort is selecting a "pivot" element in the list (typically the middle element), and swapping elements in the list such that everything left of the pivot is less than it, and everything right of the pivot is greater. We call this operation `partition`. Quick sort is notable for its ability to sort efficiently in-place. ```python def partition(nums, left_idx, right_idx): @@ -70,7 +68,7 @@ def partition(nums, left_idx, right_idx): left_idx += 1 right_idx -= 1 ``` -The partition function modifies `nums` inplace and takes up no extra memory. It also takes O(N) time in the worst case to fully partition a list. +The partition function modifies `nums` in-place and requires no extra memory. It also takes O(n) time worst case to fully partition a list. ```python def quick_sort_helper(nums, left_idx, right_idx): @@ -88,56 +86,62 @@ def quick_sort(nums): ### Runtime -The best case performance of quick sort is O(N log N), but depending on the structure of the list, quick sort's performance can vary. +The best case performance of quick sort is O(n log n), but depending on the structure of the list, quick sort's performance can vary. -If the pivot happens to be the median of the list, then the list will be divided in half after the partition. +If the pivot happens to be the median of the list, then the list will be divided in half after the partition. In the worst case, however, the list will be divided into an N - 1 length list and an empty list. Thus, in the worst possible case, quick sort has O(N2) performance, since we'll have to recursively quicksort (N - 1), (N - 2), ... many lists. However, on average and in practice, quick sort is still very fast due to how fast swapping array elements is. The space complexity for this version of quick sort os O(log N), due to the number of call stacks created during recursion, but an iterative version can make space complexity O(1). **Summary** -* Worst case: O(N2) -* Best case: O(N log N) -* Stable: no -* In-place: yes + +| Worst case | Best case | Stable | In-place| +|:----------:|:---------:|:------:|:-------:| +| O(n2) | O(n log n)| ❌ | ✅ | ## Insertion sort In **insertion sort**, we incrementally build a sorted list from the unsorted list. We take elements from the unsorted list and insert them into the sorted list, making sure to maintain the order. -This algorithm takes O(N2) worst time, because looping through the unsorted list takes O(N) and finding the proper place to insert can take O(N) time in the worst case. However, if the list is already sorted, insertion sort takes O(N) time, since insertion time will be O(1). Insertion sort can be done in-place, so it takes up O(1) space. +This algorithm takes O(n2) worst time, because looping through the unsorted list takes O(n) and finding the proper place to insert can take O(n) time in the worst case. However, if the list is already sorted, insertion sort takes O(n) time, since insertion time will be O(1). Insertion sort can be done in-place, so it takes up O(1) space. -Insertion sort is easier on linked lists, which have O(1) insertion whereas arrays have O(N) insertion because in an array, inserting an element requires shifting all the elements behind that element. +Insertion sort is easier on linked lists, which have O(1) insertion whereas arrays have O(n) insertion because in an array, inserting an element requires shifting all the elements behind that element. **Summary** -* Worst case: O(N^2^) -* Best case: O(N) -* Stable: yes -* In-place: yes + +| Worst case | Best case | Stable | In-place| +|:----------:|:---------:|:------:|:-------:| +| O(n2) | O(n)| ✅ | ✅ | ## Selection sort **Selection sort** incrementally builds a sorted list by finding the minimum value in the rest of the list, and swapping it to be in the front. -It takes O(N2) time in general, because we have to loop through the unsorted list which is O(N) and in each iteration, we search the rest of the list which always takes O(N). Selection sort can be done in-place, so it takes up O(1) space. +It takes O(n2) time in general, because we have to loop through the unsorted list which is O(n) and in each iteration, we search the rest of the list which always takes O(n). Selection sort can be done in-place, so it takes up O(1) space. -**Summary** -* Worst case: O(N2) -* Best case: O(N2) -* Stable: no -* In-place: yes +| Worst case | Best case | Stable | In-place| +|:----------:|:---------:|:------:|:-------:| +| O(n2) | O(N2)| ❌ | ✅ | ## Radix sort **Radix sort** is a situational sorting algorithm when you know that the numbers you are sorting are bounded in some way. It operates by grouping numbers in the list by digit, looping through the digits in some order. -For example, if we had the list [100, 10, 1], radix sort would put 100 in the group which had 1 in the 100s digit place and would put (10, 1) in a group which had 0 in the 100s digit place. It would then sort by the 10s digit place, and finally the 1s digit place. +For example, if we had the list ```[100, 10, 1]```, radix sort would put 100 in the group which had 1 in the 100s digit place and would put (10, 1) in a group which had 0 in the 100s digit place. It would then sort by the 10s digit place, and finally the 1s digit place. Radix sort thus needs one pass for each digit place it is sorting and takes O(KN) time, where K is the number of passes necessary to cover all digits. -**Summary** -* Worst case: O(KN) -* Best case: O(KN) -* Stable: yes (if going through digits from right to left) -* In-place: no +| Worst case | Best case | Stable | In-place| +|:----------:|:---------:|:------:|:-------:| +| O(kn) | O(kn)| ✅ (if going through digits from right to left) | ❌ | + +## Summary + +|Sort | Worst case | Best case | Stable | In-place| +|:-:||:----------:|:---------:|:------:|:-------:| +|Merge sort | O(n log n) | O(n log n) | ✅ | ❌ | +|Quick sort | O(n2) | O(n log n)| ❌ | ✅ | +| Insertion sort | O(n2) | O(n)| ✅ | ✅ | +|Selection sort | O(n2) | O(N2)| ❌ | ✅ | +|Radix sort| O(kn) | O(kn)| ✅ (if going through digits from right to left) | ❌ | diff --git a/strings_arrays/sorting_colors.md b/strings_arrays/sorting_colors.md index 3fa6156..f47b0c2 100644 --- a/strings_arrays/sorting_colors.md +++ b/strings_arrays/sorting_colors.md @@ -12,18 +12,17 @@ Example: ``` ## Approach #1: Merge or quick sort +### Approach +The problem is asking us to sort a list of integers, so we can use an algorithm like merge sort or quick sort. -**Approach** -The problem is asking us to sort a list of integers, so we could potentially use an algorithm like merge sort or quick sort. - -**Time and space complexity** -With a sorting algorithm such as is O(N log N) in the worst case. The space complexity is O(1) since we sort in place. +### Time and space complexity +Both of these sorting algorithms have O(n log n) worst case time complexity and, because we sort in-place, O(1) space complexity. ## Approach #2: Counting sort -**Approach** -We know that the numbers we are sorting are 0, 1, or 2. This leads to an efficient counting sort implementation, since we can just count the numbers of each and modify the list in place to match the counts in sorted order. +### Approach +We know that the numbers we are sorting are 0, 1, or 2. This means we can sort more efficiently by simply counting the numbers of times each of the three values occurs and modifying the list in-place to match the counts in sorted order. -**Implementation** +### Implementation ```python from collections import defaultdict def sort_colors(colors): @@ -42,41 +41,40 @@ def sort_colors(colors): idx += 1 ``` -**Time and space complexity** -This solution has complexity O(N), since we loop through the list once, then loop through the dictionary to modify our list, both of which take N time. This solution takes up O(1) space, since everything is done in place and the counts dictionary has a constant size. +### Time and space complexity +This solution has complexity O(n), since we loop through the list once, then loop through the entire dictionary to modify our list. This solution takes up O(1) space, since everything is done in place and the dictionary has a constant size. ## Approach #3: Three-way partition This approach uses multiple pointers. Reading the [two pointer guide](https://guides.codepath.com/compsci/Two-pointer) may be helpful. -**Approach** -Although we cannot asymptotically do better than O(N) since we need to pass through the list at least once, we can limit our code to only making one pass. This will be slightly faster than approach #2. +### Approach +Although we cannot asymptotically do better than O(n), since we need to pass through the list at least once, we can limit our code to only making one pass. This will be slightly faster than approach #2. -We can accomplish this by seeing that sorting an array with three distinct elements is equivalent to a `partition` operation. Recall that in quick sort, we partition an array to put all elements less than a pivot to the left and greater than to a right. Since we only have three potential values in our list, partitioning using the middle value as a pivot will effectively sort the list. +We can accomplish this by recognizing that sorting an array with three distinct elements is equivalent to a partition operation. Recall that in quick sort, we partition an array to put all elements with values less than a pivot on the left and elements with values greater than a pivot to a right. Since we only have three potential values in our list, partitioning using the middle value as a pivot will effectively sort the list. This particular type of partition is a bit tricky though because we're partitioning on the middle element (the 1's) of our list. It's called a three-way partition, since we are also grouping together elements that are equal in the middle (the 1's). -**Implementation** - +### Implementation ```python def sort_colors(colors): left, middle, right = 0, 0, len(colors) - 1 while middle <= right: if colors[middle] == 0: - colors[middle], colors[left] = colors[left], colors[middle] + colors[middle], colors[left] = colors[left], colors[middle] left += 1 middle += 1 elif colors[middle] == 1: middle += 1 elif colors[middle] == 2: - colors[middle], colors[right] = colors[right], colors[middle] + colors[middle], colors[right] = colors[right], colors[middle] right -= 1 middle += 1 ``` -**Time and space complexity** -This solution has also has complexity O(N), but only takes one pass since it uses two pointers that stop moving when one moves past the other. +### Time and space complexity +This solution has also has time complexity O(n), but only takes one pass since it uses two pointers that stop moving when one moves past the other. It is slightly faster than the counting sort and is O(1) space, since it is in-place. diff --git a/strings_arrays/strings_arrays.md b/strings_arrays/strings_arrays.md deleted file mode 100644 index 5713344..0000000 --- a/strings_arrays/strings_arrays.md +++ /dev/null @@ -1,139 +0,0 @@ -The **two pointer method** is a helpful technique to always keep in mind when working with strings and arrays questions. It's a clever optimization that can help reduce time complexity with no added space complexity (a win-win!) by utilizing extra pointers to avoid repetitive operations. - -This approach is best demonstrated through a walkthrough, as done below. - -## Problem: Minimum size subarray sum - -Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead. - -**Example:** -```python ->>> min_sub_array_length([2,3,1,2,4,3], 7) -2 -``` - -Explanation: the subarray [4,3] has the minimal length under the problem constraint. - -## Solution #1: Brute Force -**Approach** - -When first given a problem, if an optimal solution is not immediately clear, it's better to have a solution that works rather than to be stuck. With this problem, a brute force solution would be to generate all possible subarrays and find the length of the shortest subarray that sums up to a sum that is greater than or equal to the given number. - -**Implementation** -```python -def min_sub_array_length(nums, sum): - min_length = float("inf") - for start_idx in range(len(nums)): - for end_idx in range(start_idx, len(nums)): - subarray_sum = get_sum(nums, start_idx, end_idx) - if subarray_sum >= sum: - min_length = min(min_length, end_idx - start_idx + 1) - return min_length if min_length != float("inf") else 0 - -def get_sum(nums, start_index, end_index): - result = 0 - for i in range(start_index, end_index + 1): - result += nums[i] - return result -``` - -**Time and space complexity** - -The time complexity of this solution would be O(N3). The double for loop results in O(N2) calls to get_sum and each call to get_sum has a worst case run time of O(N), which results in a O(N2 * N) = **O(N3) runtime**. - -The space complexity would be **O(1)** because the solution doesn't create new data structures. - -## Improvements -#### Optimization #1: Keep track of a running sum instead of running `get_sum` in each iteration of the inner `end_idx` for loop -In the brute solution, a lot of repetitive calculations are done in the inner `end_idx` for loop with the `get_sum` function. Instead of having to recalculate the sum from elements `start_idx` to `end_idx` within every iteration of the `end_idx` loop, we can store a `subarray_sum` variable to store calculations from previous iterations and simply add to it within each iteration of the `end_idx` loop. - -```python -def min_sub_array_length(nums, sum): - min_length = float("inf") - for start_idx in range(len(nums)): - subarray_sum = 0 - for end_idx in range(start_idx, len(nums)): - subarray_sum += nums[end_idx] - if subarray_sum >= sum: - min_length = min(min_length, end_idx - start_idx + 1) - return min_length if min_length != float("inf") else 0 -``` - -This optimization reduces the time complexity from O(N3) to O(N2) with the addition of a variable to store the accumulating sum. - - -#### Optimization #2: Reduce number of calculations by terminating the inner `end_idx` for loop early -With the improved solution, we can further reduce the number of iterations in the inner for loop by terminating it early. Once we have a `subarray_sum` that is equal to or greater than the target sum, we can simply move to the next iteration of the outer for loop. This is because the questions asks for minimum length subarray and any further iterations of the inner for loop would only cause an increase in the subarray length. - -```python -def min_sub_array_length(nums, sum): - min_length = float("inf") - for start_idx in range(len(nums)): - subarray_sum = 0 - for end_idx in range(start_idx, len(nums)): - subarray_sum += nums[end_idx] - if subarray_sum >= sum: - min_length = min(min_length, end_idx - start_idx + 1) - continue - return min_length if min_length != float("inf") else 0 -``` - -This is a minor time complexity improvement and this solution will still have a worst case runtime of O(N2). The improvement is nice, but to reduce the runtime from O(N2) to O(N), we would need to somehow eliminate the inner for loop. - - -## Solution #2: Two pointer approach -**Approach** -The optimal, two pointer approach to this problem utilizing the observations we made in the previous section. The main idea of this approach is that we grow and shrink an interval as we loop through the list while keeping a running sum that we update as we alter the interval. - -There will be two pointers, one to track the start of the interval and the other to track the end. They will both start at the beginning of the list and will dynamically move to the right until we hit the end of the list. - -First, we grow the interval to the right until it exceeds the minimum sum. Once we find that interval, we move the start pointer right as much as we can to shrink the interval until it sums up to a number that is smaller than the sum. - -Then, we move the end pointer to once again to try and hit the sum with new intervals. If growing the interval by moving the end pointer leads to an interval that sums up to at least the target sum, we need to repeat the process of trying to shrink the interval again by moving the start pointer before further moving the end pointer. - -As we utilize these two pointers to determine which intervals to evaluate, we have a variable to keep track of the current sum of the interval as we go along to avoid recalculating it every time one of the pointers moves to the right and another variable to store the length of the shortest interval that sums up to >= the target sum. - -This push and pull of the end and start pointer will continue until we finish looping through the list. - - -**Implementation** -```python -def min_sub_array_length(nums, sum): - start_idx = 0 - min_length, subarray_sum = float('inf'), 0 - - for end_idx in range(len(nums)): - subarray_sum += nums[end_idx] - while subarray_sum >= sum: - min_length = min(min_length, end_idx - start_idx + 1) - subarray_sum -= nums[start_idx] - start_idx += 1 - if min_length == float('inf'): - return 0 - return min_length -``` - -**Time and space complexity** - -The time complexity of this solution would be **O(N)** because each element is at most visited twice. In the worst case scenario, all elements will be visited once by the start pointer and another time by the end pointer. - -The space complexity would be **O(1)** because the solution doesn't create new data structures. - -**Walkthrough** - -Take the example of `min_sub_array_length([2,3,1,2,4,3], 7)`. The left pointer starts at 0 and the right doesn't exist yet. - -As we start looping through the list, our first interval is [2]. We won't fulfill the while loop condition until the list reaches [2, 3, 1, 2] whose sum, 8 is >= 7. We then set the `min_length` to 4. - -Now, we shrink the interval to [3, 1, 2] by increasing `start_idx` by 1. This new interval sums up to less than the target sum, 7 so we need to grow the interval. In the next iteration, we grow the interval to [3, 1, 2, 4], which has a sum of 10 and once again, we satisfy the while loop condition. - -We then shrink the interval to [1, 2, 4]. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 3. - -We now move the `end_idx` pointer and it hits the end of the list, with interval [2, 4, 3]. Then shrink the interval to [4, 3], which sums up to 7, the target sum. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 2. This is the final result that is returned. - -## Takeaways - -This optimization can often be applied to improve solutions that involve the use of multiple for loops, as shown in the example above. If you have an approach that utilizes multiple for loops, analyze the actions within those for loops to determine if repetitive calculations can be removed through strategic movements of multiple pointers. - -**Note**: Though this walkthrough demonstrated applying the two pointer approach to an arrays problem, this approach is commonly utilized to solve string problems as well. - diff --git a/strings_arrays/two_pointer.md b/strings_arrays/two_pointer.md index 19fb340..5c1db68 100644 --- a/strings_arrays/two_pointer.md +++ b/strings_arrays/two_pointer.md @@ -1,6 +1,6 @@ -The **two pointer method** is a helpful technique to always keep in mind when working with strings and arrays questions. It's a clever optimization that can help reduce time complexity with no added space complexity (a win-win!) by utilizing extra pointers to avoid repetitive operations. +The **two pointer method** is a helpful technique to keep in mind when working with strings and arrays. It's a clever optimization that can help reduce time complexity with no added space complexity (a win-win!) by utilizing extra pointers to avoid repetitive operations. -This approach is best demonstrated through a walkthrough, as done below. +This approach is best demonstrated through a walkthrough, as done below. ## Problem: Minimum size subarray sum @@ -15,12 +15,12 @@ Given an array of n positive integers and a positive integer s, find the minimal Explanation: the subarray [4,3] has the minimal length under the problem constraint. ## Solution #1: Brute Force -**Approach** +### Approach -When first given a problem, if an optimal solution is not immediately clear, it's better to have a solution that works rather than to be stuck. With this problem, a brute force solution would be to generate all possible subarrays and find the length of the shortest subarray that sums up to a sum that is greater than or equal to the given number. +When first given a problem, if an optimal solution is not immediately clear, it's better to have any solution that works than be stuck. With this problem, a brute force solution would be to generate all possible subarrays and find the length of the shortest subarray that sums up to a sum that is greater than or equal to the given number. -**Implementation** -```python= +### Implementation +```python def min_sub_array_length(nums, sum): min_length = float("inf") for start_idx in range(len(nums)): @@ -37,17 +37,19 @@ def get_sum(nums, start_index, end_index): return result ``` -**Time and space complexity** +### Time and space complexity -The time complexity of this solution would be O(N^3^). The double for loop results in O(N^2^) calls to get_sum and each call to get_sum has a worst case run time of O(N), which results in a O(N^2^ * N) = **O(N^3^) runtime**. +The time complexity of this solution would be O(n3). The double for loop results in O(n2) calls to get_sum and each call to get_sum has a worst case run time of O(n), which results in a O(n2 * n) = **O(n3) runtime**. The space complexity would be **O(1)** because the solution doesn't create new data structures. ## Improvements -#### Optimization #1: Keep track of a running sum instead of running `get_sum` in each iteration of the inner `end_idx` for loop -In the brute solution, a lot of repetitive calculations are done in the inner `end_idx` for loop with the `get_sum` function. Instead of having to recalculate the sum from elements `start_idx` to `end_idx` within every iteration of the `end_idx` loop, we can store a `subarray_sum` variable to store calculations from previous iterations and simply add to it within each iteration of the `end_idx` loop. +#### Optimization #1: +**Keep track of a running sum instead of running `get_sum` in each iteration of the inner `end_idx` for loop** + +In the brute solution, a lot of repetitive calculations are done in the inner `end_idx` for loop with the `get_sum` function. Instead of recalculating the sum from elements `start_idx` to `end_idx` in every iteration of the `end_idx` loop, we can store a `subarray_sum` variable to save calculations from previous iterations and simply add to it in each iteration of the `end_idx` loop. -```python= +```python def min_sub_array_length(nums, sum): min_length = float("inf") for start_idx in range(len(nums)): @@ -62,10 +64,12 @@ def min_sub_array_length(nums, sum): This optimization reduces the time complexity from O(N3) to O(N2) with the addition of a variable to store the accumulating sum. -#### Optimization #2: Reduce number of calculations by terminating the inner `end_idx` for loop early +#### Optimization #2: +**Reduce number of calculations by terminating the inner `end_idx` for loop early** + With the improved solution, we can further reduce the number of iterations in the inner for loop by terminating it early. Once we have a `subarray_sum` that is equal to or greater than the target sum, we can simply move to the next iteration of the outer for loop. This is because the questions asks for minimum length subarray and any further iterations of the inner for loop would only cause an increase in the subarray length. -```python= +```python def min_sub_array_length(nums, sum): min_length = float("inf") for start_idx in range(len(nums)): @@ -78,26 +82,26 @@ def min_sub_array_length(nums, sum): return min_length if min_length != float("inf") else 0 ``` -This is a minor time complexity improvement and this solution will still have a worst case runtime of O(N2). The improvement is nice, but to reduce the runtime from O(N2) to O(N), we would need to somehow eliminate the inner for loop. +This is a minor time complexity improvement and this solution will still have a worst case runtime of O(n2). The improvement is nice, but to reduce the runtime from O(n2) to O(n), we would need to somehow eliminate the inner for loop. ## Solution #2: Two pointer approach -**Approach** -The optimal, two pointer approach to this problem utilizing the observations we made in the previous section. The main idea of this approach is that we grow and shrink an interval as we loop through the list while keeping a running sum that we update as we alter the interval. +### Approach: -There will be two pointers, one to track the start of the interval and the other to track the end. They will both start at the beginning of the list and will dynamically move to the right until we hit the end of the list. +The optimal, two pointer approach to this problem utilizing the observations we made in the previous section. The main idea of this approach is that we grow and shrink an interval as we loop through the list, while keeping a running sum that we update as we alter the interval. -First, we grow the interval to the right until it exceeds the minimum sum. Once we find that interval, we move the start pointer right as much as we can to shrink the interval until it sums up to a number that is smaller than the sum. +There will be two pointers, one to track the start of the interval and the other to track the end. They will both start at the beginning of the list and move dynamically to the right until they hit the end of the list. + +First, we grow the interval to the right until it exceeds the minimum sum. Once we find that interval, we move the start pointer right as much as we can to shrink the interval until it sums to a number that is smaller than the target sum. Then, we move the end pointer to once again to try and hit the sum with new intervals. If growing the interval by moving the end pointer leads to an interval that sums up to at least the target sum, we need to repeat the process of trying to shrink the interval again by moving the start pointer before further moving the end pointer. -As we utilize these two pointers to determine which intervals to evaluate, we have a variable to keep track of the current sum of the interval as we go along to avoid recalculating it every time one of the pointers moves to the right and another variable to store the length of the shortest interval that sums up to >= the target sum. +As we utilize these two pointers to determine which intervals to evaluate, we have a variable to keep track of the current sum of the interval as we go along to avoid recalculating it every time one of the pointers moves to the right, and another variable to store the length of the shortest interval that sums up to >= the target sum. This push and pull of the end and start pointer will continue until we finish looping through the list. - -**Implementation** -```python= +### Implementation +```python def min_sub_array_length(nums, sum): start_idx = 0 min_length, subarray_sum = float('inf'), 0 @@ -113,26 +117,24 @@ def min_sub_array_length(nums, sum): return min_length ``` -**Time and space complexity** - -The time complexity of this solution would be **O(N)** because each element is at most visited twice. In the worst case scenario, all elements will be visited once by the start pointer and another time by the end pointer. +### Time and space complexity +The time complexity of this solution is **O(n)** because each element is visited at most twice. In the worst case scenario, all elements will be visited once by the start pointer and another time by the end pointer. The space complexity would be **O(1)** because the solution doesn't create new data structures. -**Walkthrough** - +### Walkthrough Take the example of `min_sub_array_length([2,3,1,2,4,3], 7)`. The left pointer starts at 0 and the right doesn't exist yet. -As we start looping through the list, our first interval is [2]. We won't fulfill the while loop condition until the list reaches [2, 3, 1, 2] whose sum, 8 is >= 7. We then set the `min_length` to 4. +As we start looping through the list, our first interval is [2]. We won't fulfill the while loop condition until the list reaches [2, 3, 1, 2] whose sum, 8 is >= 7. We then set the `min_length` to 4. -Now, we shrink the interval to [3, 1, 2] by increasing `start_idx` by 1. This new interval sums up to less than the target sum, 7 so we need to grow the interval. In the next iteration, we grow the interval to [3, 1, 2, 4], which has a sum of 10 and once again, we satisfy the while loop condition. +Now, we shrink the interval to [3, 1, 2] by increasing `start_idx` by 1. This new interval sums up to less than the target sum, 7 so we need to grow the interval. In the next iteration, we grow the interval to [3, 1, 2, 4], which has a sum of 10 and once again, we satisfy the while loop condition. -We then shrink the interval to [1, 2, 4]. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 3. +We then shrink the interval to [1, 2, 4]. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 3. We now move the `end_idx` pointer and it hits the end of the list, with interval [2, 4, 3]. Then shrink the interval to [4, 3], which sums up to 7, the target sum. This is the shortest interval we've come across that sums up to at least the target sum, so we update the `min_length` to 2. This is the final result that is returned. ## Takeaways -This optimization can often be applied to improve solutions that involve the use of multiple for loops, as shown in the example above. If you have an approach that utilizes multiple for loops, analyze the actions within those for loops to determine if repetitive calculations can be removed through strategic movements of multiple pointers. +This optimization can often be applied to improve solutions that involve the use of multiple for loops, as demonstrated in the example above. If you have an approach that utilizes multiple for loops, analyze the actions performed in those for loops to determine if repetitive calculations can be removed through strategic movements of multiple pointers. -**Note**: Though this walkthrough demonstrated applying the two pointer approach to an arrays problem, this approach is commonly utilized to solve string problems as well. +**Note:** Though this walkthrough demonstrated applying the two pointer approach to an arrays problem, this approach is commonly utilized to solve string problems as well. From 3766dc73967110fadca0e9190a6675bf683934e0 Mon Sep 17 00:00:00 2001 From: bzsinger Date: Mon, 30 Jul 2018 01:29:11 -0700 Subject: [PATCH 27/32] Re-add Strings and Arrays guide --- strings_arrays/strings_arrays.md | 38 ++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 strings_arrays/strings_arrays.md diff --git a/strings_arrays/strings_arrays.md b/strings_arrays/strings_arrays.md new file mode 100644 index 0000000..3cf5d07 --- /dev/null +++ b/strings_arrays/strings_arrays.md @@ -0,0 +1,38 @@ +## Arrays +An **array** is a data structure that holds a fixed number of objects. Because arrays have fixed sizes, they are highly efficient for quick lookups regardless of how their size. However, there is a tradeoff with this fast access time: any insertion or deletion from the middle of the array requires moving the rest of the elements to fill in or close the gap. To optimize time efficiency, try to add and delete mostly from the end of the array. + +Arrays commonly come up in interviews, so it's important to review the array library for the language you code in. + +**Tips:** +* Off-by-one errors can happen often with arrays, so be wary of potentially over-indexing as it will throw an error +* Try to add elements to the back of an array instead of the front, as adding to the front requires shifting every element back +* In Java, arrays are a fixed size so consider utilizing an [ArrayList](https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html) instead if you need to dynamically alter the size of the array. + +## Strings +**Strings** are a special kind of array – one that only contains characters. They commonly come up in interview questions, so it's important to go through the string library for the language you're most comfortable with. You should know common operations such as: getting the length, getting a substring, splitting a string based on a delimiter, etc. + +It's important to note that whenever you mutate a string, a new copy of the string is created. There are different ways to reduce the space utilized depending on the language: +* In Python, you can represent a string as a list of characters and operate on the list of character instead. +* In Java, you can utilize the [StringBuffer](https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html) class to mitigate the amount of space utilized if you need to mutate a string. + +## Patterns List +* [Two pointer](https://guides.codepath.com/compsci/Two-pointer) +* [Binary Search](https://guides.codepath.com/compsci/Binary-Search) + +### Strings +#### General guide +* [Coding for Interviews Strings Guide](http://blog.codingforinterviews.com/string-questions/) + +#### Strings in C++ + * [Character Arrays in C++](https://www.youtube.com/watch?v=Bf8a6IC1dE8) + * [Character Arrays in C++ Part 2](https://www.youtube.com/watch?v=vFZTxvUoZSU) + +### Arrays +#### General guide + * [InterviewCake Arrays](https://www.interviewcake.com/concept/java/array) + +#### Python arrays +* [Google developer lists guide](https://developers.google.com/edu/python/lists) +#### Java arrays + * [InterviewCake DynamicArray](https://www.interviewcake.com/concept/java/dynamic-array-amortized-analysis?) + * [ArrayList Succinctly Guide](https://code.tutsplus.com/tutorials/the-array-list--cms-20661) From bae5cc8e7dfae01a396001e6c6ed096fb1a16d1d Mon Sep 17 00:00:00 2001 From: Sneha Patil Date: Sat, 10 Oct 2020 23:59:18 -0700 Subject: [PATCH 28/32] Update top_sort.md Each node in the graph was being traversed irrespective of it being visited already in the previous traversals. Fixed that bug with the if condition in top_sort method's for loop. --- graphs/top_sort.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphs/top_sort.md b/graphs/top_sort.md index e4617d6..3f9807b 100644 --- a/graphs/top_sort.md +++ b/graphs/top_sort.md @@ -23,7 +23,7 @@ def top_sort(graph): return list(sorted_nodes) -def dfs(graph, start_node, visited, sorted\_nodes): +def dfs(graph, start_node, visited, sorted_nodes): visited.add(start_node) if start_node in graph: neighbors = graph[start_node] From 660fc7ca9e3e1cb9588323660edfcb590ec33281 Mon Sep 17 00:00:00 2001 From: Linda Zhou Date: Fri, 14 Oct 2022 20:47:22 -0500 Subject: [PATCH 29/32] add link to sample BFS question --- graphs/graph_traversals.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/graphs/graph_traversals.md b/graphs/graph_traversals.md index 7e4b2c1..a959041 100644 --- a/graphs/graph_traversals.md +++ b/graphs/graph_traversals.md @@ -73,6 +73,8 @@ def breadth_first_search(graph, start): **Example interview question using BFS:** +* [Clone an undirected graph](https://www.geeksforgeeks.org/clone-an-undirected-graph/) + **Runtime**: O(V + E) From b6f3cd4c53a22dfd35a97ac37d3ee61753275d99 Mon Sep 17 00:00:00 2001 From: Linda Zhou Date: Fri, 14 Oct 2022 20:49:10 -0500 Subject: [PATCH 30/32] update markdown title --- graphs/{top_sort.md => topological_sort.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename graphs/{top_sort.md => topological_sort.md} (97%) diff --git a/graphs/top_sort.md b/graphs/topological_sort.md similarity index 97% rename from graphs/top_sort.md rename to graphs/topological_sort.md index 3f9807b..3fdf8b4 100644 --- a/graphs/top_sort.md +++ b/graphs/topological_sort.md @@ -1,4 +1,4 @@ -## Introduction +## Introduction to Topological Sorting Aside from DFS and BFS, the most common graph concept that interviews will test is topological sorting. Topological sorting produces a linear ordering of nodes in a directed graph such that the direction of edges is respected. A **topological sort** is an ordering of nodes for a directed acyclic graph (DAG) such that for every directed edge _uv_ from vertex _u_ to vertex _v_, _u_ comes before _v_ in the ordering. From 821db84df7366e1bec3fc7b84ee974ac01acf938 Mon Sep 17 00:00:00 2001 From: Linda Zhou Date: Fri, 14 Oct 2022 20:51:29 -0500 Subject: [PATCH 31/32] remove indecipherable symbol --- hash_tables/hash_tables.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hash_tables/hash_tables.md b/hash_tables/hash_tables.md index 33657cc..9bb3629 100644 --- a/hash_tables/hash_tables.md +++ b/hash_tables/hash_tables.md @@ -11,7 +11,8 @@ address_book.get("Bob") '111-222-3333' ``` -Hash tables are very efficient â“ their insertion, deletion, and get operations take, on average, constant time. +Hash tables are very efficient. Operations such as insertion, deletion, and get take, on average, constant time. + ## How it works: ### Hash Codes Internally,a hash table stores its values in an array. A special **hash function** is utilized to convert each key into a code, which is then converted into an index into the underlying array. This hash function has a hard requirement to return the same hash code for equal keys. From a5ec6d8bc0871b59b6a440290e60cd80ea56b3c6 Mon Sep 17 00:00:00 2001 From: Linda Zhou Date: Fri, 14 Oct 2022 20:53:04 -0500 Subject: [PATCH 32/32] add introduction header --- strings_arrays/binary_search.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/strings_arrays/binary_search.md b/strings_arrays/binary_search.md index f1b64a9..840fa48 100644 --- a/strings_arrays/binary_search.md +++ b/strings_arrays/binary_search.md @@ -1,3 +1,5 @@ +### Introduction + Binary search is a technique for efficiently locating an element in a sorted list. Searching for an element can done naively in **O(n)** time by checking every element in the list, but binary search's optimization speeds it up to **O(log n)**. Binary search is a great tool to keep in mind for array problems. Algorithm