自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Java 异步同时写多个文件,写完之后通知子线程

思路:        是主线程和多个写文件线程之间同步,每写完一个文件计数加1,如果计数值等于当前写文件个数的时候,表示文件已经全部写完。此时通过条件变量通知在该条件变量等待的主线程。此时主线程被唤醒,可以在所有文件被写完的条件下做一些动作代码:package com.example.task.thread;import java.io.FileNo

2015-08-21 14:55:50 3828

原创 LeetCode:Reverse Linked List II 解法

反转链表的扩展,要求能理解本质,考虑边界情况class Solution{public:       ListNode* reverseBetween(ListNode* head, int m, int n)       {           ListNode* result =  NULL;           ListNode* p = head;     

2015-04-15 16:57:35 391

原创 LeetCode上的写一个二叉查找树的由小到大顺序的迭代器

LeetCode题目:Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() will return the next smallest number in the BST.

2015-04-11 16:08:49 441

原创 动态规划算法应用于一个实际问题

题目:一个城市,公交车每隔1km停一次,公交车票价格随行驶里程1km到10km之间而各不相同,可以分段搭乘来降低到达目的地的费用          比如假设公交费用列表如下:Distance(km)12345678910Bus Fare122131404958697990101

2015-04-10 13:13:00 783

原创 某个对象构造的时候讲自己注册到一个单例的管理者

#include#includeusing namespace std;class Delegate;class Observer{public:    static Observer* getInstance();    void addDelegates(Delegate* delegate)    {        cout         m_D

2015-04-10 11:14:52 426

原创 利用OpenGL模板缓冲,从正方形中抠出一个圆形边框

#include#includevoid init(){    /*       color buffer,stencil buffer清除色, 使能模板测试     */    glClearColor(1.0,0.0,0.0,1.0);    glShadeModel(GL_FLAT);    glClearStencil(0);    glEnab

2015-04-07 15:47:47 883

原创 矩阵模板,右元函数重载<<操作符

1.矩阵元素类型,以及矩阵的宽高都声明为模板参数2.双元操作符一般都重载为友元函数   cout    string friend bool operator > (const string& string1, const string& string2)   template class MTVariable{public:    union {

2015-04-07 13:58:44 394

原创 在Ubuntu上安装和链接GLES的库

1.安装GLES2.0的库sudo apt-get install libgles2-mesa-dev2.链接GLES2.0以及相关的库所需的链接选项-lGLESv2 -lEGL -lm -lX11 其中EGL是Opengl ES渲染API和本地窗口系统直接的接口X11 是Linux的窗口系统

2015-04-07 13:40:24 2504 1

原创 Linux下动态链接库的导出

如果要导出某个struct,class,function, 则把__attribute__((visibility("default"))) 放置在你希望导出的struct,class,function的声明处,然后修改你的GCC构建参数使用-fvisibility= hidden参数编译每一个源文件代码。GCC编译源代码文件的visibility默认属性是public,所以默认所有符号都导出

2015-04-07 13:34:53 719

原创 C++对象向基本类型转换

类类型A向float类型转换 struct A{    A(int v)    {        mValue = v;    }    operator float ()    {        return mValue;    }float mValue;};int main(int argc, char** arg

2015-04-07 13:25:36 295

原创 prototype 设计模式

概要 : 使用一个原型实例来指定要创建的对象, 通过拷贝原型来创建一个新的实例应用 : 当一个系统独立于对象的创建,构造过程,和表示的时候              1.当要实例化的类是在运行时指定的              2.避免创建一个平行于产品类层次的工厂类层次              3.当一个类的实例只有不同状态组合中一小部分, 通常安装特定数量的原型,通过拷贝而不

2015-04-07 10:42:18 345

原创 LeetCode Binary Tree Right Side View : 思想上的基于队列的广度优先遍历,形式上的一个简单变种

题目: Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom 思路 : 分别用二个队列存储上一层元素,以及基于上一层元素获得的下一层元素,并取出其最后一个元素

2015-04-07 10:30:58 337

转载 非递归深度优先遍历(来自百度百科)

非递归深度优先遍历:1. 栈初始化 2.输出其实顶点;起始顶点改为"已访问"标记,将起始顶点进栈3.重复下列操作直到栈为空;    3.1 取栈顶元素顶点;(注意不出栈)    3.2 栈顶元素顶点存在未被访问过的邻接点w,则             3.2.1 输出顶点w             3.2.2 将顶点w改为已访问标记             3.2.

2015-04-07 09:21:18 502

原创 用最小堆解决一个实际问题

问题描述如下: 一个公司要给多个部门分配办公室空间,总的空间是一定的,分配空间所需的时间正比于空间的大小比如, 总的空间的大小是1000,需要花费1000个单位时间来划分这些时间(不管是划分成300+700,还是划分为500 + 500,都是花费相同的时间) 但是总的时间取决于划分的顺序比如总的空间数是800,每个部门的空间大小是100,200,500如果首先划分成10

2015-04-03 17:29:20 486

原创 一个独立的资源加载线程,接收主线程的资源加载请求的思路

资源加载线程用一个请求队列维护所有的资源加载请求,如果没有资源加载请求进来就等待。该队列是个共享资源,所以需要一个锁来保护,还需要一个条件变量,当请求队列为空的时候,资源加载线程就需要在这个条件上等待,另外当请求队列为空的时候,而此时正好来了一个新的资源加载请求,需要统一在这个条件变量上等待的线程,唤醒它说有一个新的资源加载请求需要你来执行。 如果资源加载线程没有被阻塞,比如因

2015-04-03 16:39:00 426

原创 基于栈来实现二叉树的先根遍历

当年在淘宝最后一面的时候被问过这个问题,当时思路混乱,答的不好。  #include#includeusing namespace std;struct Node{    Node(char ch)    {        c = ch;          left = NULL;          right = NULL;    }

2015-04-03 11:34:05 382

原创 成员函数指针,C++模板 和command设计模式结合实现的一种命令处理方式

#include#includeusing namespace std;// 先定义一个Command的基类class Command{public:    virtual ~Command()    {    }    virtual void Execute() = 0;protected:    Command()    {

2015-04-03 11:24:21 375

原创 用CMake创建OpenGLES的测试工程

测试工程的目录结构如下+CMakeLists.txt|+--+ src/|  ||  +---- XX.c|  /---- CMakeLists.txt+--+ libcommon/|  ||  +--- xxx.h|  +--- xxx.c|  /--- CMakeLists.txt/-- + build顶层CMakeLists

2015-04-03 11:13:06 631

原创 确定一个子字符串在主字符串中出现了多少次

int match(string& text, string& pattern){    int  textSize = text.size();     int patternSize = pattern.size();     int count = 0;    int i = 0;     int j = 0;    while( i     {

2015-04-02 10:33:11 444

原创 一种 bit 操作的应用

要构成一个黑白相间的棋盘,每个格子都是8x8的,如何利用bit操作来实现呢可以想象从0开始的第3个bit位,每递增8个数,都会在0和1之间切换,可以根据横向索引和纵向索引在第3个bit的值得异或来确定黑或者白 void makeCheckImage(void){ int i, j, c; for (i = 0; i < checkImageHeigh

2015-04-02 10:27:52 409

原创 二维数组的new 和 delete

int** matrix = new int* [n];          int i = 0;          for(; i           {               matrix[i] = new int[n];          }          for(i = 0; i           {        

2015-04-02 10:16:13 304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除