Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
寒
寒假作业
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨鹏
寒假作业
Commits
9ba9948d
Commit
9ba9948d
authored
6 years ago
by
杨鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
寒假作业
parent
0362ab2d
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
135 additions
and
0 deletions
+135
-0
lowestCommonAncestor.py
+51
-0
maxProfit.py
+28
-0
mergeTwoLists.py
+56
-0
No files found.
lowestCommonAncestor.py
0 → 100644
View file @
9ba9948d
# 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
lowestCommonAncestor
(
self
,
root
,
p
,
q
):
"""
:type root: TreeNode
:type p: TreeNode
:type q: TreeNode
:rtype: TreeNode
"""
if
(
root
==
None
):
return
None
if
((
root
.
val
>=
p
.
val
and
root
.
val
<=
q
.
val
)
or
(
root
.
val
>=
q
.
val
and
root
.
val
<=
p
.
val
)):
return
root
if
(
root
.
val
<
p
.
val
and
root
.
val
<
q
.
val
):
return
self
.
lowestCommonAncestor
(
root
.
right
,
p
,
q
)
if
(
root
.
val
>
p
.
val
and
root
.
val
>
q
.
val
):
return
self
.
lowestCommonAncestor
(
root
.
left
,
p
,
q
)
return
None
def
lowestCommonAncestor1
(
self
,
root
,
p
,
q
):
"""
:type root: TreeNode
:type p: TreeNode
:type q: TreeNode
:rtype: TreeNode
"""
son_dic
=
{}
def
get_son_dic
(
root
):
if
not
root
:
return
[]
else
:
son_dic
[
root
]
=
[
root
]
+
get_son_dic
(
root
.
left
)
+
get_son_dic
(
root
.
right
)
return
son_dic
[
root
]
result
=
root
while
True
:
if
p
in
son_dic
[
result
.
left
]
and
q
in
son_dic
[
result
.
left
]:
result
=
result
.
left
elif
p
in
son_dic
[
result
.
right
]
and
q
in
son_dic
[
result
.
right
]:
result
=
result
.
right
else
:
return
result
This diff is collapsed.
Click to expand it.
maxProfit.py
0 → 100644
View file @
9ba9948d
# 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
# 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。
# 示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
# 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
# 示例 2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
class
Solution
(
object
):
def
maxProfit
(
self
,
prices
):
"""
:type prices: List[int]
:rtype: int
"""
# 列表个数
l
=
len
(
prices
)
# 如果列表个数只有1个,那就不用比了
if
(
l
<
2
):
return
0
# 设置初始最小价和最大利润
min_price
=
prices
[
0
]
max_Profit
=
0
for
i
in
prices
:
min_price
=
min
(
min_price
,
i
)
max_Profit
=
max
(
max_Profit
,
i
-
min_price
)
return
max_Profit
This diff is collapsed.
Click to expand it.
mergeTwoLists.py
0 → 100644
View file @
9ba9948d
# 将两个有序链表合并为一个新的有序链表并返回。
# 新链表是通过拼接给定的两个链表的所有节点组成的。
# 示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class
Solution
:
# 递归法
def
mergeTwoLists
(
self
,
l1
,
l2
):
"""
:type l1: ListNode
:type l2: ListNode
:rtype: ListNode
"""
if
l1
==
None
and
l2
==
None
:
return
None
if
l1
==
None
:
return
l2
if
l2
==
None
:
return
l1
if
l1
.
val
<=
l2
.
val
:
l1
.
next
=
self
.
mergeTwoLists
(
l1
.
next
,
l2
)
return
l1
else
:
l2
.
next
=
self
.
mergeTwoLists
(
l1
,
l2
.
next
)
return
l2
# def mergeTwoLists2(self, l1, l2):
# """
# :type l1: ListNode
# :type l2: ListNode
# :rtype: ListNode
# """
# head = ListNode(0)
# first = head
# while l1 != None and l2 != None:
# if l1.val <= l2.val:
# head.next = l1
# l1 = l1.next
# else:
# head.next = l2
# l2 = l2.next
# head = head.next
# if l1 != None:
# head.next = l1
# elif l2 != None:
# head.next = l2
# return first.next
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment