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

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

您的程序花費的時間比預期要長。超出了時間限制。預計時間限制 < 3.496 秒

您的程序花費的時間比預期要長。超出了時間限制。預計時間限制 < 3.496 秒

C#
藍山帝景 2023-09-16 17:08:03
這是我的代碼鏈接。當我在這里提交代碼時它顯示:Your program took more time than expected.Time Limit Exceeded  Expected Time Limit < 3.496sec  Hint : Please optimize your code and submit again.為什么Time Limit Exceeded會出現?我該如何解決這個問題?注意當我在這里運行代碼時,一切正常。但是當我單擊此處的Submit按鈕時,它顯示以下錯誤:Your program took more time than expected.Time Limit Exceeded  Expected Time Limit < 3.496sec  Hint : Please optimize your code and submit again.謝謝。我的代碼是        int testCases = int.Parse(Console.ReadLine().Trim());        while (testCases-- > 0)        {            int arrSize = int.Parse(Console.ReadLine().Trim());            string[] arr = Console.ReadLine().Trim().Split(' ');            for (int i = 0; i < arrSize - 1; i++)            {                if (int.Parse(arr[i]) > int.Parse(arr[i + 1]))                {                    Console.Write(arr[i + 1] + " ");                }                else                    Console.Write("-1" + " ");            }            Console.Write("-1");            Console.WriteLine();        }
查看完整描述

1 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

簡單的答案是你的代碼太慢了。為什么這很重要?

  • 您在其他人的服務器上運行代碼,因此您可以執行的操作受到限制;隨意浪費服務器資源會讓其他人的體驗變得更糟,并增加主機的成本。

  • 您正在進行編程練習,以測試您編寫正確、高性能代碼的能力。時間限制是你應該解決的問題的一部分:)

注意問題中定義的約束:

1≤T≤200

1≤N≤10E7

1 ≤ arr[i] ≤ 1000

每個數組的長度最多可達 1000 萬個元素。這是大量的 int 解析和字符串連接、大量的分配等。

您可以嘗試如何改進您的代碼?

  • 避免解析相同的數字兩次 - 您總是解析數組的每個元素兩次,這是不必要的成本。

  • 嘗試使用StringBuilder構建輸出字符串而不是單獨Console.Write調用;StringBuilder通過一次調用寫入整個內容Console.WriteLine,并清除以StringBuilder在下一次迭代中使用(避免必須一遍又一遍地分配另一個大字符串)。

  • 您可以編寫自己的整數解析器,而不是使用Splitand int.Parse,該解析器可以逐字符讀取輸入數據,而無需始終創建新字符串。您擁有的輸入數據受到很好的限制,因此編寫解析器幾乎是微不足道的。

  • 根據執行環境,可能值得將數據從輸入直接流式傳輸到輸出,而無需中間字符串(這本質上與第 2 點相反。),理想情況下同時緩沖輸入和輸出,這樣您就不必處理字符串太大(再次記住,數組可以有一千萬個元素,這是一個非常長的字符串?。?/p>

祝你成功完成挑戰!:)


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 145 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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