最大乘積;及最新版本分析
今日面試題:最大乘積
一根繩子,長度為n米。將其切成幾段,每一段的長度都是整數。請給出一種切法,使得切成的各段繩子之間的乘積是最大的。注意,最少要切一下的。
==========================================================
最新版本分析原題給定軟體的版本號的表示方式,以及一些版本號,請找出最新的版本。例如:
1. 1.2,2.2 最新的是2.2
2. 3.1, 3.1.3 最新的是3.1.3
上面的版本號,都是用字串表示的。
分析
這個題目比較簡單,可以用來考察同學們字串的處理,因為這裡強調了版本資訊都是用字串的方式儲存的,但其實處理起來也比較簡單,java、c++等語言已經提供了很好的API。如果不允許呼叫,則遍歷字串,按“.”分割,並且將字元轉化誒正數即可,後面這個也有不少面試考察,大家可以找一個OJ,練練程式碼。那麼,這個題目都有哪些方法呢?我們簡單介紹兩個。
如果是一個java或者c++的程式設計師,第一個想到的方法可能是重寫比較操作符,然後對字串整體進行快速排序,比較的方式就是我們自定義的比較操 作符,一個方法,在比較的時候,可以將字串進行按“.”劃分,對應的部分比較數字的大小。假設有n個版本號,每個版本號的長度為k,則整體的時間複雜度 為O(knlogn),其中,劃分並且逐位比較的時間複雜度為O(k)。
是否有更加高效的方法呢?因為我們要找的最新的版本(可以理解為最大的),一般來講,我們給定一個陣列,找到最大的元素,O(n)的時間複雜度就可以的。同樣,在這裡我們仍舊可以這樣處理:
1. 用對每一個版本號進行劃分,儲存為正數的list
2. 遍歷每一個list的第一個元素,找到的最大的數字,也許會有多個
3. 對於第一個數字最大的一些版本,處理第二個數字,同樣找到最大的數字,縮小進一步查詢的範圍
4. 依次類推。
這個方法的時間複雜度為O(kn)。
【分析完畢】
本文來自微信:待字閨中,2013-10-12釋出,原創@陳利人 ,歡迎大家繼續關注微信公眾賬號“待字閨中”。
相關文章
- 分詞問題;及最大乘積分析分詞
- 最新版本;及加油站分析
- 【演算法拾遺】子陣列的最大乘積演算法陣列
- Leetcode刷題628. 三個數的最大乘積LeetCode
- leetcode-陣列中兩元素的最大乘積(Java)LeetCode陣列Java
- LeetCode每日一題: 三個數的最大乘積(No.628)LeetCode每日一題
- [藍橋杯][演算法提高VIP]最大乘積 貪心 雙指標演算法指標
- [LeetCode] Maximum Product Subarray 求連續子陣列的最大乘積LeetCode陣列
- Elasticsearch7.6.2(目前最新版本)叢集搭建及Head外掛——最詳細安裝及配置Elasticsearch
- Android Sdk版本、Support包版本及常用框架最新版本彙總Android框架
- 顛倒乾坤;及忘我之乘積題的分析
- 周長最長;及找到最大數分析
- 最長等差數列;及子序列分析
- 最終版本
- 在ubuntu上安裝最新穩定版本的node及npmUbuntuNPM
- 螞蟻螞蟻;及周長最長分析
- 找數字;及最長等差數列分析
- 最新訊息稱微軟將在本週推出Win10 2004最終版本微軟Win10
- 翻譯數字串;及最長迴文子串分析字串
- 國外資訊通訊立法和政策最新趨勢及分析
- 升級支援 requests 庫更新:相容最新 urllib3 版本及相關庫
- 中國機器人最新統計資料釋出及分析(附圖)機器人
- 可能是全網最全最新最細的 webpack-tapable-2.0 的原始碼分析Web原始碼
- 最新2.7版本丨DataPipeline資料融合產品最新版本釋出API
- 【建議收藏】2021年底最新安卓面經分析,最終入職得物!安卓
- Ewebeditor最新漏洞及漏洞大全Web
- YOYOW最新版本“繁星”釋出
- Java最新發布版本有哪些變化?Java
- CocoaPods最新版本升級
- OpenStack釋出最新版本Ocata
- [譯]flutter_bloc 最新版本 0.19.0 的最新功能FlutterBloC
- 今日面試題:最長迴文子串;及迴文分割分析面試題
- AI晶片最新格局分析AI晶片
- 最新 HTML BroadcastChannel API 分析HTMLASTAPI
- win10最適合打遊戲的版本 win10最穩定流暢的版本Win10遊戲
- 選擇最穩定的MySQL版本MySql
- springboot最新穩定版本、springcloud對應版本的選擇Spring BootGCCloud
- 最新最完整的省市縣json資料JSON