亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從偶數 {2,4,6,8,10,14} 中找到缺失的數字

如何從偶數 {2,4,6,8,10,14} 中找到缺失的數字

猛跑小豬 2023-06-14 16:06:53
我想從偶數中找到缺失的數字例如:{2,4,6,8,10,14}; //輸出應該是12我試過:public class MissingNumber {    public static void main(String[] args) {    int a[] = {2,4,6,8,10,14};    int sum = 0;    for (int i = 0; i<a.length; i++) {        sum = sum + a[i];    }     int sum1 = 0;    for(int j=1; j<=7; j++) {        sum1 = sum1 + j;    }     System.out.println("missing number is:"+(sum1-sum));    }}
查看完整描述

6 回答

?
素胚勾勒不出你

TA貢獻1827條經驗 獲得超9個贊

我想從偶數中找到缺失的數字


例如:{2,4,6,8,10,14}; //輸出應該是12


我試過:


public class MissingNumber {

    public static void main(String[] args) {


    int a[] = {2,4,6,8,10,14};

    int sum = 0;

    for (int i = 0; i<a.length; i++) {

        sum = sum + a[i];

    } 



    int sum1 = 0;

    for(int j=1; j<=7; j++) {

        sum1 = sum1 + j;

    } 

    System.out.println("missing number is:"+(sum1-sum));

    }

}


查看完整回答
反對 回復 2023-06-14
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

不確定你為什么要查看總和,除非你確定你的一系列數字總是只缺少一個數字。


否則,這樣的事情怎么樣:


    int a[] = {2,4,6,8,10,14};


    int expected = 2;

    for (int val : a) {

        if (expected != val) {

            System.out.println("Missing number is " + expected);

        }

        expected = expected +2;

    }


查看完整回答
反對 回復 2023-06-14
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

我對您的代碼進行了一些更改。通過這些改變,你會得到你的答案。


public class MissingNumber {

    public static void main(String[] args) {


        int a[] = {2,4,6,8,10,14};

        int sum = 0;

        for (int i = 0; i<a.length; i++) {

            sum = sum + a[i];

        } 


        int sum1 = 0;

        int even = 2;

        for (int j=0; j<=a.length; j++) {

            sum1 = sum1 + even;

            even = even + 2;

        }


        System.out.println("missing number is:"+(sum1-sum));

    }

}


查看完整回答
反對 回復 2023-06-14
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

上面有很多解決方案,但它們的復雜度都是 O(N)。我相信您可以使用https://en.wikipedia.org/wiki/Binary_search_algorithm用 O(log N) 解決這個問題。


原始代碼:


public class MissingNumber {

    public static void main(String[] args) {

        int a[] = {2,4,8,10, 12, 14};

        int start = 0;

        int end = a.length;

        int pointer = 0;

        while (end - start > 1) {

            if (a[pointer] == (pointer + 1) * 2) {

                start = pointer;

            } else {

                end = pointer;

            }

            pointer = (start + end) / 2;

        }

        System.out.println("Missing element: " + (pointer + 2) * 2);

    }

}

您可以添加更多條件。


查看完整回答
反對 回復 2023-06-14
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

您可以嘗試對數組元素進行偶數和檢查。


public static void main(String[] args) {

    int a[] = {2, 4, 6, 8, 10, 14};


    int sum = 2;

    for (int i = 0; i < a.length; i++) {

        if (a[i] != sum) {

            System.out.println("missing number is: " + sum);

            break;

        }

        sum = sum + 2;

    }

}


查看完整回答
反對 回復 2023-06-14
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您可以執行以下操作:


// create the set of initial values to use them in filter step.

Set<Integer> givenValues = Arrays.stream(a).boxed().collect(Collectors.toSet());


OptionalInt first =

    // generate range by 2 and limit it to size of input array

    IntStream.iterate(2, i -> i + 2).limit(a.length)

    // filter out only this value that are not in givenValues

    .filter(i -> !givenValues.contains(i))

    // get first value

        .findFirst();


// finally it have to be check if found any value. If not then return default value.

System.out.println("missing number is: "+first.orElse(-1));

它可能過于工程化。但它不依賴于給定輸入的順序。


查看完整回答
反對 回復 2023-06-14
  • 6 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號