c++
文章平均质量分 54
iamxiaoguizi
这个作者很懒,什么都没留下…
展开
-
c++中的虚函数和纯虚函数
//虚函数是为了让基类能动态调用子类的这个函数//纯虚函数是为了让子类必须实现基类声明的纯虚函数,起到规范作用#include "stdafx.h"#include <iostream>using namespace std;class A{public: virtual void foo()//基类中的虚函数 { cout << "A::foo(原创 2015-10-20 11:10:40 · 418 阅读 · 0 评论 -
微信分红包
写的一般,欢迎提出更好的思路void RandMoney(float money, int person){ float dif = money - 0.01*person; if (dif 1e-6) cout << "每个红包金额不能低于0.01元" << endl; else if (abs(dif) <= 1e-6)//刚好每个人0.01元 { float* res原创 2016-04-12 19:19:40 · 352 阅读 · 0 评论 -
堆排序(向下调整建堆后再排序)
#includeusing namespace std;void AdjustDown(int[] , int , int );void BuildMaxHeap(int A[], int len){ for (int i = len / 2; i >= 1; i--)//从完全二叉树的最后一个非叶子节点开始调整建立大根堆 { AdjustDown(A, i, len); }原创 2016-04-14 16:16:13 · 2225 阅读 · 0 评论 -
最长滑雪路径
描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 8原创 2016-04-13 20:02:20 · 1631 阅读 · 0 评论 -
找出二维数组中的最长路径(最长链表)
一个二维数组比如1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9找出其中的最长路径,每次只能向值比自己小的方向走,且每次只能向上或者向右走。如24为起点:24→17→2 输出3如13为起点:13→12→11→10→9→8→7→6→5 输出9思想原创 2016-04-13 21:06:33 · 3904 阅读 · 0 评论 -
最大子串和
//求序列A0,A1,A2...An-1中子串的和的最大值//思想(动态规划):如果A0...Ai-1 子串最大和为maxSum,并且包含Ai-1的子串最大和为curSum,那么A0...Ai的子串最大和是curSum+A[i],A[i],maxSum三个的最大值#includeusing namespace std;int max(int a, int b){ return(a>原创 2016-04-14 22:00:12 · 371 阅读 · 0 评论 -
网易游戏笔试题:编写string类的构造函数、拷贝构造函数、赋值构造函数和析构函数
题目:class MyString{public: MyString(const char *str);//构造函数MyString(const MyString& strClass);//拷贝构造函数MyString& operator=(const MyString& strClass);//赋值函数~MyString(void);//析构函数private原创 2016-04-15 21:25:38 · 458 阅读 · 0 评论 -
网易游戏笔试题:输入一个数n,返回一个数组,数组中每个元素对应[0,n]每个数的二进制中1的个数
题目:输入一个数n(保证输入正数),返回一个数组,数组中每个元素对应[0,n]每个数的二进制中1的个数如:n=5,返回A=[0,1,1,2,1,2]给出的函数声明int* BitCountArr(int n,int *sizeArr);#includeusing namespace std;int* BitCountArr1(int n,int *sizeArr)//方原创 2016-04-17 17:04:00 · 1489 阅读 · 0 评论 -
LCS最长子串问题
方法一:动态规划 效率O(mn)(mn是分别是两个字符串的长度)#includeusing namespace std;int c[100][100];//全局变量自动初始化为0inline int max(int a, int b){ return (a > b ? a : b);}int LCS(const char *X,const char *Y){ if (原创 2016-04-20 15:24:54 · 921 阅读 · 0 评论 -
快速排序 和 希尔排序
快速排序:基于分治的思想, 平均时间复杂度O(nlog2n),最坏情况下时间复杂度O(n^2),此时初始序列基本顺序或逆序,因为有序就会导致分治的时候两段不平衡,导致递归次数增加效率降低////////快排int partition(int A[], int low, int high){ int pivot = A[low]; while (low < high) { whi原创 2016-04-14 16:47:55 · 644 阅读 · 0 评论 -
百度笔试题:判断一个二叉树是否是另一颗二叉树的子树
是返回1,否则返回-1给出了函数体int IsSubTree(BiTree* root1, BiTree* root2)//判断root2是否是root1的子树{//写自己的代码}思想:首先找到root1中和root2根节点相等的节点,再从该节点开始比较是否每个节点都相等#includeusing namespace std;typedef struct原创 2016-04-22 11:49:41 · 2460 阅读 · 0 评论 -
版本号的比较
版本比较:1.2思想:把点之间字符的转化为整数进行比较,如果比较出大小直接返回,相等就继续比较下个点之间的,直到比较出大小,否则两个版本相等。#include#includeusing namespace std;int compare(string version1, string version2){ int len1 = version1.length(); int l原创 2016-04-10 19:14:51 · 1342 阅读 · 0 评论 -
蛇形矩阵
思想:从外到内每次打印一个正方形#include#includeusing namespace std;int main(){ int n,i,j; cin >> n; int k; int s=1; int **m; //m = (int **)malloc(n*sizeof(int*));//c二维数组动态分配内存 //for (k = 0; k < n; k++)原创 2016-04-10 19:02:10 · 346 阅读 · 0 评论 -
括号匹配
输入字符串个数N,然后输入N个字符串(只含有[] ()四种字符),对每个字符串进行匹配,匹配成功输出Yes ,失败输出No/*#include "iostream"#include "string"using namespace std;#define maxsize 100#define str_maxsize 10000int matching(string parenthesi原创 2015-10-23 10:53:23 · 364 阅读 · 0 评论 -
STL vector用法介绍
https://www.baidu.com/link?url=aZ_4zCgJvQ-fzb0kY5Dd0P47T-RzK7nzxJyM6Vh-fq08x60tWGwV4kfDXgwFli6C8M5_f4Ck4aJcHunM3kmHwq&wd=&eqid=e29322f8000332d7000000055629dde0转载 2015-10-23 15:52:28 · 407 阅读 · 0 评论 -
动态数组分配
C++:在c++中时不能像java中一样定义这样的数组 int[] arr = new int[],如果我们要根据程序的运行来实现动态数组在c++中利用指针这个好东东。动态一维数组:#includeusing namespace std;int main(){ int len; cin>>len; int *p=new int[len转载 2015-11-16 14:49:13 · 558 阅读 · 0 评论 -
c++中的sort 函数
起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_c转载 2015-11-16 15:50:05 · 399 阅读 · 0 评论 -
C++中int和string类型的相互转换
int转stringint n = 0;std::stringstream ss;std::string str;ssss>>str;string转intstd::string str = "123";int n = atoi(str.c_str());#include "stdafx.h"#include string>#include转载 2015-11-20 10:32:37 · 831 阅读 · 0 评论 -
写个程序判断内存是大端模式还是小端模式
#include using namespace std;typedef union node{ int a; char b[4];};int main(){ node u; u.a = 1;/*地址: 0x0000 0x0001 0x0002 0x0003 b[0] b[1] b[2] b[3]小端模式:0x01 0x00原创 2016-04-14 19:04:12 · 756 阅读 · 0 评论 -
C++实现单例模式
class Singleton{private: static Singleton s;//声明静态成员,必须在类的外部定义 Singleton(){} Singleton& operator=(Singleton&);//私有,赋值函数,不允许赋值 Singleton(const Singleton&);//私有,拷贝构造函数,不允许拷贝public: static Single原创 2016-04-25 16:28:59 · 247 阅读 · 0 评论 -
查找循环有序数组的元素
有一个循环有序数组A,如{7,8,9,0,1,2,3,4,5,6},不知道其最小值的位置的情况下,查找特定的元素。思想:利用二分查找,每次找到中间元素,如果和中间元素相等,就返回其下标,否则判断查找元素在中间元素的哪一边,再继续查找注意:该算法不适合数组元素有重复值得时候int search(int A[], int low, int high, int n)原创 2016-04-25 20:15:45 · 654 阅读 · 1 评论 -
C++实现LRU 缺页次数统计
int LRUNotIn(int max_size, int *page_arr, int len)//返回缺页次数,max_size缓存大小,page_arr访问页面顺序的数组,len其长度#include#includeusing namespace std;int LRUNotIn(int max_size, int *page_arr, int len){ int c原创 2016-04-22 20:29:01 · 1259 阅读 · 0 评论 -
c++STL 中的copy函数
现在我们来看看变易算法。所谓变易算法(Mutating algorithms)就是一组能够修改容器元素数据的模板函数,可进行序列数据的复制,变换等。我们现在来看看第一个变易算法:元素复制算法copy。该算法主要用于容器之间元素的拷贝,即将迭代器区间[first,last)的元素复制到由复制目 标result给定的区间[result,result+(last-first))中。下面我们来看看转载 2015-11-20 10:57:50 · 875 阅读 · 0 评论 -
利用STL中的队列queue对二叉树进行层遍历
STL 中队列的使用(queue)基本操作:头文件#includepush(x) 将x压入队列的末端pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值front() 返回第一个元素(队顶元素)back() 返回最后被压入的元素(队尾元素)empty() 当队列为空时,返回truesize() 返回队列的长度原创 2016-04-22 15:48:01 · 2916 阅读 · 0 评论