about summary refs log tree commit diff
path: root/scratch
AgeCommit message (Collapse)AuthorFilesLines
2020-03-10 WIP: Partially solve InterviewCake's find duplicate numberWilliam Carroll1-0/+70
Write a function that finds one duplicate number from a list of numbers 1..n. The function should satisfy the following performance objectives: Runtime complexity: O(n*log(n)) Space complexity: O(1)
2020-03-10 Solve InterviewCake's "find rotation point" problemWilliam Carroll2-1/+69
Write a function that accepts a rotated cycle of alphabetically sorted strings and returns the index what should be the first element if the elements were not rotated.
2020-03-06 Implement an in-place shuffling algorithmWilliam Carroll2-2/+22
I believe this may be the Fisher-Yates shuffle, but I'm not sure.
2020-03-02 Solve InterviewCake's product-of-other-numbersWilliam Carroll2-1/+69
This problem challenged me: without using division, write a function that maps a list of integers into a list of the product of every integer in the list except for the integer at that index. This was another greedy algorithm. The take-away is to first solve the problem using brute force; this yields an algorithm with O(n*(n-1)) time complexity. Instead of a quadratic time complexity, a linear time complexity can be achieved my iterating over the list of integers twice: 1. Compute the products of every number to the left of the current number. 2. Compute the products of every number to the right of the current number. Finally, iterate over each of these and compute lhs * rhs. Even though I've solved this problem before, I used InterviewCake's hints because I was stuck without them. I should revisit this problem in a few weeks.
2020-03-01 Solve InterviewCake's highest-product-of-3William Carroll2-1/+82
Write a function that returns the highest product of three integers within a list of integers. This solution uses a greedy algorithm that solves for the answer in linear time. The space complexity is constant.
2020-03-01 Remove HTML-encoded quoteWilliam Carroll1-1/+1
Prefer ' to '
2020-03-01 Solve InterviewCake's stock-price problemWilliam Carroll2-1/+55
Write a function that returns the maximum profit that a trader could have made in a day. I solved this using a greedy algorithm which constantly sets the maximum profit by tracking the lowest price we've encountered.
2020-03-01 Solve InterviewCake's top-scoresWilliam Carroll2-1/+48
Using a counting sort to sort a list of values in linear time.
2020-03-01 Solve InterviewCake's word-cloud problemWilliam Carroll2-1/+80
Write a function to count the frequency of words in a sentence. Ignore casing for words; ignore punctuation.
2020-03-01 Solve InterviewCake permutation-palindrome problemWilliam Carroll2-1/+38
Write a predicate to test whether any permutation of an input string is a palindrome.
2020-03-01 Remove default values for Nix expression parametersWilliam Carroll1-1/+1
I'm not sure if this commit breaks everything in my monorepo. I think it will. Why am I doing this? Perhaps it's a bad idea. I don't fully understand how readTree works. My ignorance is costing me hours of time spent debugging. In an effort to better understand readTree, I'm removing the default values for my Nix expression parameters, which I believe have preventing errors from surfacing.
2020-02-21 Solve InterviewCake's inflight-entertainment problemWilliam Carroll2-1/+86
Write a predicate that tests whether two films in a list of films can exactly fill the duration of a flight.
2020-02-20 Solve InterviewCake's cafe-order-checker problemWilliam Carroll2-1/+65
Write a predicate that tests if a given list of integers, zs, is a possible interleaving of two other lists, xs and ys.
2020-02-19 Solve InterviewCake's merge sorted arrays questionWilliam Carroll2-1/+64
Write a function merging two sorted arrays into one sorted array.
2020-02-19 Solve bonus part of reverse-wordsWilliam Carroll1-0/+11
InterviewCake asks "How would you handle punctuation?". Without precise specs about what that entails, I'm supporting sentences ending with punctuation.
2020-02-19 Solve InterviewCake's reverse-wordsWilliam Carroll2-1/+64
Wrote a function to reverse the words in a list of characters. A word is a space-delimited strings of characters. The trick here is to first reverse the entire string and then reverse each word individually.
2020-02-13 Solve merging-rangesWilliam Carroll2-1/+116
Write a function to merge meeting times. Added an in-place solution, which the "Bonus" section suggested attempting to solve. - Added some simple benchmarks to test the performance differences between the in-place and not-in-place variants. To my surprise, the in-place solution was consistently slower than the not-in-place solution.
2020-02-12 Tidy up structure of briefcaseWilliam Carroll74-0/+4739
I had a spare fifteen minutes and decided that I should tidy up my monorepo. The work of tidying up is not finished; this is a small step in the right direction. TL;DR - Created a tools directory - Created a scratch directory (see README.md for more information) - Added README.md to third_party - Renamed delete_dotfile_symlinks -> symlinkManager - Packaged symlinkManager as an executable symlink-mgr using buildGo