→ bleed1979:4個全刪除?還是刪除3個留第一出現的那個? 08/21 16:02
→ herman602:留下第一個出現的 .. 08/21 16:02
→ bleed1979:範圍的限制? 全為24XXXX?還是會有23XXX,25XXXX?? 08/21 16:08
→ herman602:範圍會從0開始 最後到多少不一定 08/21 16:09
→ herman602:最後可能會到30幾萬 08/21 16:10
我原本的想法是看範圍有多大開多少的陣列
每讀取一個NOTE就把對應範圍的陣列值改成1
然後之後的NOTE進來, 如果要改的時候發現陣列值已經是1
那該行就要刪除
但是30幾萬實在很難開陣列 ...
※ 編輯: herman602 來自: 114.43.196.13 (08/21 16:15)
推 kevintjaco:用hash table 不知道是否可行 08/21 16:19
→ diabloevagto:先排序(?如果後面有相同的就刪掉,這樣好像效率差 08/21 16:33
→ bleed1979:一維陣列也不能開嗎? 因為只判斷左右界會有盲點。 08/21 16:35
→ herman602:我剛有試過開一維的 但是超級慢 08/21 16:41
→ herman602:喔!!! 感謝kevintjaco 我改用hash table就超快的! 08/21 16:45
→ herman602:問題已經解決 雖然演算法不是非常漂亮xd 08/21 16:46
→ bleed1979:我可以合理懷疑上述問題其實是找重複點而不是範圍? 08/21 16:47
→ herman602:其實問題本質是檢查每個Note佔用的範圍有沒有overlap 08/21 16:49
→ herman602:但是簡化之後可以看成一個點有沒有被超過一個Note所佔用 08/21 16:50
推 Yshuan:range overlap 我應該會sort後掃描線 08/21 16:59
→ bleed1979:如果留下被包含,包含別人的要刪掉,sort該怎麼處理? 08/21 17:16
→ jlovet:我怎麼看都覺得明明是第一二行的"範圍"有重疊... 08/21 19:32
推 a1e:三十幾萬開陣列...我比較好奇會不會程式先爆掉 08/22 09:05
推 zerodevil:樓上你去算算三十萬個int才幾mb... 08/22 09:49
推 loveme00835:樓樓上指的應該是靜態區域陣列 08/22 10:06
推 chrisdar:bitset<3000000> a; (笑 08/22 13:37