原文:Leetcode練習(Python):數組類:第41題:給你一個未排序的整數數組,請你找出其中沒有出現的最小的正整數。你的算法的時間復雜度應為O(n),並且只能使用常數級別的額外空間。

題目:給你一個未排序的整數數組,請你找出其中沒有出現的最小的正整數。你的算法的時間復雜度應為O n ,並且只能使用常數級別的額外空間。 思路:第一個思路是創建一個錨點,這個錨點表示第一個正整數的出現的位置,然后再分情況來判斷,結果程序無法通過所有的測試用例,第一個思路方法以后再實現,后來使用HashMap來說實現,十分方便。 程序 :HashMap classSolution: deffirst ...

2020-04-19 17:04 0 1076 推薦指數:

查看詳情

Leetcode練習(Python):數組:第34:給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間復雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。

題目: 給定一個按照升序排列的整數數組 nums,和一個目標值 target。找出給定目標值在數組中的開始位置和結束位置。 你的算法時間復雜度必須是 O(log n) 級別。 如果數組中不存在目標值,返回 [-1, -1]。 思路:二分法,使用一個指針來找到數字的開頭和結尾位置 ...

Sat Apr 18 23:01:00 CST 2020 0 1577
如何對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
給定一個長度為N數組找出出現次數大於n/2,n/3的數,要求時間復雜度On),空間復雜度O(1)

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

Fri Nov 01 04:59:00 CST 2019 0 300
Leetcode練習(Python):數組:第53:給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。進階: 如果你已經實現復雜度O(n) 的解法,嘗試使用更為精妙的分治法求解。

題目: 給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。進階: 如果你已經實現復雜度O(n) 的解法,嘗試使用更為精妙的分治法求解。 思路:貪心法和分而治之 程序1:貪心發 class Solution ...

Mon Apr 20 18:49:00 CST 2020 0 1477
Leetcode練習(Python):數組:第209:給定一個含有 n正整數數組一個正整數 s ,找出數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。

題目: 給定一個含有 n正整數數組一個正整數 s ,找出數組中滿足其和 ≥ s 的長度最小的連續子數組。如果不存在符合條件的連續子數組,返回 0。 進階: 如果你已經完成了O(n) 時間復雜度的解法, 請嘗試 O(n log n) 時間復雜度的解法 思路 ...

Sun Apr 26 03:07:00 CST 2020 0 1854
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM