自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程、进程、临界区

今晚学习了多线程,记录一下。    进程:它是一个执行中的程序。程序是没有生命的实体,只有CPU赋予其生命,才能成为一个活动的实体,就是进程。同时,又是资源分配的基本单位。一个进程可以包括多个线程。    线程:它是独立运行和独立调度的基本单位,可以利用进程拥有的资源,但是本身很小,实际并不拥有系统资源,所以对线程进行调度开销会很小,能有效提高并发执行的程度。    线程和进程的区别在

2016-05-02 21:30:20 389

原创 Qt 关于对象创建时parent的问题

在多窗口编程的时候遇到一个关于焦点的问题,主窗口弹出一个dialog,又从这个dialog上弹出一个warning,当点确定时,焦点又回到了主窗口。发现在创建warning的时候,parent传的是this指针,应该传dialog的指针,这样当warning消失后,焦点又能回到dialog。     以前都没有在意parent,以后在对象创建时,一定要想清楚parent的归属,才能保证焦点的正

2016-02-17 21:13:07 730

原创 Qt QTextEdit根据行号移动光标

在实现记事本的时候,有个选项是转到某行行首,找了半天终于找到解决办法了,记录一下。QTextEdit* p = new QTextEdit;QTextBlock block = p->document()->findBlockByNumber(nLineNum);p->setTextCursor(QTextCursor(block));

2016-02-16 20:14:02 5525 3

原创 快速排序中分区算法的延伸——划分多个区间

按照自己的理解,分区算法partition的核心在于:索引的变换和交换元素,也就是说按照索引将不同的元素交换到不同的区间。快排中的partition只划分了2个区间:小等于以及大于。在这里,我们划分3个区间:小于、等于和大于,若给定数组arr{1,2,3,4,0,2},最后一个2设为主元nPivot,则经过分区后的数组也许为arr{1,0,2,2,4,3}(先不管相同区间的元素顺序)。划分3个

2016-02-10 15:34:53 1104

原创 LeetCode 56. Merge Intervals

首先这道题的思路其实非常清晰,先根据Interval的start数值进行排序,用sort()函数,时间复杂度为O(nlgn),不需要自己去写快排什么的,直接调用sort(intervals.begin(), intervals.end(), cmp),再根据题目要求处理,注意[1,2],[1,4]归并得[1,4],而[1,6],[1,4]归并为[1,6],也就是要取end的较大值,调用max函数。

2016-02-10 14:04:05 229

原创 关于对象的构造、复制构造、析构、赋值的问题

1.某类包含string类对象,在对该对象进行操作时,会调用string类的构造、复制构造、析构和赋值。2.派生类对象中的基类部分仍然需要调用基类的构造、复制构造、析构和赋值,相当于各管各的。析构是自动调用的,赋值要CBase::operator=()显式调用,构造和赋值构造要在初始化列表里 : CBase()显式调用,如果不显示调用,会自动调用默认的,若存在new会出错。3.只要某个类动

2016-02-05 21:27:10 314

原创 LeetCode 73. Set Matrix Zeroes

按照题目肯定是需要分配空间来标示某行某列是否需要全设为0。1.最简单的方法,空间是O(m+n):分配m+n个bool空间,第一次遍历矩阵,若matrix[i][j] == 0,则把第i行和第j列设为true,在第二次遍历矩阵时,查询第i行第j列是否都是true,然后再决定matrix[i][j]是否设为0。2.空间是O(1),只需要2个bool值bRow和bCol:用来指示

2016-02-05 17:17:33 264

原创 LeetCode 27. Remove Element

按道理是很简单的题目,遍历一次,删除相关value即可,看tag说是two points,还是不造怎么用这个做。普通的代码如下:class Solution {public: int removeElement(vector& nums, int val) { vector::iterator iter = nums.begin(); w

2016-02-05 15:52:59 194

原创 LeetCode 229. Majority Element II

题目要求线性时间和常量空间,网上看见都是用摩尔投票算法,算是大概想通了,记录一下。算法思想:1.根据题目要求,设n个候选值key和对应的次数time,初始设为0;2.第一次遍历数组,若array[i] == key,++time;若不等,再看time,若time == 0,则用array[i]取代key,++time;若time != 0,则--time; 3.第二

2016-02-05 00:14:50 367

原创 Vector的某个构造函数

vector tmp(num, value);

2016-02-04 23:39:48 275

空空如也

空空如也

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

TA关注的人

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