C++
文章平均质量分 75
Azoobie
这个作者很懒,什么都没留下…
展开
-
动态规划--最小调整代价
91. Minimum Adjustment Cost【题目】Given an integer array, adjust each integers so that the difference of every adjacent integers are not greater than a given number target.If the array before原创 2016-07-10 22:12:57 · 4841 阅读 · 1 评论 -
C++基础--STL
【向量&双端队列】与数组相似,项都是连续存储,允许随机访问。但大小在程序运行过程中根据需要自动增加。向量或数组在前面插入或删除时,时间复杂度为O(n),双端队列为O(1)。Vector1. 数组可以快速初始化,向量不能;2. push_back()的平均时间为O(n),假设插入新项时容量n已满,需要重新分配2n的新空间并将n个项移到新的空间中,并添加新项。Deque原创 2016-11-01 10:39:30 · 265 阅读 · 0 评论 -
hihoCoder--1039:字符消除
描述小Hi最近在玩一个字符消除游戏。给定一个只包含大写字母"ABC"的字符串s,消除过程是如下进行的:1)如果s包含长度超过1的由相同字母组成的子串,那么这些子串会被同时消除,余下的子串拼成新的字符串。例如"ABCCBCCCAA"中"CC","CCC"和"AA"会被同时消除,余下"AB"和"B"拼成新的字符串"ABB"。2)上述消除会反复一轮一轮进行,直到新的字符串不包含相邻的相同字符原创 2016-10-13 21:47:06 · 795 阅读 · 0 评论 -
C++基础--拷贝构造函数
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plain copyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。转载 2016-09-27 09:45:35 · 355 阅读 · 0 评论 -
C++基础--指针和引用
http://www.cnblogs.com/mq0036/p/3382732.html数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int原创 2016-09-22 11:58:15 · 345 阅读 · 0 评论 -
C++基础--内联函数
inline函数inline关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。表达式形式的宏定义一例:#define ExpressionName(Var1,Var2) ((Var1)+(Var2))*((Var1)-(Var2))为什么使用inline函数?1. C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理原创 2016-09-26 17:20:54 · 303 阅读 · 0 评论 -
vi/vim使用
http://www.runoob.com/linux/linux-vim.html基本上 vi/vim 共分为三种模式,分别是一般模式、编辑模式与指令列命令模式。一般模式:以 vi 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、贴上』来处理你的文件数据。转载 2016-06-21 20:24:06 · 295 阅读 · 0 评论 -
神奇的题
#include #include #include using namespace std;void newOper(vector &mem, int num){ //判断是否有连续num个空间 int s = 0, t = 0; bool put = false; for (int i = 0; i < mem.size(); ++i) {原创 2016-09-10 23:01:31 · 303 阅读 · 0 评论 -
C++基础--ASSERT断言
转自:http://www.cnblogs.com/moondark/archive/2012/03/12/2392315.html assert是个宏,并且作用并非“报错”。assert()的用法像是一种“契约式编程”,在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个if语句:if(假设成立) { 程序正常运行;} else {转载 2016-10-08 21:43:53 · 332 阅读 · 0 评论 -
C++基础--static静态成员
【static】1. 静态局部对象位于函数内的静态变量,在调用函数前就被创建并赋初值,在程序结束前都不会被撤销,在函数多次调用过程中持续存在并保持它的值。2. 静态类成员static数据成员与类关联,独立于类的任意对象,类的全体对象共享static成员。static数据成员必须在类定义体外部定义且只定义一次,无需重复指定static保留字。一旦成员名出现,成员定义原创 2016-05-18 22:48:30 · 377 阅读 · 0 评论 -
C++基础--内存分配方式
内存分配方式内存分配方式有三种:[1] 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量, static 变量。[2] 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中 ,效率很高,但是分配的内存容量有限。[3] 从堆上转载 2016-05-30 10:43:46 · 361 阅读 · 0 评论 -
C++基础--limits头文件
在使用C++时,常常遇到将某个值设置为最大值或最小值的时候。之前常常设为-1或10000怎样,非常草率。可以使用c++中的limits头文件设置不同类型的最大值或最小值。因为我常常忘记具体用法,所以觉得有必要记录一下。//头文件#include //具体使用//产生int型最小值numeric_limits::min();//产生char型最大值numeric_lim原创 2016-05-19 15:48:08 · 883 阅读 · 0 评论 -
C++基础--面向对象
一、 什么是面向对象?与面向过程有什么区别?面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面转载 2016-09-14 13:10:11 · 284 阅读 · 0 评论 -
lintcode178. graph valid tree 图是否是树
【题目】给出 n 个节点,标号分别从 0 到 n - 1 并且给出一个 无向 边的列表 (给出每条边的两个顶点), 写一个函数去判断这张`无向`图是否是一棵树假设我们不会给出重复的边在边的列表当中. 无向边 [0, 1] 和 [1, 0] 是同一条边, 因此他们不会同时出现在我们给你的边的列表当中。Given n nodes labeled from 0 to n -原创 2016-08-13 15:51:35 · 1531 阅读 · 0 评论 -
洗牌算法和随机数生成
【题目】要求输入一组数据,输出的结果为这组数据的随机排列。【解题思路】1. 调用头文件algorithms中的random_shuffle函数。该函数的本质就是生成随机位置,不断交换,使得数据重新排列。2. 产生随机数,结合swap函数实现数组的重新排列。【代码】#include #include #include #include #inclu原创 2016-08-31 22:42:04 · 2147 阅读 · 0 评论 -
字符串操作
#include #include #include #include using namespace std;//判断行进方向是否为前向bool forw(string base, string fir, string sec) { int loc1, loc2; loc1 = base.find(fir); if (loc1 == string::npo原创 2016-09-10 22:44:57 · 254 阅读 · 0 评论 -
lintcode-N-Queen, N皇后问题
【题目--33. N-Queens】The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n原创 2016-08-14 22:35:05 · 2782 阅读 · 0 评论 -
动态规划--背包问题
92. BackpackGiven n items with size Ai, an integer m denotes the size of a backpack. How full you can fill this backpack?在n个物品中挑选若干物品装入背包,最多能装多满?【样例】如果有4个物品[2, 3, 5, 7]如果背包原创 2016-07-05 22:13:56 · 1594 阅读 · 0 评论 -
C++基础--static静态成员
1. 静态局部对象静态局部对象是位于函数内的静态变量,在调用函数前就被创建并赋初值,在程序结束前都不会被撤销,在函数多次调用过程中持续存在并保持它的值。 在头文件中定义静态变量不可行。因为如果在使用该头文件的每个C语言文件中定义静态变量,则每个头文件中都会存在一个单独的静态变量,会引起空间浪费或程序错误。不推荐在头文件中定义任何变量。2. 静态类成员static成员与类关联,独立于类的任意对象,类原创 2016-11-02 10:42:35 · 533 阅读 · 0 评论