原文:(劍指Offer)面試題51:數組中重復的數字

題目: 在一個長度為n的數組里的所有數字都在 到n 的范圍內。 數組中某些數字是重復的,但不知道有幾個數字是重復的。也不知道每個數字重復幾次。請找出數組中任意一個重復的數字。 例如,如果輸入長度為 的數組 , , , , , , ,那么對應的輸出是重復的數字 或者 。 思路: 排序 將數組排序,然后掃描排序后的數組即可。 時間復雜度:O nlogn ,空間復雜度:O 哈希表 從頭到尾掃描數組,每掃 ...

2015-07-31 20:38 0 6355 推薦指數:

查看詳情

(python)Offer 面試題51數組重復數字

問題描述   在長度為n的數組,所有的元素都是0到n-1的范圍內。 數組的某些數字重復的,但不知道有幾個重復數字,也不知道重復了幾次,請找出任意重復數字。 例如,輸入長度為7的數組{2,3,1,0,2,5,3},那么對應的輸出為2或3。 解題思路 1、判斷輸入數組有無元素非法 ...

Sat Mar 10 04:32:00 CST 2018 5 2737
offer面試題36:數組的逆序對

題目: 在數組的兩個數字,如果前面一個數字大於后面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個數組的逆序對的總數。 思路: 歸並排序的合並過程。主要是考慮合並兩個有序序列時,計算逆序對數。 對於兩個升序序列,設置兩個下標:兩個有序序列的末尾。每次比較兩個末尾值,如果前末尾 ...

Fri Aug 14 00:56:00 CST 2015 0 2326
Offer面試題:7.旋轉數組的最小數字

一、題目:旋轉數組的最小數字 題目:把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。   這道題最直觀的解法並不 ...

Fri Aug 21 08:18:00 CST 2015 4 7437
Offer面試題38:數字在排序數組中出現的次數

題目: 統計一個數字在排序數組中出現的次數。 思路: 1、順序遍歷 順序掃描一遍數組,統計該數字出現的次數。 時間復雜度:O(n) 2、二分查找 假設我們需要找的數字是k,那么就需要找到數組的第一個k和最后一個k出現的位置。 如何通過二分查找得到第一個k的位置呢? 取數組中間 ...

Mon Jul 27 02:16:00 CST 2015 0 2030
Offer面試題:32.數字在排序數組中出現的次數

一、題目:數字在排序數組中出現的次數 題目:統計一個數字在排序數組中出現的次數。例如輸入排序數組{1,2,3,3,3,3,4,5}和數字3,由於3在這個數組中出現了4次,因此輸出4。 二、解題思路 2.1 直接運用二分查找   既然輸入的數組是排序的,那么我們很自然地就能想到 ...

Sun Sep 20 19:04:00 CST 2015 0 6130
offer面試題29:數組中出現次數超過一半的數字

 這道題很多人都會想到對這個數組進行排序。那么在已排序的數組,位於中間位置的數字就是超過數組長度一半的那個數。由於我們需要對數組進行排序,因此總時間復雜度為 O(n*lgN)。   解法二、利用數組特點找出 O(N) 的算法: 題目中要找的數字出現的次數超過數組長度的一半 ...

Wed Jul 08 04:13:00 CST 2015 1 3651
Offer面試題55:字符流第一個不重復的字符

題目: 請實現一個函數用來找出字符流第一個只出現一次的字符。例如,當從字符流只讀出前兩個字符"go"時,第一個只出現一次的字符是"g"。當從該字符流讀出前六個字符“google"時,第一個只出現一次的字符是"l"。 思路: 字符流:像流水一樣的字符,一去不復返,意味着只能訪問一次 ...

Wed Aug 05 05:24:00 CST 2015 0 3450
Offer面試題57:刪除鏈表重復結點

題目: 在一個排序的鏈表,存在重復的結點,請刪除該鏈表重復的結點,重復的結點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理后為 1->2->5 思路: 由於頭結點有可能被刪除,因此需要創建新的頭結點 ...

Thu Aug 06 05:48:00 CST 2015 0 3486
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM