
剑指offer
wangle965235568
程序员的眼里,不仅有代码和bug,还有诗与远方和妹子
展开
-
剑指offer--从尾到头打印链表(5)
题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值 链表的结点定义如下:struct ListNode{ int m_nkey; ListNode* m_pNext;};//基于循环----用栈来实现void PrintListReversingly_Iteratively(ListNode* pHead){ stack<ListNode*> nodes;原创 2017-11-28 15:36:44 · 169 阅读 · 0 评论 -
剑指offer---打印1到n位的最大数(12)
题目:输入数字n,按顺序打印出从1到最大的n位数。比如输入的是3,则打印1、2、3…….一直打印到999。#include <iostream>#include <string.h>using namespace std;void printNumber(char* number){ int len = strlen(number); bool isBeginning0 = t原创 2017-12-18 19:15:24 · 152 阅读 · 0 评论 -
剑指offer---斐波那契额列(9)
/递归解法#include <iostream>using namespace std;#if 0long long Fibonacci(unsigned int n){ if(n == 0 ) return 0; if(n == 1) return 1; return Fibonacci(n-1) + Fibonacci(n-2);}#endif原创 2017-12-06 17:11:31 · 133 阅读 · 0 评论 -
剑指offer---二进制中1的个数(10)
#include <iostream>using namespace std;int Numberofl(int n){ int count = 0; while(n) { ++count; n = (n-1)&n; } return count;}int main(){ cout<<Numberofl(9)原创 2017-12-06 17:18:29 · 178 阅读 · 0 评论 -
剑指offer---旋转数组中最小的数字(8)
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的逆转。输入一个递增排序的数组的一个逆转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为数组{1,2,3,4,5}的一个旋转,该数组的最小值为1。#include <iostream>using namespace std;int MinInorder(int* arr,int index1,int index2){原创 2017-12-05 10:57:00 · 149 阅读 · 0 评论 -
剑指offer---替换空格(4)
题目:请实现一个函数,把字符串中的每个空格替换成”%20”,例如输入“we are happy”,则输出we%20are%20happy. 时间复杂度为:O(n)#include <iostream>#include <string>using namespace std;//如果字符串的空间不足,则需要重新开辟一个空间来进行处理,这样就比较简单,时间复杂度为O(n)//在此讨论原有字符原创 2017-11-25 17:40:26 · 173 阅读 · 0 评论 -
剑指offer---二维数组中的查找(3)
题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例: 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15 分析:由于该数组的特点,可原创 2017-11-24 20:55:43 · 190 阅读 · 0 评论 -
剑指offer---实现Singleton模式(2)
Singleton模式:只能生成一个实例的类是实现了Singleton模式的类型 快加载:未调用创建对象的函数时,已经为对象分配好内存,以及初始化。class Singleton{public: static Singleton* getmySingleton() { return &mySingleton; }private: S原创 2017-11-23 21:38:17 · 340 阅读 · 0 评论 -
剑指offer---把字符串转换为整数(49)
剑指offer中这个题目没有要考虑进制的问题,也没有让考虑例如:字符串为“wes1234jing”之类的问题,凡是除了‘+’、‘-’、以及数字字符之外的字符都为不合法字符。然而在实际情况中肯定要考虑到进制以及更多的问题。因为在面试过程当中,时间比较短,所以这些问题面试官会规避,单纯的考察你的逻辑思维以及编程的风格。#include <iostream>#include <string>#incl原创 2017-12-02 20:55:20 · 260 阅读 · 0 评论 -
剑指offer---赋值运算符重载函数(1)
题目:如下为CMystring的声明,请为该类型添加赋值运算符重载函数。class CMystring{public: CMystring(char *pData = NULL); CMystring(const CMystring& str); ~CMystring(void); CMystring& operator=(const CMystring& src原创 2017-11-22 18:54:22 · 289 阅读 · 0 评论 -
剑指offer---重建二叉树(6)
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6};二叉树的定义如下:strcut BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; Binary原创 2017-11-30 21:52:20 · 131 阅读 · 0 评论 -
剑指offer---数值的整数次方(11)
题目:实现函数double Power(double base,int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数的问题原创 2017-12-08 19:38:34 · 189 阅读 · 0 评论 -
剑指offer---用两个栈实现队列(7)
题目:用两个栈实现一个队列,队列的声明如下,请实现它的两个函数addendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点。 思想:对stack1,和stack2操作来实现队列的入队和出队。 入队:直接push进stack1中。 出队:如果stack2为空,将stack1中的全部元素依次出栈压入到stack2中,再对stack2进行出栈操作。template原创 2017-11-28 16:39:25 · 198 阅读 · 0 评论 -
在O(1)时间删除链表结点(13)
题目:给定单项链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。//链表的结构如下struct ListNode{ int m_nvalue; ListNode* m_pnext;};void DeleteNode(ListNode** pListHead , ListNode* pTodelete){ if(!pListHead || !pTodel原创 2017-12-18 20:27:34 · 219 阅读 · 0 评论