anish531213
BAN USERSimple O(n) solution in Python.
def first_non_repeated(lst):
d = {}
for i in lst:
d[i] = d.get(i, 0) + 1
for i in lst:
if d[i] == 1:
return i
def differs(A, k):
l = []
d = {}
for i in range(len(A)):
d[A[i]] = i
for j in range(len(A)):
temp = k + A[j]
if temp in d:
l.append((A[j], temp))
del d[A[j]]
return l
z = differs([1, 2, 3, 5, 6, 8, 9, 11, 12, 13], 3)
print(z)
def occourance(l, n):
for i in range(0, len(l)):
if l[i] == n:
last= i
for i in range(0, len(l)):
if l[i] == n:
first= i
break
return ("the first occurance is at %ith 'index' and the last occurance is at %ith 'index'" %(first, last))
list1 = [5, 2, 3, 4, 5, 5, 7, 8, 5, 9]
z = occourance(list1, 5)
print(z)
def sum_target(A, target):
for i in range(len(A)):
k = 0
for j in range(i, len(A)):
k += A[j]
if k == target:
return A[i:j+1]
return("no consecutive sum found")
z = sum_target([1, 2, 3, 5, 7], 6)
print(z)
def print_missing(l):
sumn = (1 + l[len(l)-1]) * l[len(l)-1] * (0.5)
x = 0
for i in l:
x += i
return (sumn - x)
z = print_missing([0, 1, 2, 3, 4, 5, 7])
print(int(z))
python
O(n)
def sum_0(l):
new = []
dn = dict()
dp = dict()
for i in l:
if i >= 0:
z = dp.get(i, 0)
z += 1
dp[i] = z
else:
z = dn.get(i, 0)
z += 1
dn[i] = z
for j in dp:
if (-j) in dn:
new.append((j, -j))
return new
z = sum_0([1, -1, 3, 2])
print(z)
Python
O(n)
def move0(l):
new = []
for i in l:
if i != 0:
new.append(i)
for i in l:
if i == 0:
new.append(i)
return new
z = move0([1, 2, 4, 0, 0, 12])
print(z)
simple python code
O(n2)
def move_0(l):
for i in range(len(l)-1):
for j in range(0, len(l)-1-i):
if l[j] == 0:
l[j+1] , l[j] = l[j], l[j+1]
mylist = [1, 2, 4, 0, 0, 12]
move_0(mylist)
print(mylist)
max runtime is O(n)
- anish531213 November 01, 2015
Very elegant O(n) solution in python
- anish531213 December 23, 2015