Algorithm(兩數(shù)相加)
- 描述:給出兩個(gè)非空的鏈表用來表示兩個(gè)非負(fù)的整數(shù)燃逻。其中闷袒,它們各自的位數(shù)是按照 逆序 的方式存儲(chǔ)的坑律,并且它們的每個(gè)節(jié)點(diǎn)只能存儲(chǔ) 一位 數(shù)字。如果霜运,我們將這兩個(gè)數(shù)相加起來脾歇,則會(huì)返回一個(gè)新的鏈表來表示它們的和。您可以假設(shè)除了數(shù)字 0 之外淘捡,這兩個(gè)數(shù)都不會(huì)以 0 開頭藕各。
- 思路:獨(dú)立進(jìn)行算法設(shè)計(jì)的時(shí)候,思維進(jìn)入誤區(qū)焦除,沒能從鏈表的角度來考慮激况,導(dǎo)致在數(shù)據(jù)溢出的時(shí)候沒法通過驗(yàn)證。最終還是采納了題解的解析方法,理解透了后進(jìn)行編碼乌逐,有待加強(qiáng)竭讳。
- 性能:時(shí)間復(fù)雜度O(max(l1.size, l2.size)); 空間復(fù)雜度:O(max(l1.size, l2.size))
- 編碼(java):
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int carryValue = 0;
int currSum = 0;
ListNode resultNode = new ListNode(0);
ListNode moveL1 = l1, moveL2 = l2, moveResult = resultNode;
while (moveL1 != null || moveL2 != null) {
currSum = (moveL1 == null? 0:moveL1.val) + (moveL2 == null? 0:moveL2.val) + carryValue;
carryValue = currSum / 10;
moveResult.next = new ListNode(currSum % 10);
moveResult = moveResult.next;
if (moveL1 != null) moveL1 = moveL1.next;
if (moveL2 != null) moveL2 = moveL2.next;
}
if (carryValue > 0) {
moveResult.next = new ListNode(carryValue);
}
return resultNode.next;
}
Review (基于VuePress的博客構(gòu)建)
介紹:VuePress由兩部分組成:一個(gè)是簡(jiǎn)略的靜態(tài)網(wǎng)站生成器,另一個(gè)是書寫技術(shù)文檔的默認(rèn)主題系統(tǒng)浙踢。它主要來源于支持Vue的子項(xiàng)目的文檔需求绢慢。
基于VuePress生成的每個(gè)頁面都有預(yù)渲染的靜態(tài)HTML,它具有良好的加載性能和友好的搜索引擎洛波。一旦頁面被加載胰舆,Vue將對(duì)其管理并進(jìn)行單頁面處理,
而其他頁面則在需要的時(shí)候進(jìn)行加載蹬挤。工作原理:VuePress網(wǎng)站是由Vue缚窿、Vue Router、webpack驅(qū)動(dòng)焰扳。如果你使用過Vue倦零,在你開發(fā)自定義主體的時(shí)候,你可能會(huì)注意到似曾相識(shí)的開發(fā)體驗(yàn)吨悍。
我們?cè)跇?gòu)建的時(shí)候扫茅,會(huì)根據(jù)應(yīng)用的版本創(chuàng)建服務(wù)端渲染,虛擬訪問每條路徑來渲染相應(yīng)的HTML畜份。這個(gè)方法的靈感來源于Nuxt的nuxt generate命令和其他項(xiàng)目诞帐,
比如:Gatsby欣尼。每個(gè)markdown文件都用markdown-it編譯進(jìn)HTML并作為Vue組件的模板處理爆雹。如果你想嵌入動(dòng)態(tài)的內(nèi)容,這里允許你直接在markdown中使用VUe愕鼓。特性:
1.基于技術(shù)文檔優(yōu)化的內(nèi)置markdown擴(kuò)展
2.markdown文件中使用Vue具備的功能特性
3.Vue驅(qū)動(dòng)的自定義主題系統(tǒng)
4.自動(dòng)生成Service Worker
5.集成Google分析器
6.基于Git的最新時(shí)間更新
7.支持多語言
8.默認(rèn)主題包括:
響應(yīng)式布局钙态;主頁可選;簡(jiǎn)潔的開箱即用搜索功能菇晃;Algolia搜索册倒;自定義導(dǎo)航欄和側(cè)邊欄;自動(dòng)生成Github鏈接和頁面鏈接磺送。
Tip
ES6中擴(kuò)展運(yùn)算符:"..."驻子,引用、組合估灿、拆分等使得代碼看起來相當(dāng)簡(jiǎn)潔崇呵,示例如下:
1.console.log([a,b,b]) ==> a b c
2.let add = (x, y) => x + y
let numbers = [3, 45]
console.log(add(...numbers)) ==> 45 + 3
3.let arr1 = ['a', 'b']
let arr2 = ['c']
let arr3 = ['d', 'e']
[...arr1, ...arr2, ...arr3] ==> ['a', 'b', 'c', 'd', 'e']