資料結構4 陣列與字串

2021-10-03 19:30:57 字數 2871 閱讀 5781

list item

動態陣列vector的使用

好難好難,一臉懵逼.

以對角線入手進行觀察:

vector<

int>

finddiagonalorder

(vector

int>>

& matrix)

;// 矩陣行列;k用於控制對角線行數的的奇偶

int m = matrix.

size()

, n = matrix[0]

.size()

, r =

0, c =

0, k =0;

vector<

int>

res(m * n)

;//結果

vector

int>> dirs,}

;for

(int i =

0; i < m * n;

++i)

//遇到下邊界

if(c >= n)

//遇到右邊界

if(r <0)

//遇到上邊界

if(c <0)

//上到左邊界

}return res;

}

想想一下你在開車,碰到指示牌就轉向…你遇到指示牌後必須調整該指示牌的下乙個位置。

還需注意:當列數大於行數的時候,可能會遇到錯誤的轉向,比如3*5的矩陣,在1,1位置會錯誤轉上。

因而採用pair陣列來記錄當前的方向,只有當當前方向和路標條件吻合順時針走法時才做出相應調整。

over!

class solution 

; pair<

int,

int>

coor(0

,0);

//當前座標

flag last_flag

(_right)

;//當前狀態

for(

int i=

0;i)else

if(coor==left && last_flag==_down)

else

if(coor==up && last_flag==_left)

else

if( coor==right && last_flag==_up)

coor.first +

= velocity.first;

coor.second +

= velocity.second;

}return result;}}

;

寫到這裡感覺自己的做題方式有問題,經常陷入個人思考,而現在段位還比較低…所以感覺挺浪費時間的,畢竟不久也容易忘記。不如先參考別人的思路,然後自己寫**。以後再溫習溫習。

言歸正傳,這題就找規律,第i行具有i個數,並且每一行都是對稱的,因而可以利用雙指標進行優化。

res[i][j]=res[i-1][j-1]+res[i-1][j];注意i和j的定義和陣列邊界即可。

vector

int>>

generate

(int numrows)

} result.

push_back

(rowtemp);}

return result;

}

// 字串與數字的轉換

// created by wbzhang on 2020/3/12.

// 摘自部落格:

#include

#include

#include

#include

#include

using namespace std;

intmain()

還有通過ascii進行字元和整數之間的轉換

// 單個字元轉數字

char s=

'9';

int nums =

int(s-

'0')

;// 0的ascii碼是48

//單個數字轉字元

int num =9;

char numstr = num+

'0';

很簡單的題,但是我的做法太繁瑣了,主要我沒用substr。還是來學習一下大神的解答~

解法1:這個第一行好評!這種寫法舒適啊。substr(ind,length)作切片當索引加長度超出陣列長度時,會返回索引到陣列最後乙個元素,而不必擔心越界。沒啥可說的了…

string longestcommonprefix

(vector

& strs)

}return r;

}

解法2:第j(j>1)個字串的第i個字元與第乙個字串的的第i個字元不同時,返回此時對第乙個字串的切片。

題解:

1)雙指標法:取首尾指標p和q,如果p與q之間的總和p和q的大小,若*p>=*q,則q–;否則p++;

直到p==q或者兩者之間的和

《資料結構》 4陣列和字串

下標為i 0 iloc arrname i loc arrname 0 i sizeof elemtype 0 i陣列元素arrname i j 的儲存位址loc arrname i j 為 loc arrname i j loc arrname 0 0 i n j sizeof elemtype ...

資料結構 陣列,字串

陣列 字串是兩種最基本的資料結構,使用連續記憶體分別存數字和字元,並按照順序儲存。str indexofnew str indexoforiginal str indexofnew str indexoforiginal indexofnew bool duplicate int numbers,i...

資料結構與演算法 字串

判斷乙個串是不是回文串,往往要分開編寫,造成 的拖沓 int longestpalindrome const char s,int n return max void longestpalindrome test 上面的迴圈中,對於回文長度本身的奇偶性,我們進行區別處理。這樣有點拖沓。我們根據乙個簡...