1.二維陣列查詢
在乙個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。
思路:二維陣列有序
class solution
else if(array[i][j]補充:vector 陣列
1.定義和初始化陣列
int a = ;
int b[3] = ;
2.向量(c++中陣列和vector
)c++中vector為類模板。vector是型別相同的物件的容器,vector的大小可以變化,可以向陣列中增加元素。
vectorarray; //array 型別是t :int float double
vectorv1; //v1為空,執行預設初始化
vectorv2(v1); //v2中包含v1所有元素的副本
vectorv2=v1; //等價於v2(v1)
vectorv3(n,val); //v3中包含n個重複元素,每個元素的值都是val
vectorv4(n); //v4包含n個重複執行了值初始化的物件
vectorv5; //包含初始化元素個數,每個元素被對應的賦予相應的值
vectorv5=; //等價v5
vectorv1,只用預設初始化時,不能通過下標進行新增元素。
vectorv1(n),可以通過下標進行新增元素。 v1[0] = 0;
向vector向量中新增物件:
vectorv;
for(int i=0;i < 3;++i)
size指vector容器當前擁有的元素個數
一次性指定外層vector 大小
v.resize(n, vector(m));
#include#includeusing namespace std;
class solution
else if(arr[i][j]v1(4);
v1[0] = 0;
v1[1] = 1;
v1[2] = 2;
v1[3] = 3;
for (int i = 0; i < 4; i++)
vector>array(4, vector(4)); //定義乙個4*4的二維陣列
cout << array.size()<(3) 包含3個元素的向量
cout << array[0].size() << endl;//向量的列數
int n = array.size();
int m = array[0].size();
//給陣列元素賦值
array[0][0] = 1;
array[0][1] = 2;
array[0][2] = 3;
array[0][3] = 4;
array[1][0] = 2;
array[1][1] = 3;
array[1][2] = 6;
array[1][3] = 7;
array[2][0] = 3;
array[2][1] = 4;
array[2][2] = 7;
array[2][3] = 8;
array[3][0] = 5;
array[3][1] = 6;
array[3][2] = 9;
array[3][3] = 10;
for (int i = 0; i < n; i++) }
solution s;
cout << s.find(9, array);
return 0;
}
2.思路:
a,從前往後,字元不斷後移
b,從後往前,需要知道空間大小
class solution
else
}//cout << str << endl;
}};
測試:特別注意空格的位置,在開頭,中間 ,結尾 三種情況都需要測試
#includeusing namespace std;
void respace(char *str, int length)
else
} cout << str << endl;
}void main()
3.兩個棧實現佇列
問題:用兩個棧來實現乙個佇列,完成佇列的push和pop操作。 佇列中的元素為int型別。
解釋:含義:1. 棧是一種線性儲存結構;
1.1特點:a.先進後出(filo);b.只能在棧頂操作(插入和刪除);
1.2 a.棧頂和棧底:棧頂允許元素進行插入和刪除操作;另一端叫棧底;
b.壓棧:元素的插入;(入棧)
c.出棧:元素的刪除。
1.3 操作
#includestacks;
s.empty(); //如果棧為空則返回true, 否則返回false;
a.入棧push
s.push();
b.出棧pop
s.pop();
c.棧的大小
s.size();
d.棧底元素
s.top();
#include#includeusing namespace std;
int main()
cout << "size is " << mystack.size() << endl;
while (!mystack.empty())
cout <<"結束!!!" <2.佇列
劍指offer程式設計
二維陣列中的查詢 題目描述 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,...
劍指offer 程式設計題
輸入兩個整數序列,第乙個序列表示棧的壓入順序,請判斷第二個序列是否可能為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的乙個彈出序列,但4,3,5,1,2就不可能是該壓棧序列的彈出序列。注意 這兩個序列的長度是相等的 ...
javascript劍指offer程式設計練習 4
題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。function treenode x function printfromtoptobottom root let queue queue.push root let result while queue.length if node...