about summary refs log tree commit diff
path: root/scratch/facebook/interview-cake/merge-sorted-arrays.py
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2020-11-21T13·41+0000
committerWilliam Carroll <wpcarro@gmail.com>2020-11-21T13·41+0000
commit1dc6695a47c76adaeb4d28dbd681322e9f02f8e2 (patch)
tree2ea3a1da5d5913884f1952c5814dfdcb9533915a /scratch/facebook/interview-cake/merge-sorted-arrays.py
parent0ccaa22032d48db8b3961ab4a7af45562eff8d41 (diff)
Solve merge-sorted-arrays (again)
InterviewCake.com has a section on Facebook's interview, so I'm attempting to
solve all of the problems on there even if that means I'm resolving
problems. The more practice, the better. Right?

URL: interviewcake.com/facebook-interview-questions
Diffstat (limited to 'scratch/facebook/interview-cake/merge-sorted-arrays.py')
-rw-r--r--scratch/facebook/interview-cake/merge-sorted-arrays.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/scratch/facebook/interview-cake/merge-sorted-arrays.py b/scratch/facebook/interview-cake/merge-sorted-arrays.py
new file mode 100644
index 000000000000..877bb218fdf5
--- /dev/null
+++ b/scratch/facebook/interview-cake/merge-sorted-arrays.py
@@ -0,0 +1,30 @@
+def merge_sorted(xs, ys):
+    result = []
+    i = 0
+    j = 0
+    while i < len(xs) and j < len(ys):
+        if xs[i] <= ys[j]:
+            result.append(xs[i])
+            i += 1
+        else:
+            result.append(ys[j])
+            j += 1
+    while i < len(xs):
+        result.append(xs[i])
+        i += 1
+    while j < len(xs):
+        result.append(ys[j])
+        j += 1
+    return result
+
+################################################################################
+# Tests
+################################################################################
+
+xs = [3, 4, 6, 10, 11, 15]
+ys = [1, 5, 8, 12, 14, 19]
+result = merge_sorted(xs, ys)
+print(result)
+assert len(result) == len(xs) + len(ys)
+assert result == [1, 3, 4, 5, 6, 8, 10, 11, 12, 14, 15, 19]
+print("Success!")