Skip to content

Commit

Permalink
2019-09-05
Browse files Browse the repository at this point in the history
  • Loading branch information
JiayangWu committed Sep 6, 2019
1 parent 3d18c58 commit afcc75b
Show file tree
Hide file tree
Showing 6 changed files with 82 additions and 41 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.pythonPath": "C:\\ProgramData\\Anaconda2\\envs\\py3\\python.exe"
}
17 changes: 17 additions & 0 deletions 0280.摆动排序/0280-摆动排序.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
class Solution(object):
def wiggleSort(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""
if not nums:
return nums
i = 0
while i < len(nums):
if i % 2 == 0 and i < len(nums) - 1 and nums[i] > nums[i + 1]:
nums[i], nums[i + 1] = nums[i + 1], nums[i]
elif i % 2 and i < len(nums) - 1 and nums[i] < nums[i + 1]:
nums[i], nums[i + 1] = nums[i + 1], nums[i]
else:
i += 1
return nums
41 changes: 21 additions & 20 deletions 0281.锯齿迭代器/0281-锯齿迭代器.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,36 @@ def __init__(self, v1, v2):
:type v1: List[int]
:type v2: List[int]
"""
self.list = []
if v1 and v2:
i = 0
for i in range(min(len(v1), len(v2))):
self.list.append(v1[i])
self.list.append(v2[i])
if v1[i + 1:]:
self.list += v1[i + 1:]
else:
self.list += v2[i + 1:]

elif v1:
self.list = v1
else:
self.list = v2
self.index = 0
self.i1, self.i2 = 0, 0
self.v1, self.v2 = v1, v2
self.indicator = 0 # 0 for v1, 1 for v2

def next(self):
"""
:rtype: int
"""
self.index += 1
return self.list[self.index - 1]
if not self.indicator:
self.indicator = 1
if self.i1 < len(self.v1):
self.i1 += 1
return self.v1[self.i1 - 1]
else:
self.i2 += 1
return self.v2[self.i2 - 1]
else:
self.indicator = 0
if self.i2 < len(self.v2):
self.i2 += 1
return self.v2[self.i2 - 1]
else:
self.i1 += 1
return self.v1[self.i1 - 1]

def hasNext(self):
"""
:rtype: bool
"""
return self.index != len(self.list)

return self.i1 < len(self.v1) or self.i2 < len(self.v2)

# Your ZigzagIterator object will be instantiated and called as such:
# i, v = ZigzagIterator(v1, v2), []
Expand Down
19 changes: 8 additions & 11 deletions 0283.移动零/0283-移动零.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,12 @@ class Solution(object):
def moveZeroes(self, nums):
"""
:type nums: List[int]
:rtype: void Do not return anything, modify nums in-place instead.
:rtype: None Do not return anything, modify nums in-place instead.
"""
l = len(nums)
for index,item in enumerate(nums):
if item != 0:
continue
else:
for index0 in range(index+1,l):
if nums[index0] != 0:
print nums[index], nums[index0]
nums[index], nums[index0] = nums[index0], nums[index]
break
i = 0
for j in range(len(nums)):
if nums[j] != 0:
nums[i], nums[j] = nums[j], nums[i]
i += 1

# return nums
20 changes: 10 additions & 10 deletions 0284.顶端迭代器/0284-顶端迭代器.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,32 +25,32 @@ def __init__(self, iterator):
Initialize your data structure here.
:type iterator: Iterator
"""
self.list = list()
while(iterator.hasNext()):
self.list.append(iterator.next())
self.l = []
while iterator.hasNext():
self.l.append(iterator.next())
# self.l = iterator
self.index = 0


def peek(self):
"""
Returns the next element in the iteration without advancing the iterator.
:rtype: int
"""
return self.list[0]

return self.l[self.index]

def next(self):
"""
:rtype: int
"""
return self.list.pop(0)


self.index += 1
return self.l[self.index - 1]

def hasNext(self):
"""
:rtype: bool
"""
return len(self.list) != 0

return self.index < len(self.l)

# Your PeekingIterator object will be instantiated and called as such:
# iter = PeekingIterator(Iterator(nums))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None

class Solution(object):
def inorderSuccessor(self, root, p):
"""
:type root: TreeNode
:type p: TreeNode
:rtype: TreeNode
"""
if not root:
return None
def inorder(node):
if not node:
return []
return inorder(node.left) + [node] + inorder(node.right)
l = inorder(root)
i = l.index(p)
return l[i + 1] if i < len(l) - 1 else None

0 comments on commit afcc75b

Please sign in to comment.