Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit de0b5e6

Browse files
author
hj.tian
committed
feat: add leetcode75 day22
add leetcode75 day22
1 parent e7d4c4d commit de0b5e6

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

‎leetcode75/day22_437.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from typing import Optional
2+
from helper import create_binary_tree, TreeNode
3+
4+
5+
class Solution:
6+
ans = 0
7+
8+
def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int:
9+
self.ans = 0
10+
self._pathSum(root, targetSum)
11+
return self.ans
12+
13+
def _pathSum(self, root: Optional[TreeNode], targetSum: int):
14+
if root is None:
15+
return
16+
self.dfs(root, targetSum)
17+
self._pathSum(root.left, targetSum)
18+
self._pathSum(root.right, targetSum)
19+
20+
def dfs(self, root: Optional[TreeNode], targetSum: int):
21+
if root is None:
22+
return
23+
if root.val == targetSum:
24+
self.ans += 1
25+
self.dfs(root.left, targetSum - root.val)
26+
self.dfs(root.right, targetSum - root.val)
27+
28+
29+
if __name__ == "__main__":
30+
s = Solution()
31+
root = create_binary_tree([10, 5, -3, 3, 2, None, 11, 3, -2, None, 1], index=0)
32+
assert s.pathSum(root, 8) == 3
33+
34+
root = create_binary_tree([5, 4, 8, 11, None, 13, 4, 7, 2, None, None, 5, 1], index=0)
35+
assert s.pathSum(root, 22) == 3

‎others/merge_common_datetime.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
def merge_common_datetime(self, given: List[tuple[int, int]]) -> List[tuple[int, int]]:
6+
dts = list(sorted(given))
7+
start, cur = 0, 0
8+
results = []
9+
while cur + 1 < len(dts):
10+
if dts[cur + 1][0] > dts[cur][1]:
11+
results.append((dts[start][0], dts[cur][1]))
12+
start = cur + 1
13+
cur += 1
14+
results.append((dts[start][0], dts[cur][1]))
15+
return results
16+
17+
18+
if __name__ == "__main__":
19+
s = Solution()
20+
21+
given = [
22+
(202209101010, 202209101200),
23+
(202209101010, 202209101020),
24+
(202209101110, 202209101400),
25+
(202209101500, 202209101800),
26+
]
27+
expect = [
28+
(202209101010, 202209101400),
29+
(202209101500, 202209101800),
30+
]
31+
assert expect == s.merge_common_datetime(given)
32+
33+
given = [
34+
(202209101010, 202209101200),
35+
(202209101010, 202209101020),
36+
(202209101110, 202209101400),
37+
(202209101300, 202209101400),
38+
]
39+
expect = [
40+
(202209101010, 202209101400),
41+
]
42+
assert expect == s.merge_common_datetime(given)
43+
44+
given = [
45+
(202209101010, 202209101200),
46+
(202209101300, 202209101400),
47+
]
48+
expect = [
49+
(202209101010, 202209101200),
50+
(202209101300, 202209101400),
51+
]
52+
assert expect == s.merge_common_datetime(given)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /