剑指offer编程
文章平均质量分 61
qq_15288217
这个作者很懒,什么都没留下…
展开
-
剑指offer编程题——03 二维数组中的查找
// 二维数组中的查找/* 1 2 8 9 2 4 9 12 4 7 10 13 6 8 11 15*/#include <iostream>#define LEN 4using namespace std;bool SearchKey(int a[][LEN], int key){ bool flag = false; if (a == NULL)...原创 2018-03-16 14:21:36 · 156 阅读 · 0 评论 -
剑指offer编程题——10 二进制中1的个数
#include <iostream>using namespace std;/* 输入一个数N,求它的二进制中的1的个数 ①:每次左移N,做N & 1运算; ②:每次右移1,做N & new1运算; ③:每次做 N= N & (N-1)运算,会把最右边的1变成0*/int NumberOf1_1(int n){ //不可取 int cnt ...原创 2018-03-16 14:48:33 · 168 阅读 · 0 评论 -
剑指offer编程题——09 斐波那契数列以及相关问题
#include <iostream>using namespace std;/* 高效的斐波那契的循环式解法 递归式缺点:层数太多会溢出,计算重复,效率低*/long long FibonacciInCycle(unsigned n){ int result[2] = { 0, 1 }; if (n < 2) return result[n]; long...原创 2018-03-16 14:46:23 · 252 阅读 · 0 评论 -
剑指offer编程题——08_2 堆排序的头文件
/*最大堆定义*/#include <iostream>using namespace std;class MaxHeap{private: int size; //最大堆的元素数目 int * array; //最大堆数组的首地址指针public: MaxHeap(int array[], int n); //用已有数组初始化一个最大堆 void buildHeap(); //...原创 2018-03-16 14:43:19 · 247 阅读 · 0 评论 -
剑指offer编程题——08_1 几种典型的排序算法实现
/* 几种典型的排序算法*/#include <iostream>#include "MaxHeap.h" //包含进堆的头文件using namespace std;//快速排序void quicksort(int a[], int low, int high){ if (low >= high){ return; } int first = low;...原创 2018-03-16 14:41:21 · 261 阅读 · 0 评论 -
剑指offer编程题——08 旋转数组中的最小数字
//寻找旋转数组中的最小值#include <iostream>#include <exception>using namespace std;/** MyCoding 比较麻烦int minNumber(int *arr, int len){ if (len <= 0 || arr == NULL) throw exception("Array is...原创 2018-03-16 14:31:37 · 149 阅读 · 0 评论 -
剑指offer编程题——07 两个栈实现队列
#include <iostream>#include <exception>#include <stack>using namespace std;template<typename T> class CQueue{private: stack<T> stack1; stack<T> stack2;publi...原创 2018-03-16 14:29:56 · 163 阅读 · 0 评论 -
剑指offer编程题——06 重建二叉树
#include<iostream>using namespace std;struct BinaryTreeNode{ int m_value; BinaryTreeNode* m_left; BinaryTreeNode* m_right;};BinaryTreeNode* ConstructCore(int* startPre, int* endPre, ...原创 2018-03-16 14:28:32 · 146 阅读 · 0 评论 -
剑指offer编程题——05 从头到尾打印链表
//输入一个链表的头结点,反向打印节点值/* * 尾插法新建链表注意:** 由于新插入节点时会改变头指针,所以传入的参数* 应该是指针的指针,否则出了函数,pHead仍然是空指针;在指针做参数传递给函数的时候:只能保留指针指向的对象(*P)改变的值不能保留指针本身(P)所做得修改在需要修改指针本身的时候,需使用指向指针的指针作为参数,也便是传值与传址的差别所在。*//*...原创 2018-03-16 14:27:06 · 132 阅读 · 0 评论 -
剑指offer编程题——04 替换空格
//写函数,将字符串中的每个空格替换成20%// 首先找出所有的空格数,然后整体后移,最后填充三个字符/* 特殊字符可能会无法显示,需要ASCII码转换,%32空格*/#include <iostream>#include <cstring>using namespace std;char* replacestr(char str[]){ //没必要定义新的数...原创 2018-03-16 14:25:14 · 180 阅读 · 0 评论 -
剑指offer编程题——31 连续子数组的最大和
#include <iostream>#include <vector>#include <assert.h>using namespace std;/** 动态规划法 O(n)*/int FindMaxSubarr(int *arr, int len){ assert(arr != NULL || len > 0); //假设合法(不合法的话会报错 ...原创 2018-06-14 16:17:03 · 196 阅读 · 0 评论