
c++
文章平均质量分 75
jjfly
无他,唯手熟尔
展开
-
二叉树的非递归遍历
先是中序遍历/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */...原创 2015-01-21 21:37:45 · 644 阅读 · 0 评论 -
Course Schedule
There are a total of n courses you have to take, labeled from 0 ton - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a p原创 2015-07-12 16:05:54 · 604 阅读 · 0 评论 -
各种排序的实现与复杂度分析(持续更新)
稳定性:选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。复杂度冒泡法: 复杂度为O(n*n)。当数据为正序,将不会有交换。复杂度为O(0)。不说了。直接插入排序:O(n*n)希尔排序:算法的复杂度为n的1.2次幂选择排序:O(n*n)快速排序:不稳定,平均时间复杂度O(nlogn),最坏情况时间复杂度为O(n...原创 2015-01-10 00:45:32 · 1009 阅读 · 0 评论 -
C++构造函数执行顺序
实践是真知的唯一标准啊#include #include using namespace std;class V {public: V(){ printf("V constructor.....\n"); } V(int k) { printf("V %d constructor.....\n", k); } ~V() { printf原创 2015-03-22 16:34:24 · 661 阅读 · 0 评论 -
一些重要知识
指针和引用的区别指针指向一块内存,它的内容是指向内存的地址;引用是某内存的别名引用使用是无需解引用,指针需解引用引用不能为空,指针可以为空引用在定义是被初始化一次,之后不可变;指针可变程序为指针变量分配内存区域,而引用不需要分配内存区域new和malloc的区别,free和delete的区别malloc与free是C++/C语言的标准库函数,原创 2014-12-22 20:04:40 · 620 阅读 · 0 评论 -
C++内存分配
一个程序一般分为3段:text段,data段,bss段text段:就是放程序代码的,编译时确定,只读,data段:存放在编译阶段(而非运行时)就能确定的数据,可读可写就是通常所说的静态存储区,赋了初值的全局变量和静态变量存放在这个区域,常量也存放在这个区域bss段:定义而没有赋初值的全局变量和静态变量,放在这个区域一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)―原创 2015-01-06 19:55:35 · 815 阅读 · 0 评论 -
C++ 虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这转载 2014-12-20 11:53:45 · 428 阅读 · 0 评论 -
c++多态实现的机制
1 什么是多态?多态性可以简单的概括为“1个接口,多种方法”,在程序运行的过程中才决定调用的机制程序实现上是这样,通过父类指针调用子类的函数,可以让父类指针有多种形态。2 实现机制举一个例子:#include class animal{public:void sleep(){cout}void breathe(){cout}};转载 2014-12-22 21:29:23 · 508 阅读 · 0 评论 -
4sum
k-sum问题都可以有2-sum引申出来解决,但是时间复杂度为O(n^k-1)。应该要用哈希解决才好的,之后再看看class Solution{private: vector > ans;public: vector >fourSum(vector &num, int target){ sort(num.begin(),num.end()); ans.clear()原创 2015-01-16 23:34:00 · 534 阅读 · 0 评论 -
Maximal Rectangle
求一个01二位数组最大的矩阵,把它化为直角图再一行一行地算class Solution{public: int maximalRectangle(vector > &martix){ int height[1000][1000]; int maxx = -1; int row = martix.size(); if(row == 0) return 0;原创 2015-01-12 15:34:50 · 652 阅读 · 0 评论 -
linux下c的线程池
c下实现线程池#include #include #include #include #include #include typedef struct worker { void *(*process) (void *arg); void *arg; struct worker *next;} CThread_worker;typedef struc原创 2015-01-08 01:12:59 · 967 阅读 · 0 评论 -
Minimum Window Substring
双指针思想,尾指针不断往后扫,当扫到有一个窗口包含了所有T的字符,然后再收缩头指针,直到不能再收缩为止。最后记录所有可能的情况中窗口最小的原创 2015-01-08 23:09:55 · 549 阅读 · 0 评论 -
First Bad Version
You are a product manager and currently leading a team to develop a new product. Unfortunately, the latest version of your product fails the quality check. Since each version is developed based on the原创 2015-09-09 15:58:30 · 478 阅读 · 0 评论