C/C++
xuweiling_
这个作者很懒,什么都没留下…
展开
-
Algorithm头文件中的sort函数使用
#include "stdafx.h"#include#include#include#if 0int _tmain(int argc, _TCHAR* argv[]){ int a[10] = {9,12,17,30,50,20,60,65,4,49}; std::sort(a, a + 10); for (int i = 0; i < 10; i++) std::cout原创 2017-05-24 21:59:07 · 977 阅读 · 0 评论 -
[NK]用两个栈实现队列
用两个栈实现队列 题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。#include "stdafx.h"#include <iostream>using namespace std;#include <stack>class Solution{public: void push(int nod...原创 2018-07-18 09:26:08 · 120 阅读 · 0 评论 -
[NK]旋转数组的最小数字
旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。#include "stdafx.h"#include <iostream>u...原创 2018-07-18 09:42:54 · 146 阅读 · 0 评论 -
[NK]斐波那契数列
斐波那契数列 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39#include "stdafx.h"#include <iostream>using namespace std;class Solution {public: /*递归超过内存限制 int Fibon...原创 2018-07-18 09:59:33 · 154 阅读 · 0 评论 -
[NK]跳台阶
跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。#include "stdafx.h"#include <iostream>using namespace std;class Solution {public: int jumpFloor(int number) { ...原创 2018-07-18 10:08:25 · 133 阅读 · 0 评论 -
[NK]变态跳台阶
变态跳台阶 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。#include <iostream>using namespace std;class Solution {public: int jumpFloorII(int number) { int sum = 0;...原创 2018-07-20 15:58:32 · 157 阅读 · 0 评论 -
[NK]矩形覆盖
矩形覆盖 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?#include <iostream>using namespace std;class Solution {public: int rectCover(int number) { if (num...原创 2018-07-21 09:49:52 · 115 阅读 · 0 评论 -
[NK]二进制中1的个数
二进制中1的个数 题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。#include<iostream>using namespace std;#define INT_MIN (-2147483647 - 1)class Solution {public: int NumberOf1(int n) { /*...原创 2018-07-21 15:25:53 · 162 阅读 · 0 评论 -
[NK]数值的整数次方
数值的整数次方 题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。#include &amp;lt;iostream&amp;gt;using namespace std;class Solution {public: double Power(double base, int exponent) { ...原创 2018-07-21 17:01:57 · 178 阅读 · 0 评论 -
[NK]调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。#include <iostream>using namespace std;#include <vector>class Solution {...原创 2018-07-22 09:55:09 · 131 阅读 · 0 评论 -
[NK]链表中倒数第k个结点
链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点。#include <iostream>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};cl...原创 2018-07-22 10:55:10 · 130 阅读 · 0 评论 -
[NK]二叉树的镜像
二叉树的镜像 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ ...原创 2018-08-23 16:06:35 · 139 阅读 · 0 评论 -
[NK]顺时针打印矩阵
顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.#include "stdafx.h"#include <vector>#i...原创 2018-08-23 17:20:10 · 164 阅读 · 0 评论 -
[NK]包含min函数的栈
包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。#include "stdafx.h"#include<stack>#include<list>#include <iostream>using namespace std;class Solution {...原创 2018-08-24 10:08:39 · 185 阅读 · 0 评论 -
[NK]栈的压入、弹出序列
栈的压入、弹出序列 题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)#include "stdafx.h"#include...原创 2018-08-24 11:58:32 · 298 阅读 · 0 评论 -
[NK]从上往下打印二叉树
从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。#include "stdafx.h"#include<vector>#include<queue>#include<iostream>using namespace std;struct TreeNode { int val; struc...原创 2018-08-24 12:22:20 · 226 阅读 · 0 评论 -
[NK]树的子结构
树的子结构 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)#include <iostream>using namespace std;struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; ...原创 2018-07-23 17:26:59 · 131 阅读 · 0 评论 -
[NK]合并两个排序的链表
合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};class Solution ...原创 2018-07-23 13:04:49 · 124 阅读 · 0 评论 -
[NK]反转链表
反转链表 题目描述 输入一个链表,反转链表后,输出新链表的表头。#include <iostream>using namespace std;struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};...原创 2018-07-23 10:24:01 · 227 阅读 · 0 评论 -
Go Home
/*一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?输入描述:输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小原创 2017-05-25 19:59:58 · 850 阅读 · 0 评论 -
Buy a Hat
/*度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?输入描述:首先输入一个正整数N(N 输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子:1010 10 10 10 20 20 30 30 40 40输出例子:30原创 2017-05-25 16:18:35 · 377 阅读 · 0 评论 -
linux 下 Socket原理及实现
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。原创 2017-04-23 18:55:43 · 7128 阅读 · 0 评论 -
VS2013编写一个DLL,并创建EXE对DLL进行调用
一、创建DLL项目 文件->新建->项目->Visual C++ win32控制台程序(填写项目名makeDLL)->下一步->(应用程序设计)勾选:DLL、导出符号->完成二、项目自动生成DLL模板 makeDLL.h// 下列 ifdef 块是创建使从 DLL 导出更简单的// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 MAKED原创 2017-05-25 17:46:01 · 7492 阅读 · 2 评论 -
MemMap内存映射
一、内存映射文件是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数 (CreateFileMapping)。内存映射文件与虚拟内存有些类似,通过内存映射文件可以保留一个地址空间的区域,同时将物理存储器提交给此区域,内存文件映射的物理存储器来自一个已经存在于磁盘上的文件,而且在对该文件进行操作之前必须首先对文件进行映射。使用内存映射文件处理存储于磁盘上的文件时,原创 2017-06-02 15:08:08 · 12201 阅读 · 0 评论 -
C/C++调试笔记:空指针报错The inferior stopped because it received a signal from the operating system.
问题描述:程序编译不报错,运行异常退出The program has unexpectedly finished.调试系统报错:The inferior stopped because it received a signal from the Operating System.Signal name: SIGSEGVSignal meaning: Segmentation fault搜索错误提示出现空指针或野指针原创 2017-07-11 14:03:58 · 8228 阅读 · 0 评论 -
迭代器
// Iterator.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"#if 0//实现一个vector类template class vector{private: T* pbegin; int n;//当前大小public: vector(){ pbegin = new T[100];//暂时先固定大小 n = 0; } T原创 2017-07-13 11:12:32 · 174 阅读 · 0 评论 -
C/C++修饰符static、const、extern
C/C++中的几个修饰符static、const、原创 2017-06-25 16:33:34 · 580 阅读 · 0 评论 -
设计模式-策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。原创 2017-09-03 19:58:40 · 187 阅读 · 0 评论 -
设计模式-观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。原创 2017-09-06 18:51:03 · 156 阅读 · 0 评论 -
设计模式-装饰者模式
装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。原创 2017-09-07 17:31:42 · 250 阅读 · 0 评论 -
C++ 内存释放
(1)new、delete 是操作符,只能在C++中使用。malloc、free是函数,可以覆盖,C、C++中都可以使用。(2)new 自动计算需要分配的空间大小,可以调用对象的构造函数,对应的delete调用相应的析构函数。malloc仅仅分配内存,free仅仅回收内存,并不执行构造和析构函数(3)new 类型安全、返回的是某种数据类型指针,malloc原创 2017-10-13 16:19:45 · 1563 阅读 · 0 评论 -
C++面试知识点总结
一、多态性有哪些?(静态和动态,然后分别叙述一下虚函数和函数重载)多态:指相同的对象收到不同的消息或者不同的对象收到相同的消息时产生的不同的实现动作。C++支持两种多态:编译时多态(静态)、运行时多态(动态)编译时多态:就是在编译期确定的一种多态。在C++中主要体现在函数模板,这里需要注意,函数重载和多态无关,很多地方把函数重载误认为是编译多态,这是错误的。1. #include <iost...原创 2018-03-20 10:58:18 · 688 阅读 · 1 评论 -
[NK]从尾到头打印链表
从尾到头打印链表这里写链接内容 题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。#include "stdafx.h"#include <iostream>using namespace std;#include <vector> struct ListNode { int val; struct...原创 2018-07-16 10:24:02 · 92 阅读 · 0 评论 -
[NK]重建二叉树
重建二叉树这里写链接内容 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#include "stdafx.h"#include&lt;iostream&gt;using namespa...原创 2018-07-16 12:04:51 · 139 阅读 · 0 评论 -
[NK]二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。#include &lt;iostream&gt;#include &lt;vector&gt;using namespace std;bool VerifySquenceOfBST(vector&lt;i...原创 2018-08-29 16:55:40 · 242 阅读 · 0 评论