Skip to content

Commit f26dd35

Browse files
committed
12.10
1 parent 48d69a8 commit f26dd35

File tree

7 files changed

+207
-0
lines changed

7 files changed

+207
-0
lines changed

140.py

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution:
2+
"""
3+
@param a: A 32bit integer
4+
@param b: A 32bit integer
5+
@param n: A 32bit integer
6+
@return: An integer
7+
"""
8+
def fastPower(self, a, b, n):
9+
# write your code here
10+
# (x1 + x2)**n == x1**n + x1**(n-1)*x2 + ... + x2**n
11+
# a**n = (x1*b + x2)**n
12+
# a**n % b = x2**n % b
13+
return self.Power(a,b,n,1)
14+
15+
def Power(self, a, b, n, m):
16+
if a >= b:
17+
return self.Power(a%b, b, n, m)
18+
else:
19+
if a <= 1 or n <= 1:
20+
return (a**n*m)%b
21+
if n%2 == 0:
22+
return self.Power(a**2, b, n//2, m)
23+
else:
24+
return self.Power(a**2, b, n//2, m*a)
25+
26+
# 3751 9723 2723 4713

174.py

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""
2+
Definition of ListNode
3+
class ListNode(object):
4+
def __init__(self, val, next=None):
5+
self.val = val
6+
self.next = next
7+
"""
8+
9+
class Solution:
10+
"""
11+
@param head: The first node of linked list.
12+
@param n: An integer
13+
@return: The head of linked list.
14+
"""
15+
def removeNthFromEnd(self, head, n):
16+
# write your code here
17+
if head == None or n < 0:
18+
return head
19+
20+
lf, rg = head, head
21+
for i in range(n):
22+
rg = rg.next
23+
24+
if rg == None:
25+
delNode = head
26+
head = head.next
27+
del delNode
28+
return head
29+
30+
while rg.next != None:
31+
rg = rg.next
32+
lf = lf.next
33+
34+
delNode = lf.next
35+
lf.next = delNode.next
36+
del delNode
37+
return head

245.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""
2+
Definition of TreeNode:
3+
class TreeNode:
4+
def __init__(self, val):
5+
self.val = val
6+
self.left, self.right = None, None
7+
"""
8+
9+
class Solution:
10+
"""
11+
@param T1: The roots of binary tree T1.
12+
@param T2: The roots of binary tree T2.
13+
@return: True if T2 is a subtree of T1, or false.
14+
"""
15+
def isSubtree(self, T1, T2):
16+
# write your code here
17+
return self.isSubtreeWithFlag(T1, T2, 1)
18+
19+
def isSubtreeWithFlag(self, T1, T2, flag):
20+
if flag:
21+
if not T2:
22+
return True
23+
if not T1:
24+
return False
25+
if not T2 and not T1:
26+
return True
27+
if not T2 or not T1:
28+
return False
29+
flag = 0
30+
31+
if T1.val != T2.val:
32+
return self.isSubtreeWithFlag(T1.left, T2, flag) or self.isSubtreeWithFlag(T1.right, T2, flag)
33+
else:
34+
return self.isSubtreeWithFlag(T1.left, T2, flag) or self.isSubtreeWithFlag(T1.right, T2, flag) or (self.isSubtreeWithFlag(T1.left, T2.left, flag) and self.isSubtreeWithFlag(T1.right, T2.right, flag))

371.py

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
"""
3+
@param n: An integer
4+
@return: An array storing 1 to the largest number with n digits.
5+
"""
6+
def numbersByRecursion(self, n):
7+
# write your code here
8+
if n <= 0:
9+
return []
10+
if n == 1:
11+
return [i for i in range(10)][1:]
12+
13+
n_1 = self.numbersByRecursion(n-1)
14+
if(n-1 == 1):
15+
n_1.insert(0,0)
16+
res = []
17+
for i in range(10):
18+
res += [i*(10**(n-1))]*(10**(n-1))
19+
for j in range(10**(n-1)):
20+
res[-j] += n_1[-j]
21+
22+
return res[1:]

372.py

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"""
2+
Definition of ListNode
3+
class ListNode(object):
4+
5+
def __init__(self, val, next=None):
6+
self.val = val
7+
self.next = next
8+
"""
9+
10+
11+
class Solution:
12+
"""
13+
@param: node: the node in the list should be deletedt
14+
@return: nothing
15+
"""
16+
def deleteNode(self, node):
17+
# write your code here
18+
if node == None:
19+
return
20+
21+
nextnode = node.next
22+
if nextnode == None:
23+
node = None
24+
else:
25+
tmp = nextnode
26+
node.val = nextnode.val
27+
node.next = nextnode.next
28+
del tmp
29+
return

373.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
class Solution:
2+
"""
3+
@param: nums: an array of integers
4+
@return: nothing
5+
"""
6+
def partitionArray(self, nums):
7+
# write your code here
8+
if len(nums) <= 1:
9+
return
10+
11+
start, end = 0, len(nums)-1
12+
while start < end:
13+
while nums[start]%2 == 1:
14+
start += 1
15+
while nums[end]%2 == 0:
16+
end -= 1
17+
if start >= end:
18+
return
19+
else:
20+
tmp = nums[start]
21+
nums[start] = nums[end]
22+
nums[end] = tmp
23+
return
24+

376.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
"""
2+
Definition of TreeNode:
3+
class TreeNode:
4+
def __init__(self, val):
5+
self.val = val
6+
self.left, self.right = None, None
7+
"""
8+
9+
10+
class Solution:
11+
"""
12+
@param: root: the root of binary tree
13+
@param: target: An integer
14+
@return: all valid paths
15+
"""
16+
def binaryTreePathSum(self, root, target):
17+
# write your code here
18+
res = []
19+
self.binaryTreePath(root, target, [], res)
20+
21+
return res
22+
23+
def binaryTreePath(self, root, target, arr, res):
24+
if not root:
25+
return
26+
27+
target -= root.val
28+
arr.append(root.val)
29+
if target == 0 and (not root.left and not root.right):
30+
res.append(arr)
31+
return
32+
else:
33+
self.binaryTreePath(root.left, target, arr[:], res)
34+
self.binaryTreePath(root.right, target, arr[:], res)
35+
return

0 commit comments

Comments
 (0)