剑指offer

Posted yksgzlyh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer相关的知识,希望对你有一定的参考价值。

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 };

 

以上是关于剑指offer的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer(第 2 版)完整题解笔记 & C++代码实现(LeetCode版)

LeetCode(剑指 Offer)- 14- I. 剪绳子

LeetCode(剑指 Offer)- 14- I. 剪绳子

剑指offer——第二十九天(动态规划“困难”)

剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子 剑指 Offer 40. 最小的k个数

剑指 offer 刷题记录