标签:数组 void list solution ++ offer 完成 result bool
1、在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
1 class Solution { 2 public: 3 bool Find(int target, vector<vector<int> > array) { 4 5 int row = (int)array.size(); 6 int col = (int)array[0].size(); 7 if (row == 0 || col == 0) 8 return false; 9 if (target < array[0][0] || target > array[row - 1][col - 1]) 10 return false; 11 int i = row - 1; 12 int j = 0; 13 while (i >=0 && j <col) 14 { 15 if (array[i][j] > target) 16 { 17 i--; 18 } 19 else if (array[i][j] < target) 20 { 21 j++; 22 } 23 24 else 25 26 return true; 27 28 } 29 return false; 30 } 31 };
2、请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
1 class Solution { 2 3 public: 4 void replaceSpace(char *str,int length) { 5 int i=length-1,j,count=0; 6 while(i>=0){ 7 if(str[i]==‘ ‘){ 8 for(j=length;j>=i;j--){ 9 str[j+2]=str[j]; 10 } 11 str[i]=‘%‘; 12 str[i+1]=‘2‘; 13 str[i+2]=‘0‘; 14 length+=2; 15 } 16 i--; 17 } 18 } 19 20 21 };
3、输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
1 class Solution { 2 public: 3 vector<int> printListFromTailToHead(ListNode* head) { 4 vector <int> result; 5 stack<int> arr; 6 ListNode* p=head; 7 while(p!=NULL) 8 { 9 arr.push(p->val); 10 p=p->next; 11 } 12 int len=arr.size(); 13 for(int i=0;i<len;i++) 14 { 15 result.push_back(arr.top()); 16 arr.pop(); 17 } 18 return result; 19 20 21 } 22 };
标签:数组 void list solution ++ offer 完成 result bool
原文地址:https://www.cnblogs.com/yksgzlyh/p/10665561.html