From 4ba6fe0de1461f2cb75e775f08c855b6d8d93cb5 Mon Sep 17 00:00:00 2001 From: Adrian Mejia Date: Mon, 19 Oct 2020 11:18:24 -0400 Subject: [PATCH] chore(book/array): improve exercises --- book/config | 2 +- book/content/part02/array.asc | 54 +++++++++++++++++---- book/images/max-sum-sliding-window-red.png | Bin 0 -> 41546 bytes 3 files changed, 46 insertions(+), 10 deletions(-) create mode 100644 book/images/max-sum-sliding-window-red.png diff --git a/book/config b/book/config index c95ecf80..95b431fb 160000 --- a/book/config +++ b/book/config @@ -1 +1 @@ -Subproject commit c95ecf80705c3c41e570c095574fa4c4affee732 +Subproject commit 95b431fb37af4b23a7ce17c183da7313f1d1acb4 diff --git a/book/content/part02/array.asc b/book/content/part02/array.asc index 8461f453..8050c390 100644 --- a/book/content/part02/array.asc +++ b/book/content/part02/array.asc @@ -300,12 +300,29 @@ To sum up, the time complexity of an array is: Many programming problems involve manipulating arrays. Here are some patterns that can help you improve your problem-solving skills. +(((Patterns, Two Pointers))) + ===== Two Pointers Pattern Usually, we use one pointer to navigate each element in an array. However, there are times when having two pointers (left/right, low/high) comes in handy. Let's do some examples. *AR-A*) _Given a sorted `array` of integers, find two numbers that add up to a `target` and return their values._ +.Function Signature +[source, javascript] +---- +/** + * Find two numbers that add up target. + * @param arr - The array of integers + * @param target - The target + * @returns {number[]} - array with the values that add up to target. + */ +function twoSum(arr, target) { + // give it a try on your own ... +} +---- + + .Examples [source, javascript] ---- @@ -335,7 +352,7 @@ We can use two pointers: one pointer starting from the left side and the other f Depending on whether the sum is bigger or smaller than the target, we move right or left. If the sum is equal to the target, we return the current left and right pointer's values. -.Solution 1: Two Pointers +.Solution 2: Two Pointers [source, javascript] ---- function twoSum(arr, target) { @@ -354,12 +371,30 @@ These two pointers have a runtime of `O(n)`. WARNING: This technique only works for sorted arrays. If the array was not sorted, you would have to sort it first or choose another approach. -===== Sliding Windows Pattern +(((Patterns, Sliding Window Pointers))) + +===== Sliding Window Pattern The sliding window pattern is similar to the two pointers. The difference is that the distance between the left and right pointer is always the same. Also, the numbers don't need to be sorted. Let's do an example! *AR-B*) _Find the max sum of an array of integers, only taking `k` items from the right and left side sequentially._ -_*Constraints*: `k` won't exceed the number of elements `n`: `1 <= k <= n`._ +**Constraints**: `k` won't exceed the number of elements in the array: `1 <= k <= n`. + +.Function Signature +[source, javascript] +---- +/** + * Find the max sum of an array of integers, + * only taking `k` items from the right and left side. + * + * @param {number[]} arr - The array of integers + * @param {number} k - The number of elements to sum up. + * @returns {number} + */ +function maxSum(arr, k) { + // Give it a try +}; +---- .Examples [source, javascript] @@ -370,23 +405,23 @@ maxSum([3, 10, 12, 4, 7, 2, 100, 1], 3); // 104 // (3 + 1 + 100 = 104) maxSum([1,200,1], 1); // 6 // (1 + 2 + 3 = 6) ---- -Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k=3` as an example. - There are multiple ways to solve this problem. Before applying the sliding window, let's consider this other algorithm: *Backtracking algorithm* +Let's take `[3, 10, 12, 4, 7, 2, 100, 1], k = 3` as an example. + - We have two initial choices: going left with `3` or right with `1`. - We can take the first element from the left side `3`; from there, we can keep going left with `10` or right `1`. - If we go right with `1` on the right side, next, we have two options from the right side `100` or `10`. - If we go with `100`, then we compute the sum `3 + 1 + 100 = 104`. - Repeat with other combinations and keep track of the max sum. -How many combinations can we form? 2^k, since in the worst-case k is n, then we have a runtime of `2^n`! +How many combinations can we form? `2^k`, since in the worst-case `k` is equal to `n`, then we have a runtime of `O(2^n)`! // image::max-sum-backtracking.png[max sum with backtracking] -We can also visualize all the options as follows. If you add up the numbers from the top to bottom, you get the result for all combinations: +We can also visualize all the options as follows. If you add up the numbers from top to bottom, you get the result for all combinations: [graphviz, max-sum-sliding-window-red, png] .... @@ -438,7 +473,7 @@ graph G { .... -Notice that many elements on the middle branches (in red color) have the same numbers but in a different order, so the sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. +Notice that many middle branches (in red color) have the same numbers, but in a different order, so their sums oscillate between 104 and 14. That's why this algorithm is not very optimal for this problem. *Sliding window algorithm* @@ -450,6 +485,7 @@ image::max-sum-sliding-window.png[sliding window for arrays] Here's the implementation: +.Solution: using sliding window pointers [source, javascript] ---- function maxSum(arr, k) { @@ -470,7 +506,7 @@ function maxSum(arr, k) { The difference between the two pointers pattern and the sliding windows, it's that we move both pointers at the same time to keep the length of the window the same. -The runtime for this code is: `O(k)`. We move the window k times. Since `k <= n`, the final runtime is `O(n)`. +The runtime for this code is: `k`. As we move the window k times. Since `k <= n`, the final runtime is `O(n)`. ==== Practice Questions (((Interview Questions, Arrays))) diff --git a/book/images/max-sum-sliding-window-red.png b/book/images/max-sum-sliding-window-red.png new file mode 100644 index 0000000000000000000000000000000000000000..ccbc1cb10e5aaf9ffd964754db418193834f99b1 GIT binary patch literal 41546 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%0DL~ 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 literal 0 HcmV?d00001