time:O(log n),space:O(1)
time:O(log n),space:O(1)
time:O(n),space:O(n)
time:O(1),space:O(n)
delete README