第二天| 977. 有序數(shù)組的平方位他、209.長度最小的子數(shù)組、 59.螺旋矩陣II

有序數(shù)組的平方

題目鏈接:有序數(shù)組的平方

思路:雙指針法产场,數(shù)組平方的最大值就在數(shù)組的兩端鹅髓,i指向起始位置,j指向終止位置京景,定義一個新數(shù)組result窿冯,和A數(shù)組一樣的大小,讓k指向result數(shù)組終止位置确徙。


class?Solution?{

public:

????vector<int>?sortedSquares(vector<int>&?A)?{

????????int?k?=?A.size()?-?1;

????????vector<int>?result(A.size(),0);

????????for(int?i?=?0,j?=?A.size()?-?1;?i?<=?j;){

????????????if(A[i]?*?A[i]?<?A[j]?*?A[j]){

????????????????result[k--]?=?A[j]?*?A[j];

????????????????j--;

????????????}

????????????else{

????????????????result[k--]?=?A[i]?*?A[i];

????????????????i++;

????????????}

????????}

????????return?result;

????}

};


209.長度最小的子數(shù)組

題目鏈接:長度最小的數(shù)組

思路:滑動窗口醒串,主要確定如下三點(diǎn):

窗口內(nèi)是什么?如何移動窗口的起始位置鄙皇?如何移動窗口的結(jié)束位置芜赌?

窗口就是 滿足其和 ≥ s 的長度最小的 連續(xù) 子數(shù)組。

窗口的起始位置如何移動:如果當(dāng)前窗口的值大于s了伴逸,窗口就要向前移動了(也就是該縮小了)缠沈。

窗口的結(jié)束位置如何移動:窗口的結(jié)束位置就是遍歷數(shù)組的指針佳晶,也就是for循環(huán)里的索引择份。

解題的關(guān)鍵在于 窗口的起始位置如何移動候址。


class?Solution?{

public:

????int?minSubArrayLen(int?target,?vector<int>&?nums)?{

????????int?result?=?INT32_MAX;//設(shè)置窗口最大值

????????int?sum?=?0;?//窗口數(shù)值之和

????????int?i?=?0;//起始位置

????????int?subLength?=?0;//窗口長度

????????for(int?j?=?0;?j?<?nums.size();?j++){

????????????sum?+=?nums[j];

????????????while(sum?>=?target){

????????????????subLength?=?(j?-?i?+?1);

????????????????result?=?result?<?subLength???result?:?subLength;

????????????????sum?-=?nums[i++];//不斷變更子序列起始位置

????????????}

????????}

????????return?result?==??INT32_MAX???0?:?result;

????}

};



59.螺旋矩陣II

題目鏈接:螺旋矩陣Ⅱ

思路:模擬順時針畫矩陣的過程:

填充上行從左到右

填充右列從上到下

填充下行從右到左

填充左列從下到上

由外向內(nèi)一圈一圈這么畫下去偿渡。(注意是左閉右開)


class?Solution?{

public:

????vector<vector<int>>?generateMatrix(int?n)?{

????????vector<vector<int>>?res(n,?vector<int>(n,0));

????????int?startx?=?0,?starty?=?0;//每循環(huán)一個圈的起始位置

????????int?loop?=?n?/?2;//循環(huán)幾次圈

????????int?mid?=?n?/?2;//矩陣中間位置

????????int?count?=?1;//每個空格賦值

????????int?offset?=?1;//控制每一條邊遍歷長度,每次循環(huán)右邊界收縮一位

????????int?i,?j;

????????while(loop?--){

????????????i?=?startx;

????????????j?=?starty;

????????????for(j?=?starty;?j?<?n?-?offset;?j++){

????????????????res[startx][j]?=?count++;

????????????}

????????????for(i?=?startx;?i?<?n?-?offset;?i++){

????????????????res[i][j]?=?count++;

????????????}

????????????for(;?j?>?starty;?j--){

????????????????res[i][j]?=?count++;

????????????}

????????????for(;?i?>?startx;?i--){

????????????????res[i][j]?=?count++;

????????????}

????????????startx++;

????????????starty++;

????????????offset?+=?1;

????????}

????????if(n?%?2){

????????????res[mid][mid]?=?count;

????????}

????????return?res;

????}

};


總結(jié):1械姻、對于排序斑响,數(shù)組的兩端最大枉侧,考慮用雙指針

2官紫、滑動窗口的精髓在于窗口起始位置在變化

3肛宋、螺旋矩陣應(yīng)考慮圈數(shù)、填元素的順序束世,以及考慮中間位置元素是否存在的問題

4悼吱、因?yàn)閿?shù)組的在內(nèi)存空間的地址是連續(xù)的,所以我們在刪除或者增添元素的時候良狈,就難免要移動其他元素的地址。要注意vector 和 array的區(qū)別笨枯,vector的底層實(shí)現(xiàn)是array薪丁,嚴(yán)格來講vector是容器遇西,不是數(shù)組。數(shù)組的元素是不能刪的严嗜,只能覆蓋粱檀。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市漫玄,隨后出現(xiàn)的幾起案子茄蚯,更是在濱河造成了極大的恐慌,老刑警劉巖睦优,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渗常,死亡現(xiàn)場離奇詭異,居然都是意外死亡汗盘,警方通過查閱死者的電腦和手機(jī)皱碘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隐孽,“玉大人癌椿,你說我怎么就攤上這事×庹螅” “怎么了踢俄?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長晴及。 經(jīng)常有香客問我都办,道長,這世上最難降的妖魔是什么抗俄? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任脆丁,我火速辦了婚禮,結(jié)果婚禮上动雹,老公的妹妹穿的比我還像新娘槽卫。我一直安慰自己,他們只是感情好胰蝠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布歼培。 她就那樣靜靜地躺著,像睡著了一般茸塞。 火紅的嫁衣襯著肌膚如雪躲庄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天钾虐,我揣著相機(jī)與錄音噪窘,去河邊找鬼。 笑死效扫,一個胖子當(dāng)著我的面吹牛倔监,可吹牛的內(nèi)容都是我干的直砂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼浩习,長吁一口氣:“原來是場噩夢啊……” “哼静暂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谱秽,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤洽蛀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后疟赊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體郊供,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年听绳,在試婚紗的時候發(fā)現(xiàn)自己被綠了颂碘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡椅挣,死狀恐怖头岔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鼠证,我是刑警寧澤峡竣,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站量九,受9級特大地震影響适掰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荠列,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一类浪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肌似,春花似錦费就、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至固额,卻和暖如春眠蚂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斗躏。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工逝慧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓馋艺,卻偏偏與公主長得像栅干,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捐祠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355

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