Skip to content

Commit da4b16b

Browse files
committed
国庆打卡
1 parent 3be17b6 commit da4b16b

File tree

4 files changed

+22
-27
lines changed

4 files changed

+22
-27
lines changed

questions/15.三数之和.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,6 @@ def threeSum(self, nums: List[int]) -> List[List[int]]:
3030
L = bisect.bisect_right(nums,nums[L], L, R)
3131
R = bisect.bisect_left(nums,nums[R], L, R)-1
3232

33-
# while L < R and nums[L] == nums[L+1] :
34-
# L = L+1
35-
# while L < R and nums[R] == nums[R-1] :
36-
# R = R-1
37-
# L = L+1
38-
# R = R-1
3933
else:
4034
L,R = L+(_sum < 0),R-(_sum > 0)
4135
return self.res

questions/18.四数之和.py

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,16 @@ def classic_double_index(self, nums: List[int], target: int) -> List[List[int]]:
2222
if v*4 > target:
2323
break
2424
# 当数组最大值和都小于target或者已经遍历过,遍历下一个
25-
if v + 3*nums[-1] < target or (v == nums[k-1] and k>0):
25+
if v + 3*nums[-1] < target or (v == nums[k-1] and k > 0):
2626
continue
2727
for _k, _v in enumerate(nums[k+1:-2], k+1):
2828
# 同理
2929
if v + _v*3 > target:
3030
break
31-
if v + _v + nums[-1]*2 < target or (_v == nums[_k-1] and _k>k+1):
31+
if v + _v + nums[-1]*2 < target or (_v == nums[_k-1] and _k > k+1):
3232
continue
3333
R = len(nums)-1
34-
L = max(_k + 1, bisect.bisect_left(nums,
35-
target-nums[R] - _v - v, _k + 1, R) - 1)
34+
L = max(_k + 1, bisect.bisect_left(nums, target-nums[R] - _v - v, _k + 1, R) - 1)
3635
while L < R:
3736
_sum = v+_v+nums[L]+nums[R]
3837
if _sum == target:
@@ -43,39 +42,39 @@ def classic_double_index(self, nums: List[int], target: int) -> List[List[int]]:
4342
else:
4443
L, R = L+(_sum < target), R-(_sum > target)
4544
return [list(_) for _ in set(self.result)]
46-
45+
4746
def brute_for(self, nums: List[int], target: int) -> List[List[int]]:
4847
nums.sort()
4948
if len(nums) < 4:
5049
return []
51-
counter={}
50+
counter = {}
5251
for n in nums:
53-
counter[n]=counter.get(n,0)+1
52+
counter[n] = counter.get(n, 0)+1
5453
"""双指针"""
5554
for k, v in enumerate(nums[:-3]):
5655
# 当数组最小值和都大于target 跳出
5756
if v*4 > target:
5857
break
5958
# 当数组最大值和都小于target或者已经遍历过,遍历下一个
60-
if v + 3*nums[-1] < target or (v == nums[k-1] and k>0):
59+
if v + 3*nums[-1] < target or (v == nums[k-1] and k > 0):
6160
continue
62-
counter[v]-=1
61+
counter[v] -= 1
6362
for _k, _v in enumerate(nums[k+1:-2], k+1):
6463
# 同理
6564
if v + _v*3 > target:
6665
break
67-
if v + _v + nums[-1]*2 < target or (_v == nums[_k-1] and _k>k+1):
66+
if v + _v + nums[-1]*2 < target or (_v == nums[_k-1] and _k > k+1):
6867
continue
69-
counter[_v]-=1
70-
for __k in range(_k if counter[_v]>0 else _k+1,len(nums)):
71-
c=nums[__k]
72-
d=target-v-_v-c
73-
if c>d:
68+
counter[_v] -= 1
69+
for __k in range(_k if counter[_v] > 0 else _k+1, len(nums)):
70+
c = nums[__k]
71+
d = target-v-_v-c
72+
if c > d:
7473
break
75-
if d not in counter or c==d and counter[c]<2:
74+
if d not in counter or c == d and counter[c] < 2:
7675
continue
77-
self.result.append((v,_v,c,d))
78-
counter[_v]+=1
76+
self.result.append((v, _v, c, d))
77+
counter[_v] += 1
7978
return [list(_) for _ in set(self.result)]
8079

8180
def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
@@ -88,4 +87,4 @@ def fourSum(self, nums: List[int], target: int) -> List[List[int]]:
8887
# @lc code=end
8988
if __name__ == "__main__":
9089
test = Solution()
91-
print(test.fourSum([0,0,0,0], 0))
90+
print(test.fourSum([0, 0, 0, 0], 0))

questions/2.两数相加.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
class Solution:
4343
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
44-
re = ListNode(0)
44+
re = ListNode('head')
4545
r=re
4646
carry=0
4747
while(l1 or l2):
@@ -59,4 +59,6 @@ def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
5959
# @lc code=end
6060
if __name__ == "__main__":
6161
test = Solution()
62-
print(test.addTwoNumbers(ListNode([2,4,3]),ListNode([5,6,4])))
62+
print(test.addTwoNumbers(ListNode([2,4,3]),ListNode([5,6,4])))
63+
test= []
64+
test.insert

user.out

Whitespace-only changes.

0 commit comments

Comments
 (0)