Skip to content

Commit 9f13203

Browse files
committed
new questions
1 parent 7f7872c commit 9f13203

10 files changed

Lines changed: 112 additions & 0 deletions

data_structures/array/duplicate.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
def duplicate(arr):
2+
tortoise = arr[0]
3+
hare = arr[0]
4+
5+
while True:
6+
tortoise = arr[tortoise]
7+
hare = arr[arr[hare]]
8+
if tortoise == hare:
9+
break
10+
11+
ptr1 = nums[0]
12+
ptr2 = tortoise
13+
while ptr1 != ptr2:
14+
ptr1 = nums[ptr1]
15+
ptr2 = nums[ptr2]
16+
17+
return ptr1
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def duplicate(arr):
2+
res = []
3+
for x in arr:
4+
if arr[abs(x) - 1] < 0:
5+
res.append(abs(x))
6+
else:
7+
nums[abs(x) - 1] *= -1
8+
return res

data_structures/array/find_sum.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def find(arr, target):
2+
i = 0
3+
j = len(arr) - 1
4+
while i < j:
5+
if arr[i] + arr[j] == target:
6+
return [i+1, j+1]
7+
elif arr[i] + arr[j] > target:
8+
j -= 1
9+
else:
10+
i += 1
11+
return []
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def majority(arr):
2+
maj_index = 0
3+
count = 1
4+
for i in range(1, len(arr)):
5+
if arr[i] == arr[maj_index]:
6+
count += 1
7+
else:
8+
count -= 1
9+
if count == 0:
10+
maj_index = i
11+
count = 1
12+
13+
return arr[maj_index]
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
def max_ones(arr):
2+
max = 0
3+
count = 0
4+
for i in arr:
5+
if i == 1:
6+
count += 1
7+
if count > max:
8+
max = count
9+
if i == 0:
10+
count = 0
11+
return max
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def move(arr):
2+
count = 0
3+
for a in arr:
4+
if not a == 0:
5+
arr[count] = a
6+
count += 1
7+
while count < len(nums):
8+
nums[count] = 0
9+
count += 1
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
def partition(arr):
2+
s = sum(arr)
3+
if not s % 3 == 0:
4+
return False
5+
s = s / 3
6+
targets = [2*s, s]
7+
acc = 0
8+
9+
for a in arr:
10+
acc += a
11+
if acc == targets[-1]:
12+
targets.pop()
13+
if not targets:
14+
return True
15+
16+
return False
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
def pivot(arr):
2+
s = sum(arr)
3+
left_sum = 0
4+
for i, x in enumerate(arr):
5+
if left_sum = (s - x - left_sum):
6+
return i
7+
left_sum += x
8+
return -1
9+
10+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def sort_parity(arr):
2+
i = 0
3+
j = len(arr) - 1
4+
while i < j:
5+
if arr[i] % 2 > arr[j] % 2:
6+
arr[i], arr[j] = arr[j], arr[i]
7+
if arr[i] % 2 == 0:
8+
i += 1
9+
if arr[j] % 2 == 1:
10+
j -= 1
11+
12+
arr = [5,6,4,3,2,4,5,6,7,8,9,8,7,4]
13+
14+
sort_parity(arr)
15+
print(arr)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
def square(arr):
2+

0 commit comments

Comments
 (0)