- 第一題:在一個(gè)二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序孩哑。請完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組和一個(gè)整數(shù)翠桦,判斷數(shù)組中是否含有該整數(shù)横蜒。
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
if(array.size()!=0)
{
int row = 0;
int col = array[0].size() - 1;
while(row<array.size() && col>= 0)
{
if(array[row][col]==target)
return true;
else if(array[row][col]>target)
--col;
else
++row;
}
}
return false;
}
};
- 第二題:請實(shí)現(xiàn)一個(gè)函數(shù)胳蛮,將一個(gè)字符串中的空格替換成“%20”。例如丛晌,當(dāng)字符串為We Are Happy.則經(jīng)過替換之后的字符串為We%20Are%20Happy仅炊。
class Solution {
public:
void replaceSpace(char *str,int length) {
if(str == NULL || length <= 0)
return;
int originalLength = 0;
int numOfBlank = 0;
for(int i = 0;str[i] != '\0';++i)
{
++originalLength;
if(str[i]==' ')
++numOfBlank;
}
int newLength = originalLength + 2*numOfBlank;
if(newLength > length)
return;
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while(indexOfOriginal >= 0 && indexOfNew > indexOfOriginal)
{
if(str[indexOfOriginal] == ' ')
{
str[indexOfNew --] = '0';
str[indexOfNew --] = '2';
str[indexOfNew --] = '%';
}
else
{
str[indexOfNew --] = str[indexOfOriginal];
}
-- indexOfOriginal;
}
}
};
//i++是后綴運(yùn)算,就是先取出i的值,i再+1;++i是前綴運(yùn)算,就是i先+1,再取i的值。