面試題精選(69):求最大重疊區間大小

來源:互聯網
上載者:User

題目描述:請編寫程式,找出下面 “ 輸入資料及格式 ” 中所描述的輸入資料檔案中最大重疊區間的大小。

對一個正整數 n ,如果 n 在資料檔案中某行的兩個正整數(假設為 A 和 B )之間,即 A <=n <=B 或 A>=n>=B ,則 n 屬於該行;如果 n 同時屬於行 i 和 j ,則 i 和 j 有重疊區間;重疊區間的大小是同時屬於行 i 和 j 的整數個數。
例如,行( 10 20 )和( 12 25 )的重疊區間為 [12 20] ,其大小為 9 ,行 (20 10) 和( 20 30 )的重疊區間大小為 1 。

 

 

 

 

思路:

先用n*log(n), 按照區間的左端點(較小的那個數)排個序,然後用O(n)遍曆一遍就行了!

遍曆的過程只記錄右端點(較大的那個數)的最大值,重疊區間=最大值-當前左端點值,記錄產生過的最大重疊區間就行了!

也可以用線段樹來做,不過是一樣的!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.