原文:給定一個長度為N的數組,找出出現次數大於n/2,n/3的數,要求時間復雜度O(n),空間復雜度O(1)

先討論出現次數大於n 的數字,如果這樣的數字存在,那么這個數出現的次數大於其他數出現的次數的總和。 在數組A中,我們定義兩個數據集合a ,a 。a 為出現次數大於n 的數的集合,a 為其余數組成的集合。對於數組 A中元素a b,假設a不等於b,那么有兩種情況,分別為:a屬於a ,b屬於a a屬於a ,b屬於a 。對於這兩種情況,如 果把a b從數組A中去掉,集合a 的size依舊是大於a 的。按 ...

2019-10-31 20:59 0 300 推薦指數:

查看詳情

如何對n個整數數進行排序,要求時間復雜度O(n),空間復雜度O(1)

題目:如何對n個不重復出現的整數序列進行排序,已知這些的范圍為(0-65535),要求時間復雜度O(n),空間復雜度O(1) 分析: 可以申請一個大小為65536的數組A,數組的x下標代表數字x,A[x]代表x 在整數序列中出現次數。掃描一遍整數序列就可以完成對該整數序列的排序,時間復雜度 ...

Fri Mar 16 03:53:00 CST 2012 2 5944
單鏈表的回文判斷(O(n)時間復雜度O(1)的空間復雜度)

對於單鏈表來說,判斷回文最簡單的方法就是遍歷鏈表,將鏈表中的元素復制到數組中,然后對數組進行判斷是否是回文數組,但是這不符合O(1)的空間復雜度。 由於空間復雜度要求,需要就地操作鏈表,不能開辟多余的空間來進行處理,因此引入快慢指針來進行操作。 快慢指針: slow 和 fast,每次 ...

Thu May 26 19:02:00 CST 2016 0 2087
時間復雜度O(n),空間復雜度O(1)的排序

題目描述: 如何對n個數進行排序,要求時間復雜度O(n),空間復雜度O(1) 解析: 利用計數排序法,設置一大小為65536的int數組,范圍a[0]~a[65535],並初始為0,然后遍歷n個數,假設這n個數在數組array[0...n-1]中,則i取值從0到n-1同時執行 ...

Thu Sep 20 18:09:00 CST 2012 0 3253
時間復雜度O(n)

時間復雜度 算法分析 同一問題可用不同算法解決,而一個算法的質量優劣將影響到算法乃至程序的效率。算法分析的目的在於選擇合適算法和改進算法。一個算法的評價主要從時間復雜度空間復雜度來考慮。 一、時間復雜度 (1)時間頻度 一個算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知 ...

Thu Oct 11 18:52:00 CST 2018 0 799
查找數組中重復的唯一元素+時間復雜度On)+空間復雜度O(1)

這是我BIGO前端面試時,面試官給我出的一道題,題目是長度N數組,元素大小范圍在[1,N-1],只有一個重復的元素,用On)的時間復雜度O(1)的空間復雜度找出來這個重復的元素, 大致思路   1、因為總共有N個數,每個數的范圍是1到N-1,只有一個重復的,所以這些肯定是連續 ...

Tue Oct 02 22:20:00 CST 2018 1 2313
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM