- 今日学习的文章链接
- 自己看到题目的第一想法
704:
典型的二分查找,可以用九章算法的模板,避免左闭右闭(开)的讨论:
class Solution:
def search(self, nums: List[int], target: int) -> int:
if not nums:
return -1
start, end = 0, len(nums) - 1
while start + 1 < end:
mid = (start + end) // 2
if nums[mid] < target:
start = mid
else:
end = mid
if nums[start] == target:
return start
if nums[end] == target:
return end
return -1
27
用list comprehension来做
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
nums2=[num for num in nums if num != val]
for i in range(len(nums2)):
nums[i] = nums2[i]
return len(nums2)
这里用了额外空间,不符合题目要求,但是提交也能通过
- 看完代码随想录之后的想法
704:
左闭右闭(开)的讨论略显复杂
27:
双指针解答更好:
slowindex = 0
for fastindex in range(len(nums)):
if (nums[fastindex] != val):
nums[slowindex] = nums[fastindex]
slowindex += 1
return slowindex
- 自己实现过程中遇到哪些困难
忘记了list comprehension的用法,又google了一下
- 今日收获,记录一下自己的学习时长
开始新一轮刷题和写博客,重在坚持