Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit b433b40

Browse files
python: add problem 88 and unittest
1 parent 01e6b8b commit b433b40

File tree

2 files changed

+46
-5
lines changed

2 files changed

+46
-5
lines changed

Python/sln_1_100/solution_81_90.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# -*- coding: utf-8 -*-
2+
from typing import List
23
from common_utils import ListNode
34

45

@@ -37,3 +38,33 @@ def partition(self, head: ListNode, x: int) -> ListNode:
3738
less_node.next = equal_more_than_head
3839
new_head = less_head
3940
return new_head
41+
42+
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
43+
"""
44+
88
45+
Do not return anything, modify nums1 in-place instead.
46+
"""
47+
48+
merged_arr = []
49+
if not m:
50+
merged_arr = nums2
51+
elif not n:
52+
merged_arr = nums1
53+
else:
54+
i1 = i2 = 0
55+
for _ in range(m + n):
56+
if nums1[i1] < nums2[i2]:
57+
merged_arr.append(nums1[i1])
58+
i1 += 1
59+
else:
60+
merged_arr.append(nums2[i2])
61+
i2 += 1
62+
if i1 == m:
63+
merged_arr.extend(nums2[i2:n])
64+
break
65+
if i2 == n:
66+
merged_arr.extend(nums1[i1:m])
67+
break
68+
69+
for i, val in enumerate(merged_arr):
70+
nums1[i] = val

Python/sln_1_100/test_solution_81_90.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,23 @@
33
from sln_1_100.solution_81_90 import *
44
from common_utils import *
55

6+
67
class Test_Solution_81_90(TestCase):
78
def setUp(self) -> None:
89
self.sln = Solution_81_90()
910

10-
11-
1211
def test_partition(self):
13-
head = build_linked_list([1,4,3,2,5,2])
14-
ret = self.sln.partition(head,3)
15-
print_linked_list(ret)
12+
head = build_linked_list([1, 4, 3, 2, 5, 2])
13+
ret = self.sln.partition(head, 3)
14+
print_linked_list(ret)
15+
16+
def test_merge(self):
17+
arr1 = [1, 2, 3, 0, 0, 0]
18+
self.sln.merge(arr1, 3, [2, 5, 6], 3)
19+
self.assertEqual(arr1, [1, 2, 2, 3, 5, 6])
20+
arr2 = [1]
21+
self.sln.merge(arr2, 1, [], 0)
22+
self.assertEqual(arr2, [1])
23+
arr3 = [2, 0]
24+
self.sln.merge(arr3, 1, [1], 1)
25+
self.assertEqual(arr3, [1, 2])

0 commit comments

Comments
 (0)