question 1:字符串統(tǒng)計(jì)

我的答案:
主要問題在統(tǒng)計(jì)連續(xù)的L,我用了一個(gè)標(biāo)志位來記錄連續(xù)的L

別人的做法:
更簡單的做法是直接查找有沒有字符串 'LLL'

question 2:字符串翻轉(zhuǎn)?

答案:

question 3:修改一個(gè)數(shù)使得列表遞增
給定一個(gè)列表,能不能只修改里面的一個(gè)數(shù)而使得整個(gè)列表遞增

我的答案:錯(cuò)誤
統(tǒng)計(jì)列表中的下降次數(shù)

別人的答案:
當(dāng)發(fā)現(xiàn)前面的數(shù)比后面的數(shù)大的時(shí)候,有兩種解決方法。第一種是將前面大的數(shù)改成不比后面的數(shù)大的數(shù)(那么這個(gè)數(shù)的最大值就是后面的數(shù)),第二種是將后面的數(shù)改成不比前面的數(shù)小的數(shù)(這個(gè)數(shù)的最小值是前面的數(shù))
假如改第一個(gè),就必須是可能值的最大值,這樣才不會(huì)出現(xiàn)前面的數(shù)比改過后的數(shù)大。
假如改第二個(gè),就必須取可能值的最小值,這樣才不會(huì)使得這個(gè)改的數(shù)比后面的數(shù)大
所以只修改這么一次,再檢查兩種修改策略,就知道是否可行了

question 4:計(jì)算二叉樹的直徑
二叉樹的定義為:兩個(gè)節(jié)點(diǎn)間的距離的最大值

別人的答案:
最大的長度一定是某個(gè)節(jié)點(diǎn)的左邊最大子節(jié)點(diǎn)長度+右邊最大子節(jié)點(diǎn)長度,所以我們在計(jì)算子樹長度的時(shí)候可以記錄下這個(gè)最大值

question 5:求兩個(gè)用字符串表示的整數(shù)的和
這個(gè)問題要求不用內(nèi)置方法來完成,怎么樣使得速度快點(diǎn)?

我的方法:很慢 1200ms 1%左右,差點(diǎn)超時(shí)過不了
這個(gè)思路是先將字符串轉(zhuǎn)換成整數(shù),完成加法,再將整數(shù)轉(zhuǎn)換成字符串。這個(gè)方法還是比較繞的

別人的方法改進(jìn): 45ms,95%
我們考慮自己做加法的時(shí)候,肯定不會(huì)像上面這樣做。
應(yīng)該是按位相加,所以可以直接在一個(gè)循環(huán)內(nèi)完成加法
