题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int row = array.size();
int col = array[0].size();
if(row > 0 && col > 0){
int i = 0;
int j = col - 1;
while(j > -1 && i < row){
if(target > array[i][j]){
i++;
}else if(target < array[i][j]){
j--;
}else{
return true;
}
}
}
return false;
}
};
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
class Solution {
public:
void replaceSpace(char *str,int length) {
int newLen = 0;
int oldLen = 0;
while(str[oldLen] != '\0'){
if(str[oldLen] == ' '){
newLen += 2;
}
oldLen++;
}
newLen += oldLen;
if(newLen < length){
while(oldLen > -1 && newLen > oldLen){
if(str[oldLen] != ' '){
str[newLen--] = str[oldLen];
}else{
str[newLen--] = '0';
str[newLen--] = '2';
str[newLen--] = '%';
}
oldLen--;
}
}
}
};
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
ListNode *temp = head;
stack<int> tempStack;
vector<int> result;
while(temp != NULL){
tempStack.push(temp -> val);
temp = temp -> next;
}
while(!tempStack.empty()){
result.push_back(tempStack.top());
tempStack.pop();
}
return result;
}
};