消失的數字;及格點數目分析
今日面試題:消失的數字
從1到n,n個數字,每個數字只出現一次。現在,隨機拿走一個數字,請給出方法,找到這個數字。
如果隨機拿走兩個數字呢?
如果隨機拿走k個數字呢?
=============================================
格點數目分析
原題
給定平面上的兩個格點P1(x1,y1),P2(x2,y2),線上段P1P2上,除P1、P2外,一共有多少個格點?格點定義為x和y都是整數的點。
分析
這是一個簡單的題目,方法比較多了,比如,首先求的直線的方程式:y=ax+b。然後在x軸,從x1+1開始,到x2-1結束,將每一個整數帶入上面的方程式,得到y值。如果y滿足y1
那麼有沒有更快的方法呢?這個題目實際上是求|x1-x2|和|y1-y2|的最大公約數,格點數目就是最大公約數減取1。大家可以畫畫圖,驗證這個方法。最好是畫一個棋盤。
大家還記得最大公約數是怎麼計算的麼?輾轉相除法。設a和b的最大公約數為gcd(a,b),則gcd(a,b) = gcd(b, a%b)。公式比較簡單,改如何分析時間複雜度呢?是否更快呢?
我們假設a>b,則有如下的過程
gcd(a, b) = gcd(b, a%b) = gcd(a%b, b % (a % b)) …
一直遞迴到結束,gcd(x, 0) = x。
當b>a/2時,a % b = a - b < a / 2
當b<a/2時,a % b < b < a / 2
每一次新的遞迴,第一個引數都要小於原來的一半,所以,估計其時間複雜度在O(log max(a,b))以內,這裡的a和b分別為|x1-x2|和|y1-y2|。比線性的解決方案要快。
【分析完畢】
本文來自微信:待字閨中,2013-08-22釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 格點數目;及兄弟數字分析
- 重排陣列;及消失的數字分析陣列
- 面試題 17.04. 消失的數字面試題
- Python 數字運算及格式化Python
- 缺失的數字;及找數字分析
- 找數字續;及缺失的數字分析
- 448. 找到所有陣列中消失的數字陣列
- 淦448. 找到所有陣列中消失的數字陣列
- 數對數目;及LIS問題分析
- 力扣448. 找到所有陣列中消失的數字力扣陣列
- k個最小和;及數對數目分析
- 根據數字二進位制下 1 的數目排序排序
- 25張不可思議的數學知識動圖,早點看到這數學動圖,我數學及格了
- LeetCode-448-找到所有陣列中消失的數字LeetCode陣列
- 數字影象處理目錄列表
- 找數字;及最長等差數列分析
- 力扣 根據數字二進位制下1的數目排序力扣排序
- 分析:數字內容的反向付費
- 分析:中國數字出版現狀
- 未來數字科技趨勢分析與前沿熱點解讀
- js如何實現數字保留小數點後兩位小數JS
- 數字經濟到底是什麼?從社群團購分析數字化
- 必須納入數字化的核心考量點升行業核心數字鍵能力行業
- 兄弟數字;及修理柵欄分析
- PHP 保留小數點後有效數字(四捨五入)PHP
- C# textbox只能輸入數字和小數點C#
- 分析破解數字五筆3.0 (2千字)
- 力扣1356.根據數字二進位制下1的數目排序力扣排序
- 中文數字與阿拉伯數字:數字符號的文化交融符號
- 如何看待智慧數字經營的關鍵點?
- 數字化建設博物館的優勢分析
- 數字孿生掃除智慧城市“盲點”,賦能社會數字發展
- 在數字化時代的ITSM的幾個特點
- 知識點5:神奇數字(magic number)
- pbootcms網站欄目url字數長度限制的修改方法boot網站
- 2563. 統計公平數對的數目
- Python判斷字串是否為字母或者數字(浮點數)Python字串
- php 處理 浮點數 精度運算 數字處理等PHP