码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 关于重复问题

时间:2021-02-06 11:42:42      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:一个   moved   数组   链表   重复元素   整理   重复数   删除链表   数字   

数组重复元素之类问题的整理

lt26 删除排序数组重复项

主要是原地删除,O(1) 空间,很是巧妙

func removeDuplicates(nums []int) int {
	//O(1)空间复杂
	if len(nums)==0{
		return 0
	}
	tmp:=0
	//不同,tmp+1,放在相应位置
	for i:=1;i<len(nums);i++{
		if nums[tmp]!=nums[i]{
			tmp++
			nums[tmp]=nums[i]
		}
	}
	return tmp+1 //返回tmp+1 因为系统测评是最大下标在tmp
}

lt80 删除排序数组II

最多重复两次,空间O(1)


lt83 删除排序链表重复元素I

和排序数组类似,重复数字只保留一个

func deleteDuplicates(head *ListNode) *ListNode {
	if head==nil||head.Next==nil{
		return head
	}
	cur:=head
	next:=head.Next

	for next!=nil{
		if cur.Val!=next.Val{
			cur.Next = next
			cur = cur.Next
		}
		next = next.Next
	}
	cur.Next = nil
	return head
}
lt82 删除链表重复元素II

删除所有的重复元素


lt217 存在重复元素I

判断是否存在重复元素
map一边判断一边加

func containsDuplicate(nums []int) bool {
	//map即可
	hash:=make(map[int]int)
	for i:=0;i<len(nums);i++{
		if _,ok:=hash[nums[i]];ok{
			return true
		}
		hash[nums[i]]=1
	}
	return false
}

leetcode 关于重复问题

标签:一个   moved   数组   链表   重复元素   整理   重复数   删除链表   数字   

原文地址:https://www.cnblogs.com/9527s/p/14377157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!