自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chaibubble

但行好事,莫问前程

原创 C++ 动态捕获整型数列

假设有这样一个要求,输入两列数字,第一列是数组中数字的个数,第二列数数组中的数字,中间以空格隔开,我们可以写出这样的一段代码: 这里写代码片

2017-08-25 23:07:23 458 0

原创 VS2010 解决控制台窗口一闪而过的问题

这个问题发现的着实尴尬,怎么说用了vs也有两年了,但是真的是才发现调试与开始执行的区别,最基础的问题反而被一直遗漏。 说回正题,相信有很多人在使用vs时都会发现,vs的控制台程序,控制台窗口不会停下来,造成这个问题的原因有两个:1.按的“调试”,而不是“开始执行”。 2.“子系统”配置选项不是...

2017-08-25 22:39:26 1717 1

原创 算法-排序算法总结

介绍冒泡排序,简单选择排序,插入排序,希尔排序,快速排序归并排序和堆排序。

2017-08-25 15:45:47 459 0

原创 算法-从1,...,99,2015这100个数中任意选择若干个数(可能为0个数)求异或,试求异或的期望值

题目: 从1,2,3,…..98,99,2015这100个数中任意选择若干个数(可能为0个数)求异或,试求异或的期望值。 解题思路: 这是阿里巴巴的一道笔试题目,这并不是一道编程类的题目(虽然可以用编程来解决),这更像一道数理统计的题目,由于期望性质: 那么我们可以先考虑取到的若干个数...

2017-08-22 13:10:19 4111 1

原创 C++ 传递动态内存

这部分内容在引用作为函数的参数这个blog中有一些涉及,为了讨论引用传递顺带了参数传递与指针传递,在这里从动态内存传递的角度梳理一下,先看这样一个题目: 下面五个函数中,哪些函数能够实现值的交换?#include "iostream" using namespace s...

2017-08-20 16:49:20 537 0

原创 C++ 指针和引用的区别

指针是C系语言的一大特色,也在很大程度上体现着C/C++的精髓,一个数据对象的内存地址称为该数据对象的指针。本质上指针是一个变量,所以它有自己的类型,这个类型决定了它可以指向何种类型的数据对象;之所以使用数据对象这个说法,是因为指针能够代表的远远不止变量,还包括数组,数组元素,结构体,甚至函数。引...

2017-08-20 15:22:12 1446 0

原创 算法-斐波那契数列

题目: 写一个函数,输入为n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列定义如下: 解题思路: 斐波那契问题是个非常经典的递归问题,比如我们想要求得f(8),f(8)=f(7)+f(6),而f(7)=f(6)+f(5),……,直到n=1或n=0时递归结束,那么我们很容易就编出...

2017-08-19 23:02:26 448 0

原创 建模-判断一列数是不是等差数列

题目: 如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。 小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通...

2017-08-16 17:28:20 2445 0

原创 算法-1到n中所有和为m的组合

题目: 输入两个整数 n 和 m,从数列1,2,3…….n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来。

2017-08-16 01:05:19 2881 0

原创 算法-删除字符串中的公共字符

题目: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入“They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”解题思路: 好未来那这道题做过笔试题目,首先最简单的思路就是两层循环遍历,下面将“They are ...

2017-08-15 18:15:04 2733 1

原创 算法-反转字符串与反转单词

题目: 将字符串内容进行倒置,比如 I like beijing. 经过函数后变为:.gnijied ekil I。 解题思路: 首先题目说的很明确,就是反转字符串,不是打印,也不是创建一个新的字符串,而是改变原数据,最简单的思路就是将第一个字符和最后一个交换,第二个和倒数第二个交换,依次循...

2017-08-15 04:24:41 1005 0

原创 算法-两个栈实现队列

题目: 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。template <typename T> class CQueue { public: CQueue(void)...

2017-08-13 17:50:31 353 0

原创 数据结构-队列

队列的定义在很多资料中,队列与栈往往一同出现,因为它与栈有很多相似的地方。队列是只允许在一端插入另一端删除的线性表,即一种先入先出(FIFO)的结构,队列有顺序对列与循环队列,循环队列主要是为了弥补队列存储空间不足与“假溢出”的问题,所以在实际应用时,往往使用的是循环队列,下面我们从头说下为什么会...

2017-08-13 13:30:55 487 0

原创 数据结构-栈

栈栈的定义栈是一种特殊的线性表,仅允许在表的一端进行插入和删除运算。这一端被称为栈顶(top),相对地,把另一端称为栈底(bottom)。向一个栈插入新元素又称作进栈、入栈或压栈(push),它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈(pop),它是把栈...

2017-08-13 00:24:25 2237 0

原创 算法-重建二叉树

题目: 输入某二叉树的前序遍历与中序遍历结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果均无重复数字,前序遍历序列为{},中序遍历序列为{},则重建出图2.6所示的二叉树并输出他的头结点。二叉树的结点定义如下:struct BiTNode { int data; ...

2017-08-11 18:18:18 431 0

原创 数据结构-二叉树遍历总结

二叉树结构二叉树是一种特殊的树,每个父结点最多只能用有两个子结点。 在树中,按照结点的“继承”关系可以分为父结点和子结点; 按照结点的位置关系可以分为根结点,中间结点和叶结点。 其中叶结点没有子结点。 我们用结点中的数字代表结点,那么在上图中:10为根结点;6、14为中间结点;4、8、...

2017-08-11 01:18:26 1677 0

原创 Sublime Text 3 汉字乱码解决方法

一般我把Sublime Text当做一个简洁的文本阅读器来用,所以用别的编译器编写的代码在Sublime Text中有时会出现中文乱码的情况,这是因为Sublime Text没有默认改编码格式。 所以我们需要自己安装一个插件包,但是安装插件包的前提需要先安装一个Package Control包,...

2017-08-10 14:28:55 3969 0

原创 算法-字符串替换空格

题目: 实现一个函数,把字符串中的每一个空格替换成”%20”。例如输入”We are happy.”,则输出”We%20are%20happy.”。解题思路: 首先我们需要先想清楚一点,函数就要求输出替换后的结果,没有说是在原数据上替换,还是可以申请内存,创建一个新的字符串? 后者可以让问题...

2017-08-09 17:37:01 486 0

原创 算法-数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数,比如排序数组为{1,2,3,3,3,4,5},那么数字3出现的次数就是3。解题思路: 1.首先,遍历数组肯定就能知道某个数字的个数,此时的时间复杂度O(n)。 2.除此之外,我们注意到,任务本质上是查找问题,而且是排序好的数组,可以尝试用二分查找算...

2017-08-09 14:27:41 4582 1

原创 算法-旋转数组的最小数字

题目输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为数组{1,2,3,4,5}的一个旋转,该数组的最小值为1。旋转数组把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,这本身没什么,但是如果旋转前的数组是一个排序好的递增数组,旋转数组就会有...

2017-08-09 01:05:42 362 0

原创 算法-调整数组顺组使奇数位于偶数前面

题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,偶数位于数组的后半部分。解题思路: 比如我们有一个这样的数组: 数组的长度为10,最后能够实现前面4个数字是奇数,后面6个数字是偶数就好了,前面奇数的排序后后面偶数的排序没有要求,比如: ...

2017-08-07 15:18:28 602 0

原创 算法-二维数组中的查找

问题: 在一个二维数组中,每一行元素都按照从左到右递增的顺序排序,每一列元素都按照从上到下递增的顺序排序。实现一个查找功能的函数,函数的输入为二维数组和一个整数,判断数组中是否含有该整数。 解题思路: 比如一个二维数组是这样: 要查找数组7在不在数组内,根据前人总结出来的规律,我们可以...

2017-08-07 00:48:50 3506 0

原创 算法-O(1)时间删除链表的指定结点

题目:给定一个链表的头指针和一个结点的指针,定义一个函数在O(1)时间删除该结点。链表结点与函数的定义如下:struct ListNode { int value; ListNode *next; };void DeleteNode(ListNode** pListHead, ListNo...

2017-08-06 14:01:17 517 0

原创 算法-从尾到头打印链表

题目: 输入一个链表,要求从尾到头打印该链表,链表结点定义如下:struct ListNode { int value; ListNode *next; };解题思路: 要求很好理解,比如一个链表是: 打印的结果是:6 5 4 3 2 1 1.相信大多数人看到这个要求后的第一...

2017-08-06 01:27:05 360 0

原创 算法-寻找两个链表的第一个公共结点

题目: 输入两个链表,找到他们的第一个公共结点,链表结点定义如下:struct ListNode { int value; ListNode *next; };解题思路: 首先我们需要想清楚的是,如果一个链表出现了公共结点,那么这两个链表是什么样子的,显然它的结构应该是一个“Y”型:...

2017-08-04 20:51:43 436 0

原创 算法-合并两个排序的链表

题目: 输入两个递增排序的链表,合并着两个链表并使新链表中的结点仍然是按照递增顺序的。例如输入的链表1和链表2如下,合并后的为链表3。链表的结点定义如下: struct ListNode { int value; ListNode *next; }; 解题思路: 首先可以确...

2017-08-03 20:44:32 2279 3

原创 数据结构-静态链表及其插入删除操作

什么是静态链表我们平常提及的链表一般指的是动态链表,是使用指针将一个一个的结点连起来,除了动态链表之外,还有静态链表,这种链表用数组来描述,主要为了解决没有指针或者不用指针的情况下具备链表插入删除操作便捷的特性。 静态链表中有一些专属的概念,先贴上图: 这就是一个静态链表,首先他是一个数组...

2017-08-02 02:51:34 5925 5

原创 数据结构-单链表的读取,插入与删除

链表定义:struct ListNode { int value; ListNode *next; };单链表读取在顺序存储结构中,比如数组中,想要获取某一个位置的数据是非常容易的一件事,但是在链表中却要麻烦一些,因为链表的存储单元并不是连续的,而且我们只知道链表的头结点,也就是想知道第i...

2017-08-01 17:46:01 8986 1

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