
剑指offer
yrc_Note
一个努力从测试转开发的小老弟
展开
-
剑指offer——二维数组的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该函数。思路:我们根据已经排好序这个出发点出发。首先待查元素x与二维数组b最右上角比较,如果x<b那么这一列都肯定比待查元素x大,所以可以删除这一列,缩小我们的查找范围。如果x>b,那么x肯定比这一行的所有元素都大,所以删除这一行,最后,如原创 2017-09-13 09:14:02 · 338 阅读 · 0 评论 -
剑指offer——替换空格&合并数组
题目:请实现一个函数,把字符串中的每个空格替换成”20%”。例如输入”We are happy.”,则输出”We%20are%20happy.”。思路,从后往前替换,防止一个字符移动多次。减少时间复杂度算法实现#include<iostream>using namespace std;void func1(char * desc, char * src){ int i = 0;原创 2017-09-13 09:24:13 · 432 阅读 · 0 评论 -
剑指offer——从尾到头打印链表
题目:输入一个链表的头结点,从尾到头反过来打印出每个节点的值。说实话,我最开始的思路是,定义一个辅助数组,将这个链表的值依次存入到数组中去,压根就没打算用栈这个数据结构的。我感觉两个效率差不多吧。有想法的通知麻烦指出来。算法实现#include <iostream>#include<stack>using namespace std;struct Node{ int val;原创 2017-09-13 09:33:19 · 289 阅读 · 0 评论 -
剑指offer——赋值运算符函数
#include<iostream>using namespace std;class String{public: String(char * pData = NULL); String(const String& str); ~String(); String& operator=(const String& str); void print();原创 2017-09-08 17:29:59 · 384 阅读 · 0 评论 -
剑指offer——数组名与指针的区别
在C/C++中,数组与指针相互关联又有区别的两个概念。当我们声明一个数组时,其数组名字也是一个指针,该指针指向数组的第一个元素。我们可以用一个指针来访问数组。但需要注意的是,C/C++没有记录了数组的大小(指的是C/C++中的指针变量没有记录数组的大小),因此用指针来访问数组的元素时,我们要确保没有超出数组的边界。咋们举个栗子#include <iostream>using namespace s原创 2017-09-11 20:24:31 · 412 阅读 · 0 评论