1.手撕代码:有序链表删除重复的,保留不重复的。
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head or not head.next:
return head
p = head
newHead = ListNode(0)
p0 = newHead
tmp = []
while p:
if p.val not in tmp:
tmp.append(p.val)
p = p.next
else:
while p and p.val in tmp:
p = p.next
tmp.pop()
for i in tmp:
p0.next = ListNode(i)
p0 = p0.next
return newHead.next
2.自我介绍
3. 介绍一下研究方向
4. 聚类与异常点检测的区别
异常点检测是捕捉显著偏离多数模式的异常情况,可用于入侵检测、信用卡欺诈、故障预测等,而聚类是发现数据集中的各种模式。异常点检测和聚类服务与不同的目的。聚类算法可以用于异常检测。
5. 半监督学习
概念: 半监督学习是从有标签的训练集和无标签的训练集中学习模型。
半监督学习的方法:
1. self-training 自学习模型:分类器对样本进行预测时,置信度大的样本被正确分类的可能性大。对于有标签的训练集A与无标签的训练集B,使用自学习模型的步骤是:①对于数据集A学习一个分类模型;②用该模型对训练集B进行预测;③选择置信度得分较高的k个样本,连同他们的label加入训练集A中,并从B中将其删除;④返回步骤①,直至B中所有样本都归入A中。(步骤③可以采取其他不同方法,比如可以把B中的所有样本加入A中,根据置信度的不同为每个样本赋予不同的权重)。优点是实现简单,缺点是如果有一个被分类错误的样本加入A中,则会导致模型学习出错,甚至会导致其他样本犯错。
2. cl