第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用 Java 編寫代碼中的 PassingCars 問題

使用 Java 編寫代碼中的 PassingCars 問題

撒科打諢 2022-01-19 09:24:08
我正在做代碼任務(wù)。我目前正在通過汽車任務(wù) - https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/;其中一項(xiàng)性能測試,我得到“錯(cuò)誤答案,得到 -1794967296 預(yù)期 -1”(性能測試名稱為“l(fā)arge_big_answer 0..01..1,長度 = ~100,000”)其他測試做得很好我想知道如何糾正這個(gè)錯(cuò)誤這是我的代碼class Solution {    public int solution(int[] A) {        int mul = 0;        int cnt = 0;        for(int i = 0 ; i<A.length ; i++){            if(A[i] == 0) mul++;            else cnt = cnt+mul;        }        if(cnt>1000000000) return -1;        return cnt;    }}
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

這個(gè)問題確實(shí)與溢出有關(guān)。


將檢查if (cnt > 1_000_000_000)移到 for 循環(huán)中。要求是:


如果經(jīng)過的汽車對數(shù)超過 1,000,000,000,則該函數(shù)應(yīng)返回 -1。


因此,一旦對數(shù)超過計(jì)數(shù),則停止。


所以,


public int solution(int[] A) {

    int mul = 0;

    int cnt = 0;

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

        if(A[i] == 0) mul++;

        else cnt = cnt+mul;


        if(cnt>1000000000) return -1;

    }


    return cnt;

}

這是一個(gè)顯示失敗的測試用例:


@Test

public void testHalfEach() {

    final int[] inp = new int[100_000];

    final int exp = -1;

    Arrays.fill(inp, 0, 50_000, 0);

    Arrays.fill(inp, 50_000, 100_000, 1);

    validate(inp, exp);

}


private void validate(int[] inp, int exp)

{

    PassingCars prog = new PassingCars();

    int ans = prog.solution(inp);

    assertEquals(exp, ans);

}

更改檢查的位置將允許此測試通過。


查看完整回答
反對 回復(fù) 2022-01-19
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號