Notes-04-03-Hard-interview-question
To sharpen your mind
Last updated
Was this helpful?
To sharpen your mind
Last updated
Was this helpful?
Ref:
Given a list of strings, with typed in partial query, output potential words.
In ['dog', 'dark', 'cat', 'door', 'dodge', 'do']
, with input do
, ['dog', 'door', 'dodge']
should be returned (NOT 'do'), number of letter k, list size n
Bruto iteration
Iterate for each letter input, O(kn)
Use trie
For search: O(k) + O(n) = O(n)
For build: O(ln), l
being the average length of words
Gotchas
in Node REPL, use process.pwd()
to check pwd
in Node REPL, use require()
works the same as in a file, if it does not work, check path
in Node REPL, use require.cache = {}
to reset the cache otherwise following require
will use the cache
in Node, use module.exports
to properly export
Given list of numbers [5,7,2,3,4,1,6]
, find 3-th largest number
Bruto
Traverse k times of array, each time return the largest one, O(kn)
Sort first then get index, O(nlog)
(Max) Heap
For build: O(n), average complexity from Calculus
For search: pop k
times, each pop traverse the tree depth logn: O(klogn)
Partition
Pick the last number as delimiter
Partition the array as left smaller right larger
Partition the right(larger) partition until the size of large partition (sum of right partitions) equals k
Given ['cats', 'cat', 'dog']
and "catsdog"
, get true
as catsdog = cats + dog
, case also possible as ahardlongword = a + hard + long + word
Bruto
O(n2^m)