欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)求只出現(xiàn)一次的數(shù)字

 更新時(shí)間:2023年02月09日 10:23:53   作者:YS855  
本文主要介紹了java實(shí)現(xiàn)求只出現(xiàn)一次的數(shù)字,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

題目:

給你一個(gè) 非空 整數(shù)數(shù)組 nums ,除了某個(gè)元素只出現(xiàn)一次以外,其余每個(gè)元素均出現(xiàn)兩次。找出那個(gè)只出現(xiàn)了一次的元素。

示例1:

示例2:

示例3:

異或運(yùn)算的特點(diǎn):

1.任何數(shù)和0做異或運(yùn)算,結(jié)果還是原來那個(gè)數(shù)字,即a^0=a

2.任何數(shù)和本身做異或運(yùn)算,結(jié)果為0,即a^a=0

3.異或運(yùn)算滿足交換律和結(jié)合律

思路1:

因?yàn)楸绢}中的元素只有出現(xiàn)一次和兩次的情況,所以我們用異或運(yùn)算,來判斷數(shù)字是出現(xiàn)一次還是兩次。在singleNumber()方法中,定義一個(gè)int類型變量singleNumber=0,然后遍歷數(shù)組,依次和singleNumber進(jìn)行異或運(yùn)算,最后返回singleNumber即可。

如果兩個(gè)數(shù)相同,異或結(jié)果為0;

如果兩個(gè)數(shù)不同,異或結(jié)果為1;

比如

輸入[1,2,2],singleNumber初始化為0

singleNumber為0,和1進(jìn)行異或運(yùn)算結(jié)果為1;

singleNumber為1,和2進(jìn)行異或運(yùn)算結(jié)果為3;

singleNumber為3,和2進(jìn)行異或運(yùn)算結(jié)果為1;

package Lq_算法練習(xí);
 
import java.util.Scanner;
 
public class Demo_只出現(xiàn)一次的數(shù)字 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        String[] strArray = str.split(",");
        //鍵盤輸入數(shù)組,數(shù)字之間用","隔開
        int[] nums = new int[strArray.length];
        for(int i=0;i<nums.length;i++) {
            nums[i]=Integer.parseInt(strArray[i]);
            //將strArray[i]轉(zhuǎn)換成整型類型,并賦值給nums[i]
        }
        int result = singleNumber(nums);
        System.out.println("只出現(xiàn)一次的數(shù)字為:"+result);
    }
    public static int singleNumber(int[] nums) {
        int singleNumber = 0;
        //增強(qiáng)型for循環(huán),for(類型 變量:數(shù)組),最后輸出的是num
        /*
        相當(dāng)于
        for(int i=0;i<arr.length;i++){
        int num = arr[i];
        ...
        }
        */
        for (int num : nums) {
            singleNumber ^= num;//異或運(yùn)算,轉(zhuǎn)化為二進(jìn)制再進(jìn)行運(yùn)算
            System.out.println("num="+num);
            System.out.println(singleNumber);
        }
        return singleNumber;
    }
}

運(yùn)行結(jié)果:

思路2:

直接在main方法中輸入數(shù)組,再將數(shù)組傳入singleNumber()方法中,得出只出現(xiàn)一次的數(shù)字,最后輸出。

package Lq_算法練習(xí);
 
import java.util.Scanner;
 
public class Demo_只出現(xiàn)一次的數(shù)字 {
    public static void main(String[] args) {
        int[] array = { 1, 2, 2 };
        System.out.println("只出現(xiàn)一次的數(shù)字為:"+singleNumber(array));
 
    }
 
    public static int singleNumber(int[] array) {
        int tmp = 0; // array[0];
//使用簡(jiǎn)單的for循環(huán)
        for (int i = 0; i < array.length; i++) {// for (int i = 1; i < array.length; i++) {//少一次^
            tmp = tmp ^ array[i];
        }
        return tmp;
    }
}

運(yùn)行結(jié)果:

到此這篇關(guān)于java實(shí)現(xiàn)求只出現(xiàn)一次的數(shù)字的文章就介紹到這了,更多相關(guān)java求只出現(xiàn)一次數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java8時(shí)間日期庫(kù)中的常用使用示例

    Java8時(shí)間日期庫(kù)中的常用使用示例

    這篇文章主要介紹了Java8時(shí)間日期庫(kù)中的20個(gè)常用使用示例,幫助大家更好學(xué)習(xí)Java8是如何處理時(shí)間及日期的方法,感興趣的朋友可以參考一下
    2016-02-02
  • Java?SpringBoot項(xiàng)目如何優(yōu)雅的實(shí)現(xiàn)操作日志記錄

    Java?SpringBoot項(xiàng)目如何優(yōu)雅的實(shí)現(xiàn)操作日志記錄

    這篇文章主要介紹了Java?SpringBoot項(xiàng)目如何優(yōu)雅的實(shí)現(xiàn)操作日志記錄,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-08-08
  • java隊(duì)列之queue用法實(shí)例分析

    java隊(duì)列之queue用法實(shí)例分析

    這篇文章主要介紹了java隊(duì)列之queue用法實(shí)例分析,Queue 隊(duì)列就是一個(gè)先入先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),Queue接口繼承Collection接口。感興趣的可以了解一下
    2020-07-07
  • Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    Mybatis-plus批量去重插入ON DUPLICATE key update使用方式

    這篇文章主要介紹了Mybatis-plus批量去重插入ON DUPLICATE key update使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):線性表

    java數(shù)據(jù)結(jié)構(gòu)基礎(chǔ):線性表

    這篇文章主要介紹了Java的數(shù)據(jù)解構(gòu)基礎(chǔ),希望對(duì)廣大的程序愛好者有所幫助,同時(shí)祝大家有一個(gè)好成績(jī),需要的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • 淺析Java迭代器Iterator和Iterable的區(qū)別

    淺析Java迭代器Iterator和Iterable的區(qū)別

    Java語(yǔ)言中,Iterator和Iterable都是用來遍歷集合類數(shù)據(jù)結(jié)構(gòu)的接口,雖然它們有很多相似的地方,但在具體實(shí)現(xiàn)中卻有著一些不同之處,本文將詳細(xì)分析它們的區(qū)別,并提供相應(yīng)的代碼示例,需要的朋友可以參考下
    2023-07-07
  • Java利用JavaCPP調(diào)用算法示例

    Java利用JavaCPP調(diào)用算法示例

    本文主要介紹了Java利用JavaCPP調(diào)用算法示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • java如何使用redis加鎖

    java如何使用redis加鎖

    這篇文章主要介紹了java如何使用redis加鎖問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • MVC頁(yè)面之間參數(shù)傳遞實(shí)現(xiàn)過程圖解

    MVC頁(yè)面之間參數(shù)傳遞實(shí)現(xiàn)過程圖解

    這篇文章主要介紹了MVC頁(yè)面之間參數(shù)傳遞實(shí)現(xiàn)過程圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java中spring boot 字符串判斷是否為空方法小結(jié)

    Java中spring boot 字符串判斷是否為空方法小結(jié)

    這篇文章主要介紹了Java中spring boot字符串判斷是否為空,通過安裝依賴,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11

最新評(píng)論