寻找数组中第二小的元素
1、用排序算法
for i in range(n,n-2,-1):
for j in range(i-1):
if list[j]<list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
second=list[-2]
2、一次遍历
fmin=0
smin=0
for i in list:
if i<fmin:
smin=fmin
fmin=i
elif (i<smin and i>fmin):
smin=i
找到数组中第一个不/重复出现的整数
1 找到第一个重复的数字
def find(self,list):
a=set()
for i in list:
if i not in a:
a.add(i)
else:
return i
return False
2 找到第一个不重复的数字
for i in range(len(list)):
for j in range(len(list)):
if i!=j and list[i]==list[j]:
break
if(j==len(list)-1):
return list[i]
from :https://blog.csdn.net/gx864102252/article/details/82597509
使用collections:
def find(self,list):
dict=collections.OrderedDict()
for i in list:
dict[i]=dict.get(i,0)+1
for key in dict:
if dict[key]==1:
return key
from :https://blog.csdn.net/Dooonald/article/details/82585333
合并两个有序数组:
类似归并排序
def merge(left,right):
result=[]
while len(left)>0 and len(right)>0:
if left[0]<right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0))
result=result+left
result=result+right
return result
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5.
class ListNode(object):
def __init__(self,x):
self.x=x
self.next=None
def del(self,head,n):
res=ListNode(0)
res.next=head
p1=res
p2=res
for i in range(n):
p1=p1.next
while p1.next:
p1=p1.next
p2=p2.next
l2.next=l2.next.next
return res.next
https://blog.csdn.net/u011045308/article/details/82143293
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
样例:输入: 1->2->3->3->4->4->5
输出: 1->2->5
遍历一遍,生成一个哈希表,生成一个不重复的顺序表,然后通过遍历顺序表,判断该数在哈希表中的值组成新链表
class ListNode(object):
def __init__(self,x):
self.x=x
self.next=None
def del(self,head):
dict={}
list=[]
# 新头节点
head2 = ListNode(0)
p = head2
while head:
if head.x in dict:
dict[head.x]+=1
else:
list.append(head.x)
dict[head.val] = 1
head=head.next
for i in list: #list里面其实就是去重
if dict[i]==1
new=ListNode(i)
p.next=new
p=p.next
return head2.next
https://www.cnblogs.com/GF66/p/9785468.html
去除列表中重复元素
1、内置函数set: a=list(set(input))
2、遍历
def del(self,list):
list2=[]
for i in list:
if i not in list2:
list2.append(i)