合并区间
合并区间
题目:
https://leetcode-cn.com/problems/merge-intervals/
思路:
一开始思路想的是,根据每一个区间的left排序后,然后比较每一个数,再向前更新,然后写了半天,一直WA,感觉这个思路不太行了
代码:
先贴上错误的代码:
https://leetcode-cn.com/problems/merge-intervals/
一开始思路想的是,根据每一个区间的left排序后,然后比较每一个数,再向前更新,然后写了半天,一直WA,感觉这个思路不太行了
先贴上错误的代码:
参考:https://www.cnblogs.com/pinard/p/6251584.html
首先回顾特征值与特征向量\(Ax=\lambda x\)
\(\lambda\) 是矩阵A的一个特征值,x是矩阵A的特征值\(\lambda\)对应的特征向量。
https://leetcode-cn.com/problems/3sum/solution/
第一眼看就想到了用双指针,注意重复数值的处理问题,算是一个滑动窗口问题
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
res = []
if len(nums) < 3:
return []
nums.sort()
for i, num in enumerate(nums):
if num > 0:
return res
if i > 0 and nums[i] == nums[i-1]:
continue
left, right = i+1, len(nums) - 1
while left < right:
temp = nums[i] + nums[left] + nums[right]
if temp == 0:
res.append([nums[i], nums[left], nums[right]])
while left < right and nums[right-1] == nums[right]:
right -= 1
while left < right and nums[left+1] == nums[left]:
left += 1
left += 1
right -= 1
if temp > 0:
right -=1
if temp < 0:
left += 1
return res了解什么是ROC曲线和AUC之前,要先了解什么是混淆矩阵。
混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下:
https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/
双指针,定义 nums[0...i] 为为非重复数列,遍历整个数列不断的维护这个定义
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
start = 0
for i in range(len(nums)):
if nums[i] != nums[start]:
start += 1
nums[i],nums[start] = nums[start],nums[i]
return start + 1 https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/
也是利用双指针,一个指针用于遍历数组元素,一个指针指向要拷贝赋值的索引位置
import threading
import timedef spider():
#.....
time.sleep(0.02)
def main1():
for i in range(100):
spider()
def main2():
thread_list = []
for i in range(100):
thread = threading.Thread(target = spider)
thread.start()
thread_list.append(thread)
for t in thread_list:
t.join()
if __name__ == "__main__":
start = time.time()
main1()
end = time.time()
print("time1 :{:.4f}".format(end-start))
start = time.time()
main2()
end = time.time()
print("time2 :{:4f}".format(end-start))time1 :2.0523
time2 :0.037929
def fib(n):
a,b = 0,1
while b<n:
a,b = b,a+b
yield a
print(fib(100))
for i in fib(100):
print(i)<generator object fib at 0x000002B1A7AA1E60>
1
1
2
3
5
8
13
21
34
55
89
GEN_CREATED 创建完成,等待执行 GEN_RUNNING 解释器正在执行 GEN_SUSPENDED 在 yield 表达式处暂停 GEN_CLOSE 执行结束,生成器停止
还是以前刷过的题 https://leetcode-cn.com/problems/remove-element/
以前的思路早忘了 然后我重新做了一下,一开始就一行代码
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
return len(list(filter(lambda x:x!=val,nums))) 然后发现输出和正确输出不一样。于是看了了下面的提示,然后改了改
参考:https://blog.csdn.net/asialee_bird/article/details/96894533
TextRank算法是一种基于图的用于关键词抽取和文档摘要的排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,它利用一篇文档内部的词语间的共现信息(语义)便可以抽取关键词,它能够从一个给定的文本中抽取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法抽取出该文本的关键句。