剑指 offer
Vivian0990308
这个作者很懒,什么都没留下…
展开
-
二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路:从右上方开始查找,当大于该值,则该值对应的列值更大,删除,当小于该值,则删除该值对应的行,以此进行。class Solution { public: bool Find(int target, vector原创 2017-04-23 16:55:50 · 344 阅读 · 0 评论 -
剑指offer:替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution { public: void replaceSpace(char *str,int length) { int len=0; char *p1=str; whi原创 2017-04-24 18:49:00 · 272 阅读 · 0 评论 -
剑指offer:从尾到头打印链表
题目描述 输入一个链表,从尾到头打印链表每个节点的值。 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: vector<int> printListFrom原创 2017-04-24 18:51:24 · 210 阅读 · 0 评论 -
剑指offer:重建二叉树
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 Definition for binary tree struct TreeNode { int val; TreeNode *lef原创 2017-04-24 19:32:12 · 221 阅读 · 0 评论 -
剑指offer:用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution { public: void push(int node) { stack1.push(node); } int pop() { int node; if(stack2.empty())//当栈2为空时 {原创 2017-04-24 19:38:19 · 242 阅读 · 0 评论 -
剑指offer:旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution { public: int minNumberInRotateArr原创 2017-04-24 20:13:22 · 291 阅读 · 0 评论 -
500. Keyboard Row
题意:判断字符串数组中的每个字符串是否是在同一行上 思路:定义键盘字符数组对应的map,记录字符串的第一个字符所在的行,然后匹配下边字符,如果出现不同的val值,则不符合要求class Solution { public: vector<string> findWords(vector<string>& words) { vector<string> res; if(wor原创 2017-04-25 10:22:56 · 306 阅读 · 0 评论