将一个数组中不重复_50. 数组中重复的数字
????????????
1. 思路
????????還可以把當(dāng)前序列當(dāng)成是一個(gè)下標(biāo)和下標(biāo)對(duì)應(yīng)值是相同的數(shù)組(時(shí)間復(fù)雜度為O(n),空間復(fù)雜度為O(1));遍歷數(shù)組,判斷當(dāng)前位的值和下標(biāo)是否相等:
? ? ? ? * 若相等,則遍歷下一位;
? ? ? ? * 若不等,則將當(dāng)前位置i上的元素和a[i]位置上的元素比較:若它們相等,則找到了第一個(gè)相同的元素;若不等,則將它們兩交換。換完之后a[i]位置上的值和它的下標(biāo)是對(duì)應(yīng)的,但i位置上的元素和下標(biāo)并不一定對(duì)應(yīng);重復(fù)2的操作,直到當(dāng)前位置i的值也為i,將i向后移一位,再重復(fù)2。
????????本文采用思路3,如果還是不懂,看下面的實(shí)例分析就懂了!
? ??????舉例說明:{2,3,1,0,2,5,3}
? ? ? ? * 0(索引值)和2(索引值位置的元素)不相等,并且2(索引值位置的元素)和1(以該索引值位置的元素2為索引值的位置的元素)不相等,則交換位置,數(shù)組變?yōu)?#xff1a;{1,3,2,0,2,5,3};
? ? ? ? * 0(索引值)和1(索引值位置的元素)仍然不相等,并且1(索引值位置的元素)和3(以該索引值位置的元素1為索引值的位置的元素)不相等,則交換位置,數(shù)組變?yōu)?#xff1a;{3,1,2,0,2,5,3};
? ? ? ? * 0(索引值)和3(索引值位置的元素)仍然不相等,并且3(索引值位置的元素)和0(以該索引值位置的元素3為索引值的位置的元素)不相等,則交換位置,數(shù)組變?yōu)?#xff1a;{0,1,2,3,2,5,3};
2. 代碼
推薦閱讀:
★?求職經(jīng)驗(yàn):點(diǎn)這里
★?算法刷題:點(diǎn)這里
★?投資理財(cái):點(diǎn)這里
★?AI很簡(jiǎn)單:
★?掃盲科普:點(diǎn)這里
???◆???◆???◆???◆???◆???◆???◆???◆???◆???◆???◆??
?????
總結(jié)
以上是生活随笔為你收集整理的将一个数组中不重复_50. 数组中重复的数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 远晶瓷砖和慕歌瓷砖哪个好?
- 下一篇: 阳台窗换棚顶怎么换?