真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

LeetCode如何找出數(shù)組中重復(fù)的數(shù)字

這篇文章主要介紹LeetCode如何找出數(shù)組中重復(fù)的數(shù)字,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

在江干等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷(xiāo)型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,江干網(wǎng)站建設(shè)費(fèi)用合理。

題目描述

在一個(gè)長(zhǎng)度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字是重復(fù)的。也不知道每個(gè)數(shù)字重復(fù)幾次。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字。例如,如果輸入長(zhǎng)度為7的數(shù)組{2,3,1,0,2,5,3},那么對(duì)應(yīng)的輸出是第一個(gè)重復(fù)的數(shù)字2。

思路

數(shù)組中的數(shù)字都在0到n-1的數(shù)字范圍內(nèi)。如果數(shù)組中沒(méi)有重復(fù)出現(xiàn)的數(shù)字,那么當(dāng)數(shù)組排序后數(shù)字i就出現(xiàn)在數(shù)組中下標(biāo)為i的元素處。那么數(shù)組中如果存在重復(fù)數(shù)字的話,有些位置的對(duì)應(yīng)的數(shù)字就沒(méi)有出現(xiàn),而有些位置可能存在多個(gè)數(shù)字。數(shù)組用numbers表示 那么我們重排這個(gè)數(shù)組。從第0個(gè)元素開(kāi)始。

1.比較numbers[i]和i的值,如果i與numbers[i]相等,也就是對(duì)數(shù)組排序后,numbers[i]就應(yīng)該在對(duì)應(yīng)的數(shù)組的第i個(gè)位置處,那么繼續(xù)判斷下一個(gè)位置。2.如果i和numbers[i]的值不相等,那么判斷以numbers[i]為下標(biāo)的數(shù)組元素是什么。

1.如果numbers[numbers[i]]等于numbers[i]的話,那么就是說(shuō)有兩個(gè)相同的值了,重復(fù)了。找到了重復(fù)的數(shù)字2.如果numbers[numbers[i]]不等于numbers[i]的話,那么就將numbers[numbers[i]]和numbers[i]互換。繼續(xù)進(jìn)行1的判斷。

3.循環(huán)退出的條件是直至數(shù)組最后一個(gè)元素,仍沒(méi)有找到重復(fù)的數(shù)字,數(shù)組中不存在重復(fù)的數(shù)字。

代碼實(shí)現(xiàn)

package Array;
/** * 數(shù)組中重復(fù)的數(shù)字 *在一個(gè)長(zhǎng)度為n的數(shù)組里的所有數(shù)字都在0到n-1的范圍內(nèi)。 * 數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字是重復(fù)的。也不知道每個(gè)數(shù)字重復(fù)幾次。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字。 * 例如,如果輸入長(zhǎng)度為7的數(shù)組{2,3,1,0,2,5,3},那么對(duì)應(yīng)的輸出是第一個(gè)重復(fù)的數(shù)字2。 * 思路: * 數(shù)組中的數(shù)字都在0到n-1的數(shù)字范圍內(nèi)。如果數(shù)組中沒(méi)有重復(fù)出現(xiàn)的數(shù)字,那么當(dāng)數(shù)組排序后數(shù)字i就出現(xiàn)在數(shù)組中下標(biāo)為i的元素處。那么數(shù)組中如果存在重復(fù)數(shù)字的話,有些位置的對(duì)應(yīng)的數(shù)字就沒(méi)有出現(xiàn),而有些位置可能存在多個(gè)數(shù)字。數(shù)組用numbers表示 那么我們重排這個(gè)數(shù)組。從第0個(gè)元素開(kāi)始。 1、比較numbers[i]和i的值,如果i與numbers[i]相等,也就是對(duì)數(shù)組排序后,numbers[i]就應(yīng)該在對(duì)應(yīng)的數(shù)組的第i個(gè)位置處,那么繼續(xù)判斷下一個(gè)位置。 2、如果i和numbers[i]的值不相等,那么判斷以numbers[i]為下標(biāo)的數(shù)組元素是什么。 2.1、如果numbers[numbers[i]]等于numbers[i]的話,那么就是說(shuō)有兩個(gè)相同的值了,重復(fù)了。找到了重復(fù)的數(shù)字 2.2、如果numbers[numbers[i]]不等于numbers[i]的話,那么就將numbers[numbers[i]]和numbers[i]互換。繼續(xù)進(jìn)行1的判斷。 3、循環(huán)退出的條件是直至數(shù)組最后一個(gè)元素,仍沒(méi)有找到重復(fù)的數(shù)字,數(shù)組中不存在重復(fù)的數(shù)字。 */public class Solution02 {    // Parameters:    //    numbers:     an array of integers    //    length:      the length of array numbers    //    duplication: (Output) the duplicated number in the array number,length of duplication array is 1,so using duplication[0] = ? in implementation;    //                  Here duplication like pointor in C/C++, duplication[0] equal *duplication in C/C++    //    這里要特別注意~返回任意重復(fù)的一個(gè),賦值duplication[0]    // Return value:       true if the input is valid, and there are some duplications in the array number    //                     otherwise false    public static void main(String[] args) {        int[] arr ={2,3,1,0,2,5,3};        int[] duplication = {-1};        duplicate(arr,arr.length,duplication);        System.out.println(duplication[0]);    }    public static boolean duplicate(int numbers[],int length,int [] duplication) {        if(length<=0||numbers==null){            return false;        }        //判斷數(shù)組數(shù)據(jù)是否合法        for(int i=0;i            if(numbers[i]<0||numbers[i]>length-1){                return false;            }        }
       for(int i=0;i            while(numbers[i]!=i){                if(numbers[i]==numbers[numbers[i]]){                    duplication[0] = numbers[i];                    return true;                }else{                    //交換numbers[i]和numbers[numbers[i]]                    int temp = numbers[i];                    numbers[i] = numbers[temp];                    numbers[temp] = temp;                }            }        }        return false;    }}

以上是“LeetCode如何找出數(shù)組中重復(fù)的數(shù)字”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)站名稱(chēng):LeetCode如何找出數(shù)組中重復(fù)的數(shù)字
當(dāng)前鏈接:http://weahome.cn/article/ggcohe.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部