LeetCode筆記:386. Lexicographical Numbers

問(wèn)題:

Given an integer n, return 1 - n in lexicographical order.
For example, given 13, return: [1,10,11,12,13,2,3,4,5,6,7,8,9].
Please optimize your algorithm to use less time and space. The input size may be as large as 5,000,000.

思路:

給出一個(gè)整數(shù)n疗我,返回 1 到 n 的詞典順序。
比如南捂,給出13吴裤,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9]。
請(qǐng)優(yōu)化你的代碼來(lái)使用更少的時(shí)間和空間黑毅。輸入范圍會(huì)達(dá)到5000000嚼摩。

思路:

問(wèn)題的關(guān)鍵在于理清“詞典順序”是什么樣的钦讳。

詞典順序就是10比2靠前矿瘦,101比11靠前,110比11靠后愿卒,你可以簡(jiǎn)單的嘗試一下把數(shù)字都轉(zhuǎn)換成字符串?dāng)?shù)組缚去,然后對(duì)字符串?dāng)?shù)組進(jìn)行 Arrays.sort(),就會(huì)得到字符串下詞典順序的數(shù)字琼开。但是這個(gè)方法因?yàn)橛昧伺判蛞捉幔菚?huì)超時(shí)的。

所以我們的做法大致順序如下:

1柜候、如果一個(gè)數(shù)乘以十以后沒有超過(guò)n搞动,那它后面緊挨著的應(yīng)該是它的十倍,比如1,10,100渣刷。
2鹦肿、如果不滿足1,那就應(yīng)該是直接加一辅柴,比如n為13的時(shí)候箩溃,前一個(gè)數(shù)為12,120超過(guò)了n碌嘀,那接著的應(yīng)該是13涣旨。但是這里要注意如果前一個(gè)數(shù)的個(gè)位已經(jīng)是9或者是它就是n了,那就不能加一了股冗,比如 n = 25霹陡,前一個(gè)數(shù)為19,下一個(gè)數(shù)應(yīng)該為2而不是19+1=20。25的下一個(gè)也沒有26了烹棉。
3惠呼、如果不滿足2,比如19后面應(yīng)該接2而不是20峦耘,這時(shí)候應(yīng)該將19除以10再加一剔蹋,比如n=500,399的下一個(gè)應(yīng)該是4辅髓,那就是除以十泣崩,個(gè)位還是9,繼續(xù)除以10洛口,得到3矫付,加一得到4。

將上面的過(guò)程整理成代碼就可以了第焰,循環(huán)的次數(shù)就是n买优,也就是總個(gè)數(shù)。

代碼(Java):

public class Solution {
    public List<Integer> lexicalOrder(int n) {
        List<Integer> res = new ArrayList<Integer>();
        int cur = 1;
        for (int i = 1; i <= n; i++) {
            res.add(cur);
            if (cur * 10 <= n) {
                cur = cur * 10;
            } else if (cur % 10 != 9 && cur + 1 <= n) {
                cur++;
            } else {
                while ((cur / 10) % 10 == 9) {
                    cur = cur / 10;
                }
                cur = cur / 10 + 1;
            }
        }
        return res;
    }
}

合集:https://github.com/Cloudox/LeetCode-Record


查看作者首頁(yè)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挺举,一起剝皮案震驚了整個(gè)濱河市杀赢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湘纵,老刑警劉巖脂崔,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異梧喷,居然都是意外死亡砌左,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門铺敌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)汇歹,“玉大人,你說(shuō)我怎么就攤上這事偿凭〔” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵笔喉,是天一觀的道長(zhǎng)取视。 經(jīng)常有香客問(wèn)我,道長(zhǎng)常挚,這世上最難降的妖魔是什么作谭? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮奄毡,結(jié)果婚禮上折欠,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好锐秦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布咪奖。 她就那樣靜靜地躺著,像睡著了一般酱床。 火紅的嫁衣襯著肌膚如雪羊赵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天扇谣,我揣著相機(jī)與錄音昧捷,去河邊找鬼。 笑死罐寨,一個(gè)胖子當(dāng)著我的面吹牛靡挥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸯绿,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼跋破,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瓶蝴?” 一聲冷哼從身側(cè)響起毒返,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎囊蓝,沒想到半個(gè)月后饿悬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體令蛉,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡聚霜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了珠叔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝎宇。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖祷安,靈堂內(nèi)的尸體忽然破棺而出姥芥,到底是詐尸還是另有隱情,我是刑警寧澤汇鞭,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布凉唐,位于F島的核電站,受9級(jí)特大地震影響霍骄,放射性物質(zhì)發(fā)生泄漏台囱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一读整、第九天 我趴在偏房一處隱蔽的房頂上張望簿训。 院中可真熱鬧,春花似錦、人聲如沸强品。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)的榛。三九已至琼了,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夫晌,已是汗流浹背表伦。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慷丽,地道東北人蹦哼。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像要糊,于是被迫代替她去往敵國(guó)和親纲熏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 【1】7锄俄,9局劲,-1,5奶赠,( ) A鱼填、4;B毅戈、2苹丸;C、-1苇经;D赘理、-3 分析:選D,7+9=16扇单;9+(-1)=8商模;(...
    Alex_bingo閱讀 18,893評(píng)論 1 19
  • 曾經(jīng)有一份美好的愛情放在我的面前我沒有珍惜鄙信。等到失去后才后悔莫及瞪醋。如果可以再對(duì)小李說(shuō)。毛欣想說(shuō)扮碧。這輩子無(wú)緣再牽手趟章。...
    毛欣與小李閱讀 2,613評(píng)論 0 13
  • 一杏糙、實(shí)驗(yàn)?zāi)康?學(xué)習(xí)使用 weka 中的常用分類器,完成數(shù)據(jù)分類任務(wù)蚓土。 二宏侍、實(shí)驗(yàn)內(nèi)容 了解 weka 中 explo...
    yigoh閱讀 8,527評(píng)論 5 4
  • 密秘只比密鋒大6歲,她們姐弟兩人已經(jīng)獨(dú)自生活了6年蜀漆,每個(gè)夜晚和白天谅河,在給密鋒喂完奶粉后,密秘就開始寫詩(shī)确丢,她的詩(shī)總是...
    道道櫻木花道閱讀 544評(píng)論 0 1
  • 上篇寫的是化妝水鲜侥,有的評(píng)寶說(shuō)要平價(jià)的褂始,這個(gè)建議我會(huì)接納,如果還有什么不好的地方請(qǐng)給我指出哦 那么接下來(lái)說(shuō)就是我用過(guò)...
    欣子33閱讀 532評(píng)論 1 3