老师,看完老师的讲解思路我有个问题:
题目说的是某些元素重复,而且重复几次也不知道,老师的这个算法可以解决只有一个重复元素的情况,但是如果是这样一个数组{0,3,2,2,3,3}(这个数组也是满足题目条件的),就会出现如果直接return2,就找不到重复元素3,如果不直接return结束循环,那么arr[1]永远都是2,不满足arr[1]=1,i就没法++;就会一直循环。(这就是我想问的问题,不知道我理解的对不对)。
下面这个是我加了一些东西的,麻烦您帮我看一些,谢谢。
Test04 { (String[] args) { [] arr = {}start = System.()List repeatNumber = (arr)end = System.()System..println(repeatNumber)System..println(end-start)} List<Integer> ([] arr){ List<Integer> list = ArrayList<>()(arr == || arr.== ){ list.add(-)list} (i =i<arr.){ (arr[i] < || arr[i] >= arr.){ list.add(-)list} (arr[i] == i){ i++}{ (arr[i] == arr[arr[i]]){ (!list.contains(arr[i])){ list.add(arr[i])}{ i++} } { temp = arr[i]arr[i] = arr[arr[i]]arr[temp] = temp} } } (list.size()==){ list.add(-)list}{ list} } List<Integer> ([] arr){ List<Integer> list = ArrayList()(i = i<arr.i++){ (j = i+j<arr.j++){ (arr[i] == arr[j]){ (!list.contains(arr[i])){ list.add(arr[i])} } } } list} }