Given an array nums
with n
colored objects, sort the array in place so that the colors are orders. The colors are represented by the numbers 0
, 1
, and 2
.
The easiest way to achieve this is via quicksort in O(n*log n)
.
Given a list of ascending sorted numbers, find the first and last occurrence of a target
number. For example for the list [1,2,2,3,4]
and target = 2
, the result would be [1,2]
. If the target
number is not in the array, return [-1,-1]
.
Given a list of integers, add three integers at the same time so that the sum of those integers is 0
. There should be no repetition of integers, for example [-1, 0, 1]
is equivalent to [-1, 1, 0]
.
From an unsorted array nums
, return the length of the longest consecutive sequence of numbers as an integer. For example, the list [100, 4, 200, 1, 3, 2]
would return 4
, because the longest consecutive sequence is [1, 2, 3, 4]
with a length of 4
. The algorithm should perform in O(n)
.
Not mentioned in the task is that there can be duplicates of numbers. They should be ignored. The main problem when developing this algorithm is for it to perform it in O(n)
. A brute force method is quite easy and works for smaller lists. The pseudo code looks like this:
for every element in list
while next element in list
take next element
increment counter by 1
endwhile
return longest counter
endfor
O(n^2)
. This is because for every element in the list we need to possibly visit every other element in the list.
Write an algorithm to determine if a numberFor example, the numbern
is happy. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits. Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy. Returntrue
ifn
is a happy number, andfalse
if not.
19
is divided into 1^2
and 9^2
, then added together as 82
, then divided again, etc. After some iterations this reaches 100
which is 1^2 + 0^2 + 0^2 = 1
. On the other hand, 2
keeps ever incremententing.
The programming aspect is relatively easy to solve in Python when converting the types to a string and then converting the string to a list.