LeetCode6

思路

最初我想用數(shù)學(xué)方法推倒出來(lái)履羞,但是發(fā)現(xiàn)還是有點(diǎn)麻煩的房铭,所以果斷選擇模擬轉(zhuǎn)換過(guò)程还棱。
其實(shí)過(guò)程很簡(jiǎn)單掺出,就是新建n個(gè)Vector徽千,按 1 ~ n 的順序向Vector末尾添加元素苫费,再按n - 1 ~ 2 的順序向Vector末尾添加元素。反復(fù)直到遍歷完字符串双抽。
最后把1 ~ n 個(gè)向量拼接成字符串就可以了百框。

時(shí)間復(fù)雜度分析

一趟遍歷完字符串,所以為O(n)
(直到我看到官方解答用StringBuilder作為每一行元素牍汹,我才知道自己有多l(xiāng)ow)

    public static String convert(String s, int numRows){
        Vector<Vector<Character>> a = new Vector<>();
        for (int i = 0; i < numRows ; i++) {
            a.add(new Vector<>());
        }
        int pointer = 0;
        boolean flag = true;
        while (flag){
            for (int i = 0; i < numRows ; i++, pointer ++) {
                if(pointer >= s.length()){
                    flag = false;
                    break;
                }
               a.get(i).add(s.charAt(pointer));
            }
            for (int i = numRows - 2; i >= 1 ; i --, pointer ++) {
                if(pointer >= s.length()){
                    flag = false;
                    break;
                }
                a.get(i).add(s.charAt(pointer));
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i <numRows ; i++) {
            for (int j = 0; j < a.get(i).size() ; j++) {
                sb.append(a.get(i).get(j));
            }
        }
        return sb.toString();
    }

修改后代碼
(注意一開(kāi)始不用數(shù)組是因?yàn)镴ava不能創(chuàng)建泛型數(shù)組铐维,Vector<Character>[] a = new Vector<Character>[numRows]編譯通不過(guò))

    public static String convert(String s, int numRows){
         StringBuilder[] a = new StringBuilder[numRows];
        for (int i = 0; i < numRows; i++) {
            a[i] = new StringBuilder();
        }
        int pointer = 0;
        boolean flag = true;
        while (flag){
            for (int i = 0; i < numRows ; i++, pointer ++) {
                if(pointer >= s.length()){
                    flag = false;
                    break;
                }
               a[i].append(s.charAt(pointer));
            }
            for (int i = numRows - 2; i >= 1 ; i --, pointer ++) {
                if(pointer >= s.length()){
                    flag = false;
                    break;
                }
                a[i].append(s.charAt(pointer));
            }
        }
        StringBuilder sb = new StringBuilder();
        for (StringBuilder x:
             a) {
            sb.append(x.toString());
        }
        return sb.toString();
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市柑贞,隨后出現(xiàn)的幾起案子方椎,更是在濱河造成了極大的恐慌,老刑警劉巖钧嘶,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棠众,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡有决,警方通過(guò)查閱死者的電腦和手機(jī)闸拿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)书幕,“玉大人新荤,你說(shuō)我怎么就攤上這事√ɑ悖” “怎么了苛骨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)苟呐。 經(jīng)常有香客問(wèn)我痒芝,道長(zhǎng),這世上最難降的妖魔是什么牵素? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任严衬,我火速辦了婚禮,結(jié)果婚禮上笆呆,老公的妹妹穿的比我還像新娘请琳。我一直安慰自己,他們只是感情好赠幕,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布俄精。 她就那樣靜靜地躺著,像睡著了一般榕堰。 火紅的嫁衣襯著肌膚如雪嘀倒。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音测蘑,去河邊找鬼。 笑死康二,一個(gè)胖子當(dāng)著我的面吹牛碳胳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播沫勿,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挨约,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了产雹?” 一聲冷哼從身側(cè)響起诫惭,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔓挖,沒(méi)想到半個(gè)月后夕土,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘟判,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年怨绣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拷获。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡篮撑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匆瓜,到底是詐尸還是另有隱情赢笨,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布驮吱,位于F島的核電站茧妒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏糠馆。R本人自食惡果不足惜嘶伟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望又碌。 院中可真熱鬧九昧,春花似錦、人聲如沸毕匀。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)皂岔。三九已至蹋笼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剖毯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工圾笨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人逊谋。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓擂达,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親胶滋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子板鬓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

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

  • 前言 最先接觸編程的知識(shí)是在大學(xué)里面俭令,大學(xué)里面學(xué)了一些基礎(chǔ)的知識(shí),c語(yǔ)言部宿,java語(yǔ)言抄腔,單片機(jī)的匯編語(yǔ)言等;大學(xué)畢...
    oceanfive閱讀 3,095評(píng)論 0 7
  • 網(wǎng)絡(luò)中四 1月16日 持續(xù)分享第187天 我想在我個(gè)人成長(zhǎng)的歷程中窟赏,昨天應(yīng)該是一個(gè)值得紀(jì)念的日子妓柜。因?yàn)槲蚁嘈艑?duì)我來(lái)...
    xfsunshine閱讀 215評(píng)論 0 2
  • 1棍掐、(91)奇跡只顯現(xiàn)于光明之中。 我無(wú)法在黑暗中看見(jiàn)拷况。愿圣潔與真理之光照亮我的心靈作煌,愿我看見(jiàn)自己心內(nèi)的純潔無(wú)罪。...
    鞠蘭波閱讀 144評(píng)論 0 0
  • 有一個(gè)商人赚瘦,他盡管有許多的財(cái)富粟誓,可是,他從來(lái)也沒(méi)有感到過(guò)快樂(lè)起意。 看見(jiàn)小孩天真的笑臉鹰服,看見(jiàn)農(nóng)人單純的笑容,他覺(jué)得自己...
    凈點(diǎn)心閱讀 538評(píng)論 0 1
  • 把學(xué)生當(dāng)自己的孩子揽咕,把學(xué)生當(dāng)最好的朋友悲酷。 既然是孩子,有錯(cuò)誤就得批評(píng)亲善;既然是朋友设易,有困難就得幫助! 只有這樣在學(xué)生...
    郭寶江_科學(xué)靠譜閱讀 226評(píng)論 0 0