题目
解法1
数组排序,之后判断相邻的是否相等
时间复杂度 O(nlgn)
空间复杂度 O(1)
解法2
用HashSet的特性来判断是否重复
利用有重复的加入set的时候add()函数返回false的特性
时间复杂度O(n)
空间复杂度O(n)
解法3
不借助辅助空间,阅读题目发现一个重要的条件
意味着这个数组可以自己做为一个HashSet来使用,num[i]对应的就应该是i
所以先将num[i]中的数换到自己应该到的位置上去
对数组的每一个位置进行遍历交换,一直到num[i]和i对应为止
如果有重复的,也就是nums[i]==nums[temp]的时候
时间复杂度O(n),因为每一个数最多换2次就可以换到对应的为止