![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
offer。。。
文章平均质量分 68
apsara-jueying
阿里云菜鸟攻城狮
展开
-
剑指offer面试题5(链表反序输出 用递归或者栈)
瞬间就写完了。就是注意指针就行了#include#includeusing namespace std;struct Node{ int data; Node * next; Node(int i) { data=i; next=NULL; }};void reverseinput(Node * p)原创 2013-04-25 16:09:37 · 660 阅读 · 0 评论 -
剑指offer面试题33把数组排成最小的数,就是确定sort规则就可以了
/*下午亮点阿里云二面,一夜办梦办醒满脑子都是海量数据。。今天早早来图书馆 csdn居然挂掉 上不去了。。。还是再搞一道题目吧这个题就是给一个数组 用数组里面的所有数字拼起来 能得到的最小的数字是什么比如 3 32 321 得到是321323这题就想排序 就行了 排序规则 一个数字在另一个数字前面。把两个数字连起来 。。哪个方前面时小 就是哪个在前面。最后 书上还给了一段证明。就是原创 2013-05-07 10:48:24 · 534 阅读 · 0 评论 -
剑指offer面试题31连续子数组的最大和DP 做过N多次了
这个真没什么好说的了 。。本来都不想写了 为了博客的连贯吧。。还有注意写DP/*这个题目 如果面试碰到写代码 就要写DP的 这样一看就有DP基础*/#include#includeusing namespace std;const int inf=1<<30;int FindGreatestSumOfSubArray(int * arr,int len){ int *原创 2013-05-06 18:45:36 · 518 阅读 · 0 评论 -
剑指offer面试题29 数组中出现次数超过一半的数字两种方法百度面试题
/*这题是李舵的百度面试题啊,终于看到这里了。第一种是基于partition算法如果数组有序 那么中间元素肯定是要找的因为数量超过一半啊我们有成熟的o(n)的算法求第k大的数 所以球第n/2大的数就行了*/#include#include#include#includeusing namespace std;int RandInRange(int a,int b){原创 2013-05-05 21:11:20 · 691 阅读 · 0 评论 -
剑指offer面试题28字符串的所有排列permutation
/*C++ 里面有这个函数 我也写过这道题目以前是数字 这里是字符而已这里用了一种新的思想 递归 交换第一个字符然后 后面做全排列*/#include#include#includeusing namespace std;void Permutation(char * str, char * begin){ if(*begin=='\0') cout<<str<原创 2013-05-05 16:58:05 · 582 阅读 · 0 评论 -
剑指offer面试题27BST转换为有序双向链表
/*这题目一看就是要递归 不能创建新节点这到题目应该是我做这本书目前位置 最卡的一道题了。。想了好久。但也怪自己浮躁把。主要思想convert函数 main汉斯调用的函数 主要就是创建last变量 然后 最后返回头指针convertnode 是重要的其实主要过程可以理解未一次中序遍历bst 得到有序的序列并且联系每次输入一个指针 先把左边的弄好 然后last记录了左边的最后 再把las原创 2013-05-05 16:36:42 · 669 阅读 · 0 评论 -
剑指offer面试题13在O(1)时间复杂度内删除单链表的一个节点
今天遇上奇怪的事情了。。codebloks运行不了 说sh: .....upexpected ( 我找了半天bug 最后发现竟然连helloword程序都执行不了后来我觉得 会不会是 project命名的里 O(1) 然后试着把括号去掉。。居然就行了 后来又建工程加上括号 又是那个错。。太尼馬诡异了。。。还有就是 linux里面 EOF 是ctrl+d 不是C 记得windows里是原创 2013-04-30 17:13:55 · 717 阅读 · 0 评论 -
剑指offer面试题12 打印从1到最大n位的所有数(大数,递归)
/*初看觉得很水 不过就是个大数么 但是突然发现很有收获 就是自己想*/#include#include#includeusing namespace std;bool NumberAdd(char * num)//不是最后一个数返回0 继续加 否则返回1 表示到了头{ bool isOverflow= false;//判断是不是到了最后一个数字 只要看最高位是不是有原创 2013-04-30 16:17:59 · 593 阅读 · 0 评论 -
剑指offer面试题11 编写pow函数(输入底数 指数 正 0 负的情况 和高效乘方)
#include#include#includeusing namespace std;/*这一章开始进入代码规范性了 主要是容错 边界处理 变量和函数的命名以后一定要记得 变量和函数名 命名看出意义 直接用全部英文单词命名,单词首字母大写出错时的三种处理方式第一 返回值 windows 很多API 都这么干 返回0 正常 但是这样有缺点就是不能通过返回值表示得到的结果第二 全局原创 2013-04-27 19:33:49 · 750 阅读 · 0 评论 -
剑指offer面试题10 二进制中1的个数(位运算专题)
#include#includeusing namespace std;// !!!!!!!!!!!!非常重要!!把一个整数和这个整数减去1后的结果做与运算 得到的是把这个整数最右边的1变成0后的结果//如果输入负数 输出补码表示的 有多少个1//如果n是负数 n&(n-1) 同样是把n最右边的1变成0//这里 是求一个整数的二进制补码表示中 1的个数int NumberOf1(in原创 2013-04-27 19:26:37 · 562 阅读 · 0 评论 -
剑指offer 面试题8 旋转数组的最小数字 (旋转数组就是把有序数组后面一部分挪到前面)
/*题意是 给出旋转数组 就是把一个有序的数组 后面取出n个元素 放到前面。现在要找出最小的元素 o(n) 太简单了 肯定不行。想法还是二分数组 我们每次找到一个mid 如果这里的数比前面的大 说明最小的肯定在后部分如果比后面的小 说明 肯定在前半部分还有注意两种特殊情况 就是 数组本来有序还有一种 就比如1 1 1 0 1这样的。start 和 end 还有mid 指向的都相等的情原创 2013-04-27 19:24:17 · 602 阅读 · 0 评论 -
剑指offer 面试题9 递归 非波那且数列
/*这实在没什么好敲的。这里主要讲的几个问题第一个 面试时如果没有特殊要求 就递归第二 非波那且 循环不用开数组 只要记录前两个就行了。其实也不是完全没价值 如果让我 我就开数组了。开尼馬数组干蛋啊 只球fn还有这里有个题目 挺有意思。。。都是和非波那且有关系的1青蛙每次可以跳一个台阶 或者两个 问到第n台阶多少种方法 这个早就知道 就是非波那且的fn2如果青蛙每次可以跳任意原创 2013-04-27 19:26:00 · 657 阅读 · 0 评论 -
剑指offer面试题7 两个栈实现队列和template的应用
这就很简单了 这里还提到用两个队列实现栈 以前看过那本书说不能 其实完全可以啊插入队列 就找有元素的队列插入 删除 就把队列除了最后一个都移动到另一个队列然后pop最后一个。这个两个栈实现一个队列么 挺简单的 早就看过了 但是很久没敲过 模板类的东西了 就是template#include#include#includeusing namespace std;原创 2013-04-25 21:05:17 · 681 阅读 · 0 评论 -
剑指offer 面试题6 (根据前序和中序 构建二叉树)
这题 浪费了不少时间。。不知道自己现在怎么了。。遇到文件 就总要逃避一下。。唉。。总的来说非常经典的题了。。就是构建函数 那 尤其是都用指针 太经典了/*给出 两个数组 前序和中序 要建立二叉树 返回root节点。。本来不难的题结果自己看了半天。。唉。。好久不写二叉树了。*/#include#include#include#includeusing namespace原创 2013-04-25 20:38:18 · 643 阅读 · 0 评论 -
剑指offer面试题37 两个链表的第一个公共节点
/*彻夜未眠,因为牙疼。自己性格最大的问题,拖延。我不知道从什么时候起。现在等媳妇起床去修牙这颗牙 两年前就该修了。我拖到今天。期间痛苦了很多次 每次第二天不疼了 想想算了凡事尽早这本书快做完了,这道题也很熟悉了单链表 只要有一个公共节点 后面就全是一样的了所以书中说 保存两个栈 找到最后一对弹出节点相等的 就是第一个。我一想 这样白浪费两个栈的空间复杂度啊后面果然就提了更原创 2013-05-09 19:40:59 · 565 阅读 · 0 评论