国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

數組中重復的數字

2019-11-08 03:18:10
字體:
來源:轉載
供稿:網友

題目描述

在一個長度為n的數組里的所有數字都在0到n-1的范圍內。 數組中某些數字是重復的,但不知道有幾個數字是重復的。也不知道每個數字重復幾次。請找出數組中任意一個重復的數字。 例如,如果輸入長度為7的數組{2,3,1,0,2,5,3},那么對應的輸出是重復的數字2或者3。

算法解析:如果一個長度為n的數組的所有數字都在0 到n-1的范圍內,那么排序后,如果不重復,則一定有data[i] = i,如果存在一個data[data[i]] = i,且data[data[i]] != data[i],所以現在讓我們從頭到尾這個數組,當我們掃描到下標為i的數字的時候,如果這個數字m不等于i,則將他和第m個數字比較,如果兩者相等,則有一個重復數字,如果不同,則交換兩個數字,接下來重復這個過程。

代碼如下:

public boolean duplicate(int numbers[],int length,int [] duplication) { if (numbers == null || length <= 1){ return false; } for (int i = 0; i < length; i++) { if (numbers[i] < 0 || numbers[i] > length - 1) return false; } for (int i = 0; i < length; i++) { while (numbers[i] != i){ if (numbers[i] == numbers[numbers[i]]){ duplication[0] = numbers[i]; return true; } int temp = numbers[i]; numbers[i] = numbers[temp]; numbers[temp] = temp; } } return false; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 夏邑县| 勃利县| 定远县| 酉阳| 县级市| 剑川县| 蓝山县| 文山县| 兴业县| 香港 | 遂川县| 伊宁县| 名山县| 客服| 东城区| 永清县| 龙胜| 淮南市| 汝南县| 界首市| 固原市| 凌云县| 富阳市| 安顺市| 邯郸县| 汉阴县| 安仁县| 井陉县| 景德镇市| 剑川县| 鄂托克前旗| 岳阳市| 乾安县| 太康县| 赤壁市| 揭西县| 阜阳市| 平远县| 繁峙县| 陆丰市| 高陵县|