格點數目;及兄弟數字分析
今日面試題:格點數目
給定平面上的兩個格點P1(x1,y1),P2(x2,y2),線上段P1P2上,除P1、P2外,一共有多少個格點?格點定義為x和y都是整數的點。
====================================
兄弟數字分析
原題
給定一個數X,他的兄弟數Y定義為:是由X中的數字組合而成,並且Y是大於X的數中最小的。例如,38276的兄弟數字為38627。給定X,求Y。
分析
這個題目當然有暴力的方法,列出所有的排列組合,然後然後找到大於X中,最小的Y。即,找到兄弟數字。
那有沒有更好的方法呢?不想對所有情況進行窮舉,就要想辦法,儘可能縮小要處理的範圍,一般的思路,從右邊開始,兩兩交換,檢視是否可以找到Y,最開始考慮兩位,進而考慮三位,依次類推,那麼如何確定,要考慮多少位呢?假設X的形式如下:x1x2x3...xky1y2y3y4,並且其中y1>y2>y3>y4,xk
下面以一個具體例子來說明上述過程:
3 | 4 | 7 | 2 | 2 | 6 | 4 | 1 |
首先找到,從右邊開始的遞增的、儘可能長的數位,這裡是641。
3 | 4 | 7 | 2 | 2 | (6 | 4 | 1) |
則,選取前一位數字2,進行交換。641中,大於2的最小的值是4,則作如下交換:
3 | 4 | 7 | 2 | 4 | (6 | 2 | 1) |
為了得到最小值,對621,從小到大進行排序,得到
3 | 4 | 7 | 2 | 4 | 1 | 2 | 6 |
則,Y為34724126.
【分析完畢】
本文來自微信:待字閨中,2013-08-20釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 兄弟數字;及修理柵欄分析
- 消失的數字;及格點數目分析
- 缺失的數字;及找數字分析
- 數對數目;及LIS問題分析
- 找數字續;及缺失的數字分析
- k個最小和;及數對數目分析
- 找數字;及最長等差數列分析
- 重排陣列;及消失的數字分析陣列
- 數字遊戲;及螞蟻螞蟻分析遊戲
- 括號匹配;及找數字續分析
- 七夕鵲橋;及數字遊戲分析遊戲
- 數字影象處理目錄列表
- Python 英文的月份轉數字及數字轉英文Python
- 數字孿生的實現方案及可行性分析
- 根據數字二進位制下 1 的數目排序排序
- 分析:中國數字出版現狀
- 未來數字科技趨勢分析與前沿熱點解讀
- js如何實現數字保留小數點後兩位小數JS
- 嚴格模式下變數宣告注意點模式變數
- 數字經濟到底是什麼?從社群團購分析數字化
- JavaScript 浮點數陷阱及解法JavaScript
- 關於數字藏品系統開發程式分析及玩法案例
- 數字對映:數字孿生技術的應用場景及作用
- 引數session_cached_cursors的工作原理及優缺點分析Session
- 力扣 根據數字二進位制下1的數目排序力扣排序
- PHP 保留小數點後有效數字(四捨五入)PHP
- C# textbox只能輸入數字和小數點C#
- 分析破解數字五筆3.0 (2千字)
- 【數字化】數字化轉型是什麼、為什麼、怎麼辦;2018年數字化供應鏈行業及案例分析報告行業
- 從數字鴻溝到數字貧困:負面影響及改進策略
- 兄弟連區塊鏈教程Fabric1.0原始碼分析ECDSA橢圓曲線數字簽名演算法區塊鏈原始碼演算法
- 突破!中小製造企業數字化轉型困境分析及對策
- 數字孿生掃除智慧城市“盲點”,賦能社會數字發展
- 兄弟連go教程(1)型別-變數Go型別變數
- 知識點5:神奇數字(magic number)
- Python判斷字串是否為字母或者數字(浮點數)Python字串
- php 處理 浮點數 精度運算 數字處理等PHP
- NEO從原始碼分析看數字資產原始碼