LeetCode-為什么某些測試用例下,執行代碼返回結果正確,但提交解答卻出錯了


力扣 • 發表於:2018年10月26日 早上 00:33:03 • 更新於:2019年10月08日 下午 2:46:18

這一類問題的出現,主要有幾個原因:

a. 您的程序使用了全局變量或者自定義的類內變量。

力扣的判題機在讀取您的代碼后,對每個測試用例,都會初始化一次類,但全局變量和類內靜態變量需要您手動初始化。例如,在第一題(兩數之和)的判題過程中:

1
2
3
4
5
6
7
8
9
10
int  globalVariable = 0;
class  Solution {
public :
     int  classVariable = 0;
     vector< int > twoSum(vector< int >& nums,  int  target) {
         classVariable++;
         globalVariable++;       
         return  {classVariable, globalVariable};
     };
};

 

 

 

 

 

 

這樣的代碼在運行兩次test case后,輸出的結果會是[1, 1], [1, 2]。

 

為了避免這樣的問題,一般有兩種解決方法:

1、避免申明類內靜態變量以及全局變量。

2、在 twoSum 內對全局變量初始化。

 

b. 您的代碼存在細微的問題,如變量沒有初始化。

 

在使用中遇到題目問題,也可至 力扣圈子 進行題目交流,發布時描述清楚您的問題及使用場景,以獲得更好的支持喲~

 

 

轉自LeetCode。傳送門:https://support.leetcode-cn.com/hc/kb/article/1194344/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM