2019-02-24-算法-进化
生活随笔
收集整理的這篇文章主要介紹了
2019-02-24-算法-进化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
題目描述
將一個給定字符串根據(jù)給定的行數(shù),以從上往下、從左到右進行 Z 字形排列。
比如輸入字符串為 “LEETCODEISHIRING” 行數(shù)為 3 時,排列如下:
之后,你的輸出需要從左往右逐行讀取,產(chǎn)生出一個新的字符串,比如:“LCIRETOESIIGEDHN”。
請你實現(xiàn)這個將字符串進行指定行數(shù)變換的函數(shù):
示例 1:
輸入: s = "LEETCODEISHIRING", numRows = 3 輸出: "LCIRETOESIIGEDHN"示例 2:
輸入: s = "LEETCODEISHIRING", numRows = 4 輸出: "LDREOEIIECIHNTSG" 解釋:L D R E O E I I E C I H N T S G我的解決方案
使用坐標(biāo)法,建立x軸、y軸,計算每個字符所處的位置
二維坐標(biāo):
y:處于多少行
x:每行元素的相對位置
改進方案
本以為此算法除了建立二維數(shù)組,浪費一部分空間之外,時間復(fù)雜度很難優(yōu)化了。看了參考答案之后,豁然開朗,原來,不必計算二維坐標(biāo)值,每行元素的位置,在從左至右遍歷的時候,就已經(jīng)有序了。只需要記錄元素在第幾行就可以了。
改進后的算法:
代碼邏輯更加清晰,更加便于維護,并且減少了部分運算量,執(zhí)行速度提高了近一倍。
持續(xù)精進,加油!
總結(jié)
以上是生活随笔為你收集整理的2019-02-24-算法-进化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 桃花水的功效与作用、禁忌和食用方法
- 下一篇: 2019-02-25-算法-进化