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

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

查找閉合范圍之間的奇數

查找閉合范圍之間的奇數

慕萊塢森 2022-08-03 15:17:23
我正在做一個代碼挑戰,給定兩個整數l和r,我必須打印i和r之間的所有奇數(包括i和r)。該函數必須返回一個整數數組,表示 l 和 r 之間的奇數。這就是我到目前為止所擁有的 static List<Integer> oddNumbers(int l, int r) {    List<Integer> list1 = new ArrayList<>();    if ((r > l) && (l >= 1) && (r <= 100000)) {        for (int i = tmp; tmp < r; i++) {            if (l % 2 == 0)               l = l + 1;                          list1.add(l);            l = l + 2;        }    }    return list1;}但是,我收到了幾個這樣的錯誤Compiler MessageWrong AnswerYour Output (stdout)Output hidden對此有什么想法嗎?在挑戰網站的QA上,似乎與Corner案例問題有關。
查看完整描述

4 回答

?
汪汪一只貓

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

我建議使用以下代碼:


public static List<Integer> getOdd(int l, int r) {

    List<Integer> odd = new ArrayList<Integer>();

    if (l % 2 == 0)

        l++;

    while(l <= r) {

        odd.add(l);

        l += 2;

    }

    return odd;

}


查看完整回答
反對 回復 2022-08-03
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

正如評論中提到的,您在循環中排除了,并且可能返回了錯誤的數據結構?r

此外,您的代碼所做的遠遠超出了它需要的

  • 你只需要一個循環

  • 你根本不需要 - 只需修改tmpl

  • 你不需要所有的 if/else 塊

我建議如下:

static int[] oddNumbers(int l, int r) {

    List<Integer> list1 = new ArrayList<>();

    if (l % 2 == 0) l++;

    for(; l <= r; l += 2) {

        list1.add(l);

    }

    return list1.stream().mapToInt(i->i).toArray(); // https://stackoverflow.com/a/23945015/2554605

}

您可以根據挑戰要求添加回來是否需要它,但我不是說這是必要的(請注意,我有,而不僅僅是為了涵蓋這種情況)。if ((r >= l) && (l >= 1) && (r <= 100000))r >= lr > lr == l


同樣,如果您真的被允許返回而不是 ,那么就像您擁有的那樣。List<Integer>int[]return list1;


查看完整回答
反對 回復 2022-08-03
?
人到中年有點甜

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

與其除以2并檢查余數是0還是1,不如按位和with,如果數字是奇數,它將看起來像這樣,它降低了復雜性。1(&1)((number&1)==1)



查看完整回答
反對 回復 2022-08-03
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

此版本應該可以正常工作


 static List<int> oddNumbers(int l, int r)

    {

        List<int> list1 = new List<int>();

        if ((r > l) && (l >= 1) && (r <= 100000))

        {

            int tmp = l % 2 == 0 ? l + 1 : l;            

            for (int i = tmp; i < r; i += 2)

            {

                list1.Add(i);

            }


        }

        return list1;

    }


查看完整回答
反對 回復 2022-08-03
  • 4 回答
  • 0 關注
  • 114 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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