不修改数组找出重复的数字
生活随笔
收集整理的這篇文章主要介紹了
不修改数组找出重复的数字
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在長(zhǎng)度為n+1的數(shù)組里的所有數(shù)字都在1~n的范圍內(nèi),所以數(shù)組中至少有一個(gè)數(shù)字是重復(fù)的。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字,但不能修改輸入的數(shù)組。
思路:
一、把1~n的數(shù)字從中間的數(shù)字m分成兩部分,前面一半為1 ~m,后面一半為m+1 ~ n;
二、若1 ~ m的數(shù)字的數(shù)目超過(guò)m,那么這一半的區(qū)間里一定包含重復(fù)的數(shù)字;否則另 一半m+1 ~n的區(qū)間里一定包含重復(fù)的數(shù)字。
三、繼續(xù)把包含重復(fù)數(shù)字的區(qū)間一分為二,直到找到一個(gè)重復(fù)的數(shù)字。
總結(jié)
以上是生活随笔為你收集整理的不修改数组找出重复的数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 去除字符串空格
- 下一篇: 字符串相乘(大数相乘)