c++
liff_lee
一个拼死拼活想学计算机编程掉了很多头发的文艺菜鸟
展开
-
C++标准类库中的list
Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.STL中 end()指向的总是无效值,取值都用迭代器,用法跟指针差不多。assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾...转载 2018-04-03 11:43:28 · 2589 阅读 · 0 评论 -
变态跳台阶
时间限制:1秒 空间限制:32768K 热度指数:153829 算法知识视频讲解题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloorII(int number) { return pow(2, number - 1); }}...原创 2018-03-12 19:31:15 · 104 阅读 · 0 评论 -
跳台阶
时间限制:1秒 空间限制:32768K 热度指数:200549 算法知识视频讲解题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution {public: int jumpFloor(int number) { int f = 0, g = 1; while (number!=0) { g = f + g;...原创 2018-03-12 19:12:51 · 103 阅读 · 0 评论 -
斐波那契数列
时间限制:1秒 空间限制:32768K 热度指数:257104 算法知识视频讲解题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39传统递归解法:class Solution {public: int Fibonacci(int n) { if (n == 1) return 1; if (n == 2) return 1; else...原创 2018-03-12 18:50:51 · 213 阅读 · 0 评论 -
旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。class Solution {public: int minNumberInRotateArray(vect...原创 2018-03-12 18:09:41 · 95 阅读 · 0 评论 -
矩阵旋转
时间限制:1秒 空间限制:65536K 热度指数:1498 算法知识视频讲解题目描述任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。 要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。输入描述:输入有多组数据。每组数据第一行输入n(1<...原创 2018-03-18 14:28:07 · 471 阅读 · 0 评论 -
素数
时间限制:1秒 空间限制:65536K 热度指数:3530 算法知识视频讲解题目描述输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入描述:输入有多组数据。每组一行,输入n。输出描述:输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数(素数之间用空格隔开,最后一个素数后面没有空格),如果没...原创 2018-03-18 10:28:25 · 362 阅读 · 0 评论 -
找最小数
时间限制:1秒 空间限制:65536K 热度指数:2581 算法知识视频讲解题目描述第一行输入一个数n,1 <= n <= 1000,下面输入n行数据,每一行有两个数,分别是x y。输出一组x y,该组数据是所有数据中x最小,且在x相等的情况下y最小的。 输入描述:输入有多组数据。每组输入n,然后输入n个整数对。输出描述:输出最小的整数对。示例1输入5 3 3 2 2 5...原创 2018-03-18 09:57:52 · 1731 阅读 · 0 评论 -
比较奇数偶数的个数
时间限制:1秒 空间限制:65536K 热度指数:1896 算法知识视频讲解题目描述第一行输入一个数,为n,第二行输入n个数,这n个数中,如果偶数比奇数多,输出NO,否则输出YES。输入描述:输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000)。输出描述:如果偶数比奇数多,输出NO,否则输出YES。示例1输入51 5 2 4 3输出YES#include<i...原创 2018-03-18 09:48:28 · 584 阅读 · 0 评论 -
矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?class Solution {public: int rectCover(int number) { int f = 0, g = 1; if(number==0) return 0; ...原创 2018-03-12 19:52:26 · 111 阅读 · 0 评论 -
二进制中1的个数
时间限制:1秒 空间限制:32768K 热度指数:178824 算法知识视频讲解题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution {public: int NumberOf1(int n) { int count = 0; while(n!= 0){ count++; ...原创 2018-03-13 09:48:05 · 93 阅读 · 0 评论 -
数值的整数次方
时间限制:1秒 空间限制:32768K 热度指数:185785 算法知识视频讲解题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。class Solution {public: double Power(double base, int exponent) { int n; if (exponent>0) {...原创 2018-03-13 10:46:03 · 90 阅读 · 0 评论 -
词典
https://www.w3cschool.cn/dict/原创 2018-04-14 18:31:07 · 158 阅读 · 0 评论 -
栈的压入、弹出序列
时间限制:1秒 空间限制:32768K 热度指数:151233本题知识点: 栈 算法知识视频讲解题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的...原创 2018-03-20 17:30:05 · 142 阅读 · 0 评论 -
成绩排序C++
#include<iostream>#include<string.h>#include<algorithm>using namespace std;struct Stu{ char name[100]; int age; int grade;}student[10];bool cmp(Stu a, Stu b){ if (a.grade != b.grade)...原创 2018-03-06 16:30:59 · 13605 阅读 · 0 评论 -
CCF认证游戏90分
问题描述试题编号:201712-2试题名称:游戏时间限制:1.0s内存限制:256.0MB问题描述:问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或...原创 2018-03-19 18:32:30 · 236 阅读 · 0 评论 -
CCF认证公共钥匙盒
问题描述试题编号:201709-2试题名称:公共钥匙盒时间限制:1.0s内存限制:256.0MB问题描述:问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位...原创 2018-03-19 18:11:48 · 147 阅读 · 0 评论 -
反转链表
时间限制:1秒 空间限制:32768K 热度指数:214280本题知识点: 链表 算法知识视频讲解题目描述输入一个链表,反转链表后,输出链表的所有元素。class Solution {public: ListNode * ReverseList(ListNode* pHead) { ListNode* h = NULL; for(ListNode* p = pH...原创 2018-03-13 16:21:32 · 83 阅读 · 0 评论 -
链表中倒数第k个元素
时间限制:1秒 空间限制:32768K 热度指数:301751本题知识点: 链表 算法知识视频讲解题目描述输入一个链表,输出该链表中倒数第k个结点。class Solution {public: ListNode * FindKthToTail(ListNode* pListHead, unsigned int k) { if (pListHead == NULL || k == 0) ...原创 2018-03-13 15:41:15 · 368 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
时间限制:1秒 空间限制:32768K 热度指数:223173本题知识点: 数组 算法知识视频讲解题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: void reOrderArray(vector<int>...原创 2018-03-13 12:43:16 · 116 阅读 · 0 评论 -
用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { int a; if (stack2.empty()) { while (!s...原创 2018-03-11 20:50:20 · 106 阅读 · 0 评论 -
重建二叉树
链接:https://www.nowcoder.com/questionTerminal/8a19cbe657394eeaac2f6ea9b0f6fcf6来源:牛客网[编程题]重建二叉树热度指数:282201时间限制:1秒空间限制:32768K算法知识视频讲解输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2...原创 2018-03-11 20:12:40 · 595 阅读 · 0 评论 -
从尾到头打印链表
输入一个链表,从尾到头打印链表每个节点的值/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/class Solution {public: vec...原创 2018-03-11 19:44:13 · 80 阅读 · 0 评论 -
C++排序算法
C++排序算法总结看了总结图,我这里就总结一下 直接插入排序,冒泡排序,快速排序,堆排序和归并排序,使用C++实现重新画了总结图直接插入排序整个序列分为有序区和无序区,取第一个元素作为初始有序区,然后第二个开始,依次插入到有序区的合适位置,直到排好序刚开始在我那本《数据结构》看到大概这样的实现void InsertSort(int arr[], int len) { int i, j; ...转载 2018-03-10 16:39:46 · 113 阅读 · 0 评论 -
按之字形顺序打印二叉树
时间限制:1秒 空间限制:32768K 热度指数:66367 算法知识视频讲解题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。class Solution {public: vector<vector<int> > Print(TreeNode* pRoot) { ...原创 2018-03-15 18:15:22 · 117 阅读 · 0 评论 -
C++队列queue基本操作
http://blog.csdn.net/cindywry/article/details/51919282C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。C++队列...转载 2018-03-15 13:00:19 · 30727 阅读 · 1 评论 -
把二叉树打印成多行
时间限制:1秒 空间限制:32768K 热度指数:56366 算法知识视频讲解题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。class Solution {public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector<int> > vec; ...原创 2018-03-15 12:57:54 · 145 阅读 · 0 评论 -
众数
众数(Mode)是统计学名词,在统计分布上具有明显集中趋势点的数值,代表数据的一般水平(众数可以不存在或多于一个)。 修正定义:是一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用 M 表示。 理性理解:简单的说,就是一组数据中占比例最多的那个数。#include #include using namespace std; int a[105]; int转载 2018-01-29 20:42:27 · 629 阅读 · 0 评论 -
哈夫曼编码哈夫曼树
哈夫曼编码和哈夫曼树转载 2018-01-28 16:46:58 · 188 阅读 · 0 评论 -
c++读取字符串的几种方法
转自原地址C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar()))1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:转载 2018-02-03 22:27:01 · 70891 阅读 · 4 评论 -
求树的直径问题
求树的直径树的直径是指树的最长简单路。求法: 两遍BFS :先任选一个起点BFS找到最长路的终点,再从终点进行BFS,则第二次BFS找到的最长路即为树的直径; 原理: 设起点为u,第一次BFS找到的终点v一定是树的直径的一个端点 证明: 1) 如果u 是直径上的点,则v显然是直径的终点(因为如果v不是的话,则必定存在另一个点w转载 2017-09-10 16:01:05 · 423 阅读 · 0 评论 -
【百度笔试】买帽子
[编程题] 买帽子时间限制:1秒空间限制:32768K度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少? 输入描述:首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)输出描述:如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1输入例子1:10...原创 2018-03-10 18:32:33 · 305 阅读 · 0 评论 -
【百度笔试】度度熊回家
链接:https://www.nowcoder.com/questionTerminal/b96a7519b60748d7a77f13570776c3ac来源:牛客网[编程题]度度熊回家热度指数:19103时间限制:1秒空间限制:32768K算法知识视频讲解一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。 但是除了0号坐...原创 2018-03-11 10:29:24 · 285 阅读 · 0 评论 -
对称的二叉树
时间限制:1秒 空间限制:32768K 热度指数:60133 算法知识视频讲解题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。class Solution {public: bool isSymmetrical(TreeNode* pRoot) { if (pRoot==NULL) { return true...原创 2018-03-17 12:07:36 · 143 阅读 · 0 评论 -
【C++知识点】关于32位数字小端方式存储的问题
假设在一个 32 位 little endian 的机器上运行下面的程序,结果是多少?123456#include <stdio.h>int main(){ long long a = 1, b = 2, c = 3; printf("%d %d %d\n", a, b, c); return 0;}正确答案: B 你的答案: A (错误)1,2,31,0,21,3,23...原创 2018-03-11 18:20:26 · 1503 阅读 · 0 评论 -
C++中关于静态绑定的问题
头文件已经正常包含,以下代码在VS IDE上编译和运行结果是123456789class A{ public: void test(){printf("test A");}};int main(){ A*pA=NULL; pA->test();return 0;}正确答案: C 你的答案: C (正确)编译出错程序运行奔溃输出"test A"输出乱码调用对象 pA...原创 2018-03-11 18:07:09 · 171 阅读 · 0 评论 -
字符流中第一个不重复的字符
时间限制:1秒 空间限制:32768K 热度指数:51294本题知识点: 字符串 算法知识视频讲解题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。class Solut...原创 2018-03-17 19:39:23 · 162 阅读 · 0 评论 -
链表中环的入口结点
时间限制:1秒 空间限制:32768K 热度指数:71197本题知识点: 链表 算法知识视频讲解题目描述一个链表中包含环,请找出该链表的环的入口结点。/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/c...原创 2018-03-17 18:01:04 · 129 阅读 · 0 评论 -
删除链表中重复的结点
时间限制:1秒 空间限制:32768K 热度指数:123981本题知识点: 链表 算法知识视频讲解题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/*struct ListNode { int val; ...原创 2018-03-17 17:30:20 · 112 阅读 · 0 评论 -
C++关于指针初始化
若MyClass为一个类,执行1MyClass a[4],*p[5];语句时会自动调用该类构造函数的次数是正确答案: C 你的答案: D (错误)2549类数组调用构造函数4次,指针数组如果没有初始化则任意指向,不会调用构造函数。...原创 2018-03-11 17:53:29 · 1326 阅读 · 0 评论