File tree Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Expand file tree Collapse file tree 2 files changed +10
-7
lines changed Original file line number Diff line number Diff line change 7272- [ 91 第三期讲义 - 二分专题(上)] ( ./thinkings/binary-search-1.md )
7373- [ 91 第三期讲义 - 二分专题(下)] ( ./thinkings/binary-search-2.md )
7474
75+ ## 1V1 辅导
76+
77+ 如果大家觉得上面的集体活动效率比较低,我目前也接受 1v1 算法辅导,价格根据你的算法基础以及想要学习的内容而定感兴趣的可以加我微信,备注“算法辅导”,微信号 DevelopeEngineer。
78+
7579## :octocat: 仓库介绍
7680
7781leetcode 题解,记录自己的 leetcode 解题之路。
Original file line number Diff line number Diff line change @@ -113,26 +113,25 @@ class Solution(object):
113113
114114 if N == 1 : return False
115115
116- S1 = {A[ 0 ]} # 所有 A1 可能的和的集合
117- for i in range (1 , N// 2 ):
116+ S1 = set () # 所有 B 可能的和的集合
117+ for i in range (N// 2 ):
118118 # {a + A[i] for a in S1} 在之前选择的基础上选择 A[i] 的新集合
119119 # {A[i]} 是仅选择 A[i] 的新集合
120120 # S1 是不选择 A[i] 的集合
121121 # | 是集合并操作
122122 S1 = {a + A[i] for a in S1} | S1 | {A[i]}
123123 if 0 in S1: return True
124124
125- S2 = {A[ - 1 ]} # 所有 A2 可能的和的集合
126- for i in range (N// 2 , N- 1 ):
125+ S2 = set () # 所有 C 可能的和的集合
126+ for i in range (N// 2 , N):
127127 S2 = {a + A[i] for a in S2} | S2 | {A[i]}
128128 if 0 in S2: return True
129- # 为了避免 B 选择了所有的 A,这样 C 就是空了,我们增加一个这样的判断
129+ # 如果 S1 和 S2 都没有和为 0 的组合。那么我们就需要从 S1 和 S2 分别找一个 a 和 b,看其和是否能达到 0. 如果可以,说明也能满足题意
130+ # 为了避免 B 或者 C 为空,我们增加一个这样的判断: (ha, -ha) != (sleft, sright)
130131 sleft = sum (A[i] for i in range (N// 2 ))
131132 sright = sum (A[i] for i in range (N// 2 , N))
132133
133134 return any (- ha in S2 and (ha, - ha) != (sleft, sright) for ha in S1)
134-
135-
136135```
137136
138137** 复杂度分析**
You can’t perform that action at this time.
0 commit comments