自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(294)
  • 资源 (3)
  • 收藏
  • 关注

原创 剑指Offer(7)______斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n代码:class Solution {public: int Fibonacci(int n) { if(n <= 0) return 0; //鲁棒性: 判断n是否合法 int dp[40]

2017-03-24 08:04:02 438

原创 剑指Offer(6)______旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArra

2017-03-23 21:29:20 258

原创 剑指Offer(5)______用两个栈实现队列

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()){ while(stac

2017-03-23 21:27:32 340

原创 剑指Offer(4)______重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。class Solution {public: bool errflag; void clearNode(TreeNode

2017-03-23 21:23:03 305

原创 剑指Offer(3)______从尾到头打印链表

输入一个链表,从尾到头打印链表每个节点的值。栈方式:class Solution {public: vector printListFromTailToHead(ListNode* head) { vector ans; if(head == NULL) return ans;//鲁棒性 : 判断链表是否为空

2017-03-23 21:19:56 236

原创 剑指Offer(2)______替换空格

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。class Solution {public: void replaceSpace(char *str,int length) { if(str == NULL)return; //鲁棒性:

2017-03-23 21:17:28 273

原创 剑指Offer(1)______二维数组中的查找

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码:class Solution {public: bool Find(int target, vector > array) { int n,m; n = array.si

2017-03-23 21:11:40 374

原创 LeetCoder_____Generate Parentheses(22)

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:[ "((()))", "(()())", "(())()", "()(())

2017-03-22 21:53:02 261

原创 LeetCoder_____Merge Two Sorted Lists(21)

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.题意:合并两个有序链表,返回新链表的头指针。注意:新链表应该由原两链表分割组合而成,不能新开辟

2017-03-22 21:14:38 314

原创 LeetCoder_____Valid Parentheses(20)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are all va

2017-03-22 20:36:39 282

原创 LeetCoder_____Remove Nth Node From End of List(11)

Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the

2017-03-22 19:52:45 271

原创 LeetCoder_____2Sum,3Sum,4Sum

LeetCoder____Two Sum(1)Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solu

2017-03-22 19:02:41 329

原创 LeetCoder_____Container With Most Water(11)

Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Fin

2017-03-19 09:56:26 347

原创 LeetCoder_____Regular Expression Matching(10)

Implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the entire input st

2017-03-16 10:48:10 293

原创 LeetCoder_____ZigZag Conversion(6)

The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H NA P L S I

2017-03-11 11:26:29 290

原创 如何辨认一个复杂声明表达式子中变量的类型?

何谓复杂声明表达式子中变量的类型?先来看看这段代码:typedef double* (*a)[10];typedef int* (*b[10])[10];typedef int(*(*c)(int,int))(int);typedef int(*(**d[5])(int))(void(*)(void));以上a,b,c,d 的类型是什么呢?当然,实际工程中不太会出现这么复杂的类型,所以这个知识

2017-03-03 21:08:28 594

原创 类型转换下编译器偷偷做的事————整形提升(Inter Promotion)

一.前言        在讲述这个话题之前,还是先举几个代码例子:long long ll = 1;long l = 2;double db = 3;float f = 4;unsigned int uint = 5;decltype(db + ll) // ->类型?decltype(uint

2017-03-03 12:55:57 935 1

原创 #define 和 const 定义常量比较。

在C++中可以使用#define或者const来定义常量,但是使用const相比起#define有更多的优点。——–<Effective C++>以下部分内容选自<程序猿面试宝典>const 常量有数据类型,而宏常量是没有数据类型。编译器可以对前者进行类型安全检查,而后者仅仅进行字符替换,没有类型安全检查,并且在字符替换过程中会产生一些意料不到的错误。(边际效应)#define X 10#de

2017-03-02 20:06:39 3044

原创 LeetCoder_____Median of Two Sorted Arrays

There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1,

2017-02-20 18:52:17 411

原创 forward在委托机制中的应用——完美转发

一.前言在之前,我曾花三篇文章讲述了C++委托机制的封装,到最后可以实现任意类型函数的捆绑,包括lambda表达式的注册。然而,这个委托机制还有一点需要完善,可能看标题大家知道这个需要完善的点儿是什么,不过不知道也关系,这个文章会由浅入深的讲述这个问题的来源,以及解决方案。二.问题引入在直接上委托代码之前我们先抽出问题本质,用简单的代码来发现问题,例子来源于<C++ primer>P612: 这个

2017-02-07 21:19:41 1461

原创 C++11移动语义探讨——从临时对象到右值引用

一.前言这篇文章主要谈谈c++11中引入的右值引用概念和移动语义概念。以及这些东西可能在我们编程中带来哪些体验、便捷或者是代码效率的提高。 文章主要分为以下三点:临时对象的产生何谓右值引用何谓移动语义二.临时对象的产生在我们以往的编程过程中可能很少会注意到临时对象(变量)的问题,因为这已经不太是程序层面上的问题,而更多是编译器上的事情。编译器在编译代码过程中为了实现某些代码可能会产生出一些

2017-02-07 16:16:41 3314

原创 谈谈对象大小——从字节对齐到对象模型

一. 前言        这篇文章主要介绍以下从c的结构体变量到c++的类对象中编译器对内存分配做的事情。总而言之,言而总之,这篇文章就是讲述对于一个变量(对象)它的内存布局是怎么样子的。        为了方便描述,我们按照以下几个层次来讲述:                1.c中struct的字节对齐                 2.从struct到class的过渡

2017-02-02 22:39:24 1064

原创 对象模型 ------- Constructor 构造函数

前言:        之前,在编写C++的一些代码的时候,在类的构造、析构、赋值函数部分,偶尔会出现编译器做出和我初想不一样的决策。后来,看了<深度探究C++对象模型 >这本书后,有的疑问或多或少得到了解决。所以在此,想写一些笔记来记录这些疑问的地方,可能后面关于对象模型还会关于其他方面的文章。不过这个系列文章都主要是以探讨为核心,以后在编程中遇到的相关问题也会不定期在这系列文章继续补充。有的疑问

2017-01-20 00:03:28 1654 3

原创 2016计科学院ACM院赛题解

前言虽然忙碌了几周,但是总算院赛完美落幕了。比赛中没出现大的差错,哈哈!!题解A.变态的青蛙设:dp[i]为跳上i级台阶总共的跳法。那么dp[i] = dp[1] + dp[2] + ... + dp[i-1] + 1那么很容易推出dp[i]的规律:dp[i]=2i−1(dp[0]=0)dp[i] = 2^i-1(dp[0] = 0)\quad又因为题目n很大,所以要使用快速幂!代码:#in

2016-12-11 09:27:10 1099 3

转载 电路交换、报文交换、分组

数据通信网的交换方式    对于计算机和终端之间的通信,交换是一个重要的问题。如果我们想使用任何遥远的计算机 ,若没有交换机,只能采用点对点的通信。为避免建立多条点对点的信道,就必须使计算机 和某种形式的交换设备相连。交换又称转接,这种交换通过某些交换中心将数据进行集中和转送,可以大大节省通信线路。在当前的数据通信网中,有三种交换方式,那就是电路交换 、报文交换和分组交换。一个通信网的有效性、

2016-11-28 17:43:26 846

原创 C语言 遍历一个文件夹的所有文件

#include #include int main (void){    _finddata_t fileDir;    long lfDir;    if((lfDir = _findfirst(dir,&fileDir))==-1l)        printf("No file is found\n");    else{       

2016-11-27 18:43:20 19740 2

原创 Processing-Minim翻译----------Class FFT

尊重原创,http://blog.csdn.net/y1196645376/article/details/53318956 转载请申明出处,谢谢!FFTextends FourierTransformFFT代表了快速傅里叶变换, 它是一种高效的计算复数离散傅里叶变换的有效方法.对于这个类没有什么其他好说的了,因为当你想要分析音频缓冲区的频谱的时候,你几乎总是使用这个类。这个类有个限制是如果你

2016-11-24 13:04:46 2344

原创 Processing-Minim翻译----------Class AudioPlayer

AudioPlayer继承 AudioSource实现 PlayableAudioPlayer 提供了一种独立的流的方式从磁盘或者网络播放声音文件。它提供播放和循环的方法,以及设置当前播放位置和循环一部分的方法。你可以使用LoadFile方法获取AudioPlayer。 字段概述: 通过class ddf.minim.AudioSource 继承来的字段 left:Aud

2016-11-24 12:19:26 1967

原创 Processing-Minim翻译----------Class Minim

Minim类extends java.lang.ObjectMinim是你将要使用这个库做任何事情的起点. 这里有获取音频文件对象的方法: AudioSample and AudioPlayer. 这里有记录音频的方法:AudioRecorder,记录音频到磁盘. 这里有获取音频输入的方法:AudioInput,它可以监视电脑上的线路声音或麦克风,这取决于用户设置的记录源。最后这里有获取音频输出

2016-11-22 22:15:12 3644

转载 c++ 内存泄漏检测

原博客地址:http://blog.csdn.net/windows_nt/article/details/8652191使用vs的内存检测有以下几种方法。在debug模式下以F5运行:方法一:[html] view plain copy#define CRTDBG_MAP_ALLOC   

2016-11-04 15:51:08 857

原创 必须要注意的 C++ 动态内存资源管理(六)——vector的简单实现

十六.myVector分析         我们知道,vector类将其元素存放在连续的内存中。为了获得可接受的性能,vetor预先分配足够大的内存来保存可能需要的更多元素。vector的每个添加元素的成员函数会检查是否有空间容纳更多的元素。如果有,成员函数会在下一个可用位置构造一个对象。如果没有可用空间,vector就会重新分配空间;它获得新的空间,将已有元素移动到新空间中,释放旧空间,并添加新

2016-11-04 14:30:09 2379

原创 必须要注意的 C++ 动态内存资源管理(五)——智能指针陷阱

十二.小心使用智能指针。        在前面几节已经很详细了介绍了智能指针适用方式。看起来,似乎智能指针很强大,能够很方便很安全的管理我们的资源。然而其实不然,如果不恰当的使用智能指针有时候会在很不起眼的地方造成内存泄漏。在这一节中主要介绍在使用智能指针过程中有哪些地方需要注意,以及 shared_ptr 在使用上的缺陷。十三.使用智能指针的5个条款条款1:不要把一个原生指针给多个share

2016-11-03 19:42:42 5462

原创 必须要注意的 C++ 动态内存资源管理(四)——智能指针进阶

十一.智能指针的扩展        在前面一节,我们简单介绍了标准库给我们提供的三种智能指针的使用方法。然而在实际使用过程中有的资源的创建和释放并不是简单的new 和 delete。        比如说:对于数据库连接来说,创建资源是连接数据库而释放资源是断开连接。所以,对于智能指针自带的资源释放手段(delete)有时候就不太适用了。当然,智能指针的设计者也考虑到这一点;所以智能指针允许使用者

2016-11-03 16:50:44 1168

原创 必须要注意的 C++ 动态内存资源管理(三)——智能指针

七.前言        在前面一节,我们简单实现了三种类型资源的”指针对象”。其实在c++11的标准库中已经为我们准备了这样的指针对象——智能指针,分别是:shared_ptr , unique_ptr(取代了auto_ptr) , weak_ptr。下面我们简单来介绍一下这三类智能指针的特点和适用情况。八.shared_ptr智能指针        shared_ptr指针适用的就是前一节所

2016-11-03 02:03:33 1517

原创 必须要注意的 C++ 动态内存资源管理(二)——指针对象简单实现

四.拷贝类型的资源        上节我们说过,对于图片类型的资源我们有时候往往采用拷贝(如果对于那种公共图片,可能采用唯一副本,提供地址使用)。这样情况,我们就需要在拷贝构造函数,以及拷贝赋值函数里面对源地址的内容(对象)进行拷贝。而在析构函数里面要释放自身所占有的资源。template<typename T>class res_ptr{public: typedef res_p

2016-11-02 18:12:09 932

原创 必须要注意的 C++ 动态内存资源管理(一)——视资源为对象

一.前言        所谓资源就是,一旦你用了它,将来必须还给系统。如果不这样,糟糕的事情就会发生。C++ 程序中最常见使用的资源就是动态分配内存(如果你分配了内存却忘记归还它,就会导致内存泄漏)。但是内存只是你必须管理的众多资源之一。其他常见的资源还有:文件描述器(file descriptors)、互斥锁(mutex locks)、图形界面中的字体和笔刷、数据库连接、以及网络sockets。

2016-11-02 13:50:21 1514 2

原创 c++ STL容器的内存分配

一.前言在使用STL各类容器的时候,有时会出现迭代器失效,引用(指针)失效等情况的而发生,即使看似你的操作都是合法的情况下。要了解问题的原因,我们就要了解C++中stl容器的内存分配策略。我们才知道在哪些操作下可能导致迭代器失效,引用(指针)失效。二.问题分类首先我们把以上的问题分成两类:容器的迭代器为什么会失效?容器元素的引用(指针)为什么会失效?因为从内存角度上来讲,如果引用是失效了那么指

2016-10-27 23:59:59 11081 8

原创 详解重载解析(一)

一.前言什么是重载解析呢? 我们要解释重载解析就要先了解重载。当我们对同一个函数名写了不同参数列表的版本之后,编译器会生成这个函数的不同重载版本。那么当我们调用这个函数的时候,编译器就会子自动根据实参的参数类型来判断到底调用的是哪个版本的函数。那么编译器选取最合适的函数版本的这一个过程就被称为重载解析。 二.重载解析的步骤在这里我们先不忙考虑含有模板函数的情况,这个问题我们留到下一章来讨论。当没有

2016-10-19 15:38:50 2098

原创 第一次参加区域赛之旅——2016 ACM/ICPC 大连站 感想

一 . 行程     说到行程简直是一把鼻涕一把泪。学校不报销卧铺,只能坐硬座,而且没有直达车,所以还要在北京转车。30多个小时啊~~。回来就更别说了,转五趟车。差点没挂在火车上。。。 二 . 旅游     说实话,对于我们三个弱鸡来说对于这次比赛,我们是抱着旅游的心情去的。于是我们提前到了一天,在大连读书的高中同学的建议下去了星海公园和星海广场。虽然我已经见过海了,但是队友都是第

2016-10-19 11:13:58 4936 4

原创 Unity内存优化

1.代码层面1.foreachMono下的foreach使用需谨慎,频繁调用容易触及堆上限,导致GC过早触发,出现卡顿现象。特别注意的是在Update中如果非必要,不要使用foreach。尽量可能用for代替foreach.会产生GC Alloc,说明foreach调用GetEnumerator()时候会有堆内存上的操作,new 和dispose。

2016-10-07 18:32:13 1468 1

Unity3D火焰粒子特效

使用Unity3D自带的粒子系统制作的火焰粒子特效。。。。

2018-05-18

LitJson.dll

LitJson库,用于json的序列化和反序列化

2016-09-15

基于Opencv植物大战僵尸游戏源码

基于opencv\C++语言实现的植物大战僵尸游戏部分源码.

2015-08-09

空空如也

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

TA关注的人

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