c/c++
文章平均质量分 69
grace_fang
这个作者很懒,什么都没留下…
展开
-
剑指offer 二叉树中和为某一值的路径(C++)
题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 #include<iostream>#include<vector>using namespace std;struct TreeNode{ int val; struct TreeNode *left; str...原创 2018-04-15 12:50:25 · 597 阅读 · 0 评论 -
BFS和DFS模板
本文转载于 http://blog.csdn.net/zjqlovelyy/article/details/8454878#include<stdio.h>#define N 100/**DFS深度优先搜索是从图中的某个顶点出发,先访问初始点,然后访问其邻接点u(没有被访问过,下同),再访问u的邻接点,一直到深入访问*///邻接表结构typedef struct Anode...转载 2018-03-16 20:45:32 · 239 阅读 · 0 评论 -
左神算法课1.3 字符串
如果有一个字符串str,把字符串str前面任意的部分挪到后面去形成的字符串叫做str的旋转词。比如 str=”1234”,str的旋转词有“1234” 2341 3412 4123给定两个字符串a和b 请判断a和b是否互为旋转词思路:最优解复杂度为O(N)判断str1 与str 2是否长度相等如果长度相等 生成str1+str12的大字符喘用KMP 算法判断大字符串中是否含有str2.#incl...原创 2018-03-09 20:24:20 · 506 阅读 · 1 评论 -
直通BAT算法精讲课:1.2 二叉树打印练习题
有一棵二叉树,请设计一个算法,按照层次打印这棵二叉树。给定二叉树的根结点root,请返回打印结果,结果按照每一层一个数组进行储存,所有数组的顺序按照层数从上往下,且每一层的数组内元素按照从左往右排列。保证结点数小于等于500。#include<iostream>#include<vector>#include<queue>using namespace s...原创 2018-03-09 18:33:29 · 280 阅读 · 0 评论 -
并查集-城镇道路问题
原文地址:http://blog.csdn.net/niushuai666/article/details/6662911例子就是杭电上的畅通工程:http://acm.hdu.edu.cn/showproblem.php?pid=1232首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们...转载 2018-03-15 22:41:40 · 779 阅读 · 0 评论 -
用两个队列实现一个栈
/*用两个队列实现一个栈栈:先进后出 队列:先进先出 入栈:将元素进队列A出栈:判断队列A中元素的个数是否为1,如果等于1,则出队列,否则将队列A中的元素 以此出队列并放入队列B,直到队列A中的元素留下一个,然后队列A出队列,再把 队列B中的元素出队列以此放入队列A中。*/#include<iostream>#include<stack>#incl...原创 2018-02-28 14:18:15 · 173 阅读 · 0 评论 -
剑指offer面试题33:二叉搜索树的后序遍历序列(C++)
时间限制:1秒 空间限制:32768K 热度指数:164257题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。AC代码:class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { ...原创 2018-03-07 15:42:55 · 409 阅读 · 0 评论 -
vector反向迭代器的使用(转载测试修改)
转载+修改本文转载于原文链接反向迭代器1 反向迭代器其实没什么特殊的,他只是在遍历的方向上和普通迭代器不通而已:每一个容器里面都有Iterator(迭代器),可以从容器的begin位置到end-1位置,通过++来遍历。同样也有个反向迭代器reverse_iterator,从rbegin(=end-1)到rend(=begin-1)反向遍历,仍然通过++. 2 ...转载 2018-02-27 11:57:58 · 1024 阅读 · 0 评论 -
剑指offer面试题32:从上到下打印二叉树(c++ 完整代码)
提交网址: http://www.nowcoder.com/practice/7fe2212963db4790b57431d9ed259701?tpId=13&tqId=11175题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。分析:此题即为二叉树的BFS,使用队列可以解决。AC代码:/*从上向下打印二叉树二叉树层次遍历1.功能思路:借助队列最终返回的是vector...原创 2018-03-06 21:46:40 · 1700 阅读 · 0 评论 -
C++容器用法简介——stack
本文转载于http://blog.csdn.net/gscsdlz/article/details/52169463一、简介 stack是一种容器适配器(STL的容器分为顺序容器和关联容器,容器适配器,是对这两类容器进行包装得到的具有更强的约束力的容器),被设计来用于操作先进后出(FILO)结构的情景,在这种情况下, 元素的插入和删除都只能在容器的尾部进行。 stack通过...转载 2018-02-26 23:39:59 · 2007 阅读 · 1 评论 -
vector中insert()的用法详解
本文转载于http://blog.csdn.net/duan19920101/article/details/51557854insert() 函数有以下三种用法:1、在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器2、在指定位置loc前插入num个值为val的元素 3、在指定位置loc前插入区间[start, end)的所有元素 举例: [cpp] view plain copy...转载 2018-02-26 16:22:39 · 1540 阅读 · 0 评论 -
C++ 中vector的使用方法
本文转载于http://blog.csdn.net/duan19920101/article/details/50617190在c++中,vector是一个十分有用的容器。作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。特别...转载 2018-02-26 16:21:23 · 186 阅读 · 0 评论 -
C++迭代器
本文转载于https://www.cnblogs.com/danielStudy/p/6802435.html迭代器的简介:迭代器类似于指针类型,它也提供了对对象的间接访问指针是C语言中就有的东西,而迭代器是C++中才有的迭代器提供一个对容器对象或者string对象访问的方法,并且定义了容器范围使用迭代器:和指针不一样的是,获取迭代器不是使用取地址符,有迭代器的类型同时拥有返回迭代器的成员,比如,...转载 2018-02-26 16:14:37 · 171 阅读 · 0 评论 -
c++中关于char数组/char*指针/string类型
本文转载于http://blog.csdn.net/qq_19851167/article/details/50499777小渣渣一直被有关string和char[]以及char*的相关问题弄得痛不欲生,传参、返回值、函数调用等到底应该用哪种形式这真的是让小渣癫狂了,今天就好好稍微整理一下吧(欢迎补充与指正)大多也是我从各大网站各大博客上面自己整理的,毕竟小渣也是对这个问题感到orz,但是我不会轻...转载 2018-02-26 15:25:48 · 4014 阅读 · 0 评论 -
剑指offer面试题16:数值的整数次方+快速幂算法分析
原题:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。/*剑指书中细节:*1.当底数为0且指数<0时*会出现对0求倒数的情况,需进行错误处理,设置一个全局变量;*2.判断底数是否等于0*由于base为double型,不能直接用==判断*3.优化求幂函数*当n为偶数,a^n =(a^n/2)*(a^n/2)*当n为奇...转载 2018-03-03 14:48:06 · 210 阅读 · 0 评论 -
剑指offer 面试题10:二进制中1的个数 题解
本文转载于原文链接二进制中1的个数提交网址: http://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164参与人数:7222 时间限制:1秒 空间限制:32768K题目描述输入一个整数,输出该数二进制表示中1的个数。(温馨提示: 计算机中负数用补码表示。)先贴上代码,然后来详细...转载 2018-03-03 14:59:36 · 272 阅读 · 0 评论 -
剑指Offer 面试题11:数的整数次方(Leetcode50. Pow(x, n))【C库函数pow模拟】题解
本文转载于http://blog.csdn.net/lzuacm/article/details/51335538点击打开链接题目:实现函数double Power(double base, int exponent), 求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。其中base为浮点数,而exponent为整数(可正可负,可为0).提交网址: http://www.n...转载 2018-03-03 16:08:04 · 304 阅读 · 0 评论 -
虚函数实现原理(转)
本文转载于https://blog.csdn.net/wanghaobo920/article/details/7674631前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如...转载 2018-03-26 16:09:05 · 205 阅读 · 0 评论 -
C++深入理解虚函数
本篇文章转载于 https://www.cnblogs.com/jin521/p/5602190.html为什么使用虚函数?什么是虚函数?虚函数是为了解决什么问题?面向对象的三大特征:封装多态继承普通虚函数虚析构函数纯虚函数抽象类接口类隐藏 vs 覆盖隐藏与覆盖之间的关系早绑定和晚绑定虚函数表什么是多态?相同对象收到不同消息或不同对象收到相同消息时产生的不同的动作。静态多态 vs 动态多态[-:&...转载 2018-03-19 19:33:24 · 165 阅读 · 0 评论 -
剑指offer面试题30:包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。/** 1.dataStack为存储数据的栈,minStack为存储最小值的栈;* 2.push的时候将value值与minStack中的top值比较,小则minStack push value,大则push top值*/class Solution {public: stack<int>...原创 2018-03-06 10:42:30 · 189 阅读 · 0 评论 -
剑指offer面试题29:顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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./*思想,用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束后,往对角分别前进和后退一个单位。提交代码时,主要的问题...原创 2018-03-05 19:49:59 · 303 阅读 · 0 评论 -
剑指offer面试题27:二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5AC代码如下:先...原创 2018-03-05 15:40:02 · 195 阅读 · 0 评论 -
剑指offer面试题26 :树的子结构
提交网址: http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170或 http://www.lintcode.com/zh-cn/problem/subtree/ (难度: Easy)题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结...原创 2018-03-05 13:47:34 · 178 阅读 · 0 评论 -
c++文件流基本用法(fstream, ifstream)
/*杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 *//*杨辉三角11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 */#include "stdio.h"main(){ int a[11][20],i,j; //初始化 for(i=0;i<11;i++) for(j=...原创 2017-03-13 21:33:18 · 32294 阅读 · 0 评论 -
vector<vector<int>> array
#include#include#include #include#include #include using namespace std;void test(int length, vector> arry){ cout << arry.size() << endl; cout << arry[0].size();}int main(){ ve原创 2018-02-25 14:12:13 · 579 阅读 · 0 评论 -
vector的reserve和resize(转载+修改)
本篇文章转载于https://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下: reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添...转载 2018-03-04 13:34:26 · 344 阅读 · 2 评论 -
vector的capacity新增长方式(dev c++实测)
vector的capacity()调用返回vector中最大能够存储的元素个数,也即在下一次需要扩充容量之前能容纳的元素个数。reserve会使容器在必要的时候增长,以便容纳制指定数目的元素。#include <iostream>#include <vector>using namespace std;int main(int argc, char *argv[])...原创 2018-03-04 11:39:43 · 231 阅读 · 0 评论 -
剑指offer面试题21:调整数组顺序使奇数位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变在线提交网址: http://www.nowcoder.com/practice/beb5aa231adc45b2a5dcc5b62c93f593?rp=1&ru=/activity/oj&qru=/ta...原创 2018-03-04 10:36:06 · 177 阅读 · 0 评论 -
剑指offer面试题25:合并两个排序的链表(c++ 递归+非递归)
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则递归AC如下:#include<iostream>#include<vector>using namespace std;struct ListNode{ int val; struct ListNode *next; ListNode(int x): val(x),...原创 2018-03-04 19:39:49 · 238 阅读 · 0 评论 -
剑指offer面试题24:反转链表
题目:定义一个函数,输入一个链表的头节点,反转该链表并输入反转后链表的头节点。AC代码如下:#include<iostream>using namespace std;struct ListNode{ int val; struct ListNode *next; ListNode(int x): val(x),next(NULL){}};class Soluti...原创 2018-03-04 16:28:42 · 293 阅读 · 0 评论 -
剑指offer面试题22:链表中倒数第K个节点
提交网址: http://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167//求链表的倒数第K个节点/*功能思路:用两个指针第一个走到第K-1个节点 第二个指向第K个节点这时候二者同时出发 当第一个节点走到尾节点的时候 第二个节点即是倒数第K个节点 边界测试:k==0? 空...原创 2018-03-04 15:21:13 · 189 阅读 · 0 评论 -
全排列 123 132 213 231 312 321
#includeconst int maxn=11;//p为当前排列,hashTable记录整数x是否已经在P中int n,p[maxn],hashTable[maxn]={false};//当前处理排列的第index号位void generateP(int index){ if(index==n+1) { for(int i=1;i<=n;i++) { printf原创 2017-12-18 23:07:17 · 2902 阅读 · 0 评论 -
PAT 1025
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed to run simultaneously in several places, and the ranklists w原创 2017-12-14 16:40:20 · 186 阅读 · 0 评论 -
递归逆序
/*利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来*/ /*还是那个问题 关于递归跳出的条件是什么其次是递归主体再者是递归之后函数应该做什么 */#include"stdio.h" void resverse(int n){ char a; //char为字符型变原创 2017-03-17 21:39:08 · 5867 阅读 · 0 评论 -
输入三个字符串,允许有空格,输出最大公共子串 例如输入: what your name my name is ABC
/*输入三个字符串,允许有空格,输出最大公共子串例如输入:what your namemy name is ABCname is worthless输出 name*/ #include"stdio.h"#include"string.h"int main(){char str1[30],str2[30],str3[30];pri原创 2017-03-17 15:09:01 · 1049 阅读 · 0 评论 -
二维数组排序的三种方法
#include #define iline 2//行。fun3()中用#define irow 8//列。fun3()中用 /***************************例子中: 以字符数组为例。 以冒泡排序为排序方法。----************************/ //第一种方法:转载 2017-03-15 11:40:35 · 61939 阅读 · 5 评论 -
不用strcat函数,编写程序,将两个字符串串接起来。
/*不用strcat函数,编写程序,将两个字符串串接起来。*/#include"stdio.h"#include"string.h"int main(){ int i;int length1,length2,length3;char str1[20],str2[20],str3[40];gets(str1);for(i=0;str1[i]!=原创 2017-03-15 10:47:17 · 2914 阅读 · 0 评论 -
口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取
* * 输入描述:出三个球,问得到3中不通过颜色的球口袋中有红黄蓝白黑5种颜色的球若干个。每次从口袋中任意取的可能取法。(枚举) * 问题描述: * 程序输出: * 问题分析:略 * 算法设计:略 */ #include "stdafx.h" #include #include using namespace std;转载 2017-03-14 21:47:19 · 9623 阅读 · 0 评论 -
求:a+aa+aaa+…..的值
/*求:a+aa+aaa+…..的值*/#include"stdio.h"void fun(int a,int num) //这里num表示加到多少个a {int count=0 ;int i;int n; n=a;for(i=1;i{count=a+count;a=a*10+n;原创 2017-03-14 20:57:56 · 774 阅读 · 0 评论 -
输入一个字符串,将其中的缩写形式展开,
/* 输入一个字符串,将其中的缩写形式展开,并输出展开后的该字符串。所谓展开缩写形式就是将其中由大小写字母或数字构成的形如"a-f"、"U-Z"、"3-8" 的形式展开成为 "abcdef" 、"UVWXYZ" 、"345678",若出现"f-a"、"A-7"、"9-5"等形式则不予理睬。例如: 输入:qwe246e-hA-d$-%4-7A-Dz-xp-R4-0输出:q原创 2017-03-14 20:35:59 · 2656 阅读 · 1 评论