牛客网_PAT乙级_1020完美数列(25)【vector sort 最后一个测试用例超时】
題目描述
給定一個正整數(shù)數(shù)列,和正整數(shù)p,設(shè)這個數(shù)列中的最大值是M,最小值是m,如果M <= m * p,則稱這個數(shù)列是完美數(shù)列。
現(xiàn)在給定參數(shù)p和一些正整數(shù),請你從中選擇盡可能多的數(shù)構(gòu)成一個完美數(shù)列。
輸入描述:
輸入第一行給出兩個正整數(shù)N和p,其中N(<= 105)是輸入的正整數(shù)的個數(shù),p(<= 109)是給定的參數(shù)。第二行給出N個正整數(shù),每個數(shù)不超過109。
輸出描述:
在一行中輸出最多可以選擇多少個數(shù)可以用它們組成一個完美數(shù)列。
輸入例子:
10 8
2 3 20 4 5 1 6 7 8 9
輸出例子:
8
我自己寫的測試用例:
測試用例1
輸入:
10 4
1 1 1 1 1 1 1 1 1 8
答案:
9
測試用例2
輸入:
23 50
1 1 1 1 1 1 1 1 1 8 9 10 12 15 20 22 25 30 40 49 50 51 52
答案:
21
測試用例3
輸入:
6 4
1 2 3 4 5 18
答案:
4
代碼
此題答案有爭議:
以下代碼跑上面提到過的所有的測試用例都沒問題,但OJ上超時。
我寫過一個只有最后一個測試用例不通過的代碼,但是那個思路完全不對。
所以現(xiàn)在的問題是:錯誤思路能通過大多數(shù)測試用例,正確思路本地測試能通過,OJ上運行時間超時。
如何修改?
計劃將25行的內(nèi)層循環(huán)j從0開始檢查,一直到結(jié)尾改為j從maxSize開始檢查,一直到結(jié)尾,節(jié)省一部分時間。
代碼1:修改前
以下代碼所有測試用例運行超時
代碼2:修改后
以下代碼最后一個測試用例運行超時
總結(jié)
以上是生活随笔為你收集整理的牛客网_PAT乙级_1020完美数列(25)【vector sort 最后一个测试用例超时】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++STL的vector中front(
- 下一篇: 牛客网_PAT乙级_1031. 查验身份