順序:
1.先自己敲代碼發(fā)現(xiàn)不會(huì)
2.看思路題解,不要看具體代碼
3.再敲,看能不能通過(guò),找問(wèn)題
4.發(fā)現(xiàn)還是不想,對(duì)比看具體代碼
我們來(lái)舉一個(gè)Java的例子,例如: int[][] rating = new int[3][4]; , 這個(gè)二維數(shù)組在內(nèi)存空間可不是一個(gè) 3*4 的連續(xù)地址空間
看了下圖,就應(yīng)該明白了:
所以Java的二維數(shù)組在內(nèi)存中不是 3*4 的連續(xù)地址空間,而是四條連續(xù)的地址空間組成!
題目鏈接:https://leetcode.cn/problems/binary-search/
想法:
之前自己一直用的是C刷力扣,對(duì)于C++還不太熟悉,可以嘗試敲一下,再?gòu)?fù)習(xí)一下二分法。
錯(cuò)誤:
1.命名與空格寫(xiě)法不太熟練,將!=符號(hào)中間加了空格,導(dǎo)致出錯(cuò)
2.在for循環(huán)內(nèi)部命名了int i=0;但是在for循環(huán)外使用了i,導(dǎo)致出錯(cuò)
3.不熟需C++容器類(lèi)型數(shù)組用法,導(dǎo)致數(shù)組越界,可以復(fù)習(xí)整理一下C++容器類(lèi)型
4.對(duì)于二分法不熟悉,可以用暴力法用C遍歷得到
5.第二種情況的為else if,不是if
文章講解:https://programmercarl.com/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.html
視頻講解:https://www.bilibili.com/video/BV1fA4y1o715
27. 移除元素想法:
讀錯(cuò)題了,以為是將長(zhǎng)度返回去
錯(cuò)誤:
1.數(shù)組范圍出現(xiàn)問(wèn)題:在刪除元素后,將后面元素移動(dòng)到前面來(lái)時(shí),沒(méi)有注意nums[j]=nums[j+1];此時(shí)要使得j+1不越界應(yīng)該使j+1
3.對(duì)數(shù)組范圍和整個(gè)算法的思想過(guò)程不清晰,導(dǎo)致出現(xiàn)錯(cuò)誤
4.不會(huì)用快慢指針?lè)?,只?huì)暴力解法
5.nums[slow]此時(shí)slow必須初始化?。?/p>
題目鏈接:https://leetcode.cn/problems/remove-element/
文章講解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html
視頻講解:https://www.bilibili.com/video/BV12A4y1Z7LP
暴力解法
int removeElement(int* nums, int numsSize, int val){int i,j;
for(i=0;iif(nums[i]==val)
{for(j=i;jnums[j]=nums[j+1];
} numsSize--;
i--;
}
}
return numsSize;
}
雙指針?lè)戳硪黄恼略斀?br />
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧