C++
__矮油不错哟
多多交流
展开
-
二叉搜索树
二叉搜索树的定义二叉搜索树,也称有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;任意节点的左、右子树也分别为二叉查找树。没有键值相等的节点。...转载 2018-05-23 11:52:59 · 125 阅读 · 0 评论 -
[编程题] 被3整除
题目链接: https://www.nowcoder.com/test/question/51dcb4eef6004f6f8f44d927463ad5e8?pid=9763997&tid=15741750题目描述: 小Q得到一个神奇的数列: 1, 12, 123,…12345678910,1234567891011…。 并且小Q对于能否被3整除这个性质很感兴趣。 小Q现在希...转载 2018-05-23 11:11:09 · 876 阅读 · 0 评论 -
《剑指offer》面试题18——树的子结构(C++)
题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路: 链接:https://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88 来源:牛客网思考: 1.首先需要递归pRoot1树,找到与pRoot2根一样的节点,这需要一个遍历 2.找到相同...转载 2018-05-22 22:02:43 · 758 阅读 · 0 评论 -
dfs深度优先算法实现图的遍历(C++)
参考书: 《啊哈算法第五章:图的遍历》 《第一节。深度优先和广度优先》——深度优先 深度优先算法实现图的遍历代码如下:#include <iostream>using namespace std;int book[101],sum,n=5,e[101][101];void dfs(int cur){ cout<<" "<<cur;...原创 2018-05-16 17:49:08 · 1581 阅读 · 1 评论 -
《剑指offer》面试题6——重构二叉树——已知 前序遍历和中序遍历,求后序遍历(C++)
给定二叉树的前序遍历和中序遍历,,输出后序遍历结果。代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;vector&amp;amp;gt;using namespace std;struct TreeNode{ int val; TreeNode *left; TreeNode *right;转载 2018-05-22 20:38:47 · 804 阅读 · 0 评论 -
创建一棵二叉树(C++)以及遍历
来源:百度知道:https://zhidao.baidu.com/question/1864125116142767667.html#include&lt;iostream&gt;using namespace std;// 二叉树结点类struct BinTreeNode{// 数据成员: double data; // 数据域 BinTreeNode *leftChild;...转载 2018-05-22 17:29:35 · 5964 阅读 · 0 评论 -
链表(C++)
参考书《啊哈算法》——啊哈磊代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;//结点的结构体struct node{ int data; //第一个成员是整形data,用来存储具体的数值。 //第二个成员是指针,用来存储下一个结点的地址。 ...原创 2018-05-15 22:34:17 · 128 阅读 · 0 评论 -
使用new和delete
变量是编译时分配内存的有名称的内存。 而指针只是为可以通过名称直接访问的内存提供了一个别名。指针的真正用武之地在于在运行阶段分配未命名的内存以存储值。在这种情况下,只能通过指针来访问内存。首先new找到一块长度正确的内存块,并返回该内存的地址; 然后程序员的责任是将该内存地址赋值给一个指针。如: 方式一:int * pn=new int; 方式二: int higgens; int...原创 2018-05-15 21:54:02 · 401 阅读 · 0 评论 -
数据结构——树
图片来源:https://www.cnblogs.com/willwu/p/6007555.html树其实就是不包含回路的连通无向图。树的特性: 1)一棵树中的任意两个结点有且仅有唯一的一条路径连通; 2)一棵树如果有nnn个结点,则它一定有n−1n−1n-1条边; 3)在一棵树中加一条边将会构成一个回路。树这种数据结构的用途: 例如:家族的族谱图、公司的组织结构图、书的目录等...原创 2018-05-22 11:49:36 · 7682 阅读 · 0 评论 -
《剑指offer》面试题22——栈的压入、弹出序列(C++)
1。题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)链接:https://www.nowcoder.com/questionTerm...原创 2018-05-22 11:01:56 · 729 阅读 · 0 评论 -
变态跳台阶
1、题目描述:2、解题思路3、代码1、题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。链接:https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387 来源:牛客网2、解题思路关于本题,前提是n...转载 2018-05-15 18:35:32 · 111 阅读 · 0 评论 -
跳台阶问题
问题描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题:链接:https://www.nowcoder.com/questionTerminal/8c82a5b80378478f9484d87d1c5f12a4 来源:牛客网比较倾向于找规律的解法,f(1) = 1, f(2) = 2, f(3) = 3, f(4) = 5, 可...转载 2018-05-15 18:09:53 · 92 阅读 · 0 评论 -
《剑指offer》面试题24——二叉搜索树的后序遍历序列(C++)
1.题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。2.解题思路:链接:https://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd 来源:牛客网 采用分治法的思想,找到根结点、左子树的序列、...原创 2018-05-23 13:32:17 · 257 阅读 · 0 评论 -
《剑指offer》面试题25——二叉树中和为某一值的路径
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。代码://主函数——核心代码vector<vector<int> > allRes;vector<int> tmp;void bfsFind(TreeNode* node, int expectN...原创 2018-05-23 15:58:06 · 169 阅读 · 0 评论 -
C++排序算法——归并排序
归并排序C++归并排序从小到大排序:首先让数组中的每一个数单独成为长度为1的区间,然后两两一组有序合并,得到长度为2的有序区间,依次进行,直到合成整个区间。#include <iostream>using namespace std;//4 归并排序/*归并排序从小到大排序:首先让数组中的每一个数单独成为长度为1的区间,然后两两一组有序合并,得到长度为2的有序区间,...原创 2018-09-18 18:59:28 · 449 阅读 · 0 评论 -
《剑指offer》面试题41/42——和为s的两个数字VS和为s的连续正数序列(C++代码实现)
和为s的两个数字VS和为s的连续正数序列1. 和为s的两个数字;1)思路:假设数组升序排列: 定义两个指针min 和max; 如果这两个指针指向的数字等于sum,则找到; 如果和小于sum,则将min向右移; 如果和大于sum,则将max向左移。2)代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;vector&amp;amp;原创 2018-07-12 11:41:44 · 479 阅读 · 0 评论 -
开发相关:
1):C#利用Picturebox控件显示图片: https://blog.csdn.net/liyuqian199695/article/details/54098938/转载 2018-07-17 13:36:45 · 202 阅读 · 0 评论 -
最短路径问题---Dijkstra算法详解
原文链接:https://blog.csdn.net/qq_35644234/article/details/608707191、最短路径问题介绍问题解释: 从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径解决问题的算法:迪杰斯特拉算法(Dijkstra算法)弗洛伊德算法(Floyd算法)SPFA算法...转载 2018-06-26 22:22:23 · 393 阅读 · 0 评论 -
数据结构:最小生成树
数据结构:最小生成树详解链接: https://blog.csdn.net/qq_35644234/article/details/59106779转载 2018-06-26 21:50:42 · 253 阅读 · 0 评论 -
《剑指offer》面试题34——丑数
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。代码://要注意,后面的丑数是有前一个丑数乘以2,3,5中的一个得来。因此可以用动态规划去解//同时注意一下,题目意思应该是质数因此,而不是因子,因为8的因子有1,2,4,8链接:https://www.now...转载 2018-05-31 17:13:52 · 160 阅读 · 0 评论 -
转载【C++】int转换为string的两种方法(to_string、字符串流)
原文链接:https://blog.csdn.net/chavo0/article/details/51038397记录一下用到过的int转换成string的两种方法:1:第一种是to_string()函数第一种是to_string函数,这是C++11新增的,使用非常方便,简单查了下:C++11标准增加了全局函数std::to_string,以及std::stoi/stol/sto...转载 2018-06-22 10:44:54 · 558 阅读 · 0 评论 -
sort()函数——C++
sort函数用法: 1、sort函数可以三个参数也可以两个参数,必须的头文件#include &lt; algorithm&gt;和using namespace std; 2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n) 3、Sort函数有三个参数:(第三个参数可不写) (1)第一个是要排序的数组的起始地址。 (2)第二个是结束的地址(最后一位要排序的地址) ...原创 2018-06-22 10:36:05 · 178 阅读 · 0 评论 -
[转载]stl之string类用法详细总结
原文地址:https://blog.csdn.net/lsh_2013/article/details/46728993标准c++中String类非常强大,合理使用,能极大提高编程效率,下面就对string类的用法进行总结。头文件#include&lt;string&gt;String类的构造函数如下:1) string s; //生成一个空字符串s2) s...转载 2018-05-24 12:24:07 · 161 阅读 · 0 评论 -
《剑指offer》面试题46、47、49
//面试题46:求1+2+3+...+n//求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。int Sum_Solution(int n){ int ans=n; ans&amp;amp;amp;&amp;amp;amp;(ans+=Sum_Solution(n-1)); return ans;}/...转载 2018-05-24 12:06:14 · 296 阅读 · 0 评论 -
《剑指offer》面试题33、32——把数组排成最小的数、整数中1出现的次数
31.把数组排成最小的数输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。代码:```#include&amp;lt;iostream&amp;gt;#include&amp;lt;algorithm&amp;gt;using namespace std;//链接:https://w...转载 2018-05-28 19:23:09 · 217 阅读 · 0 评论 -
斐波那契数列(剑指offer)
原文链接: 斐波那契数列的递归算法与非递归算法以下皆为转载。一、斐波那契数列由于斐波纳挈数列是以兔子的繁殖引入的,因此也叫“兔子数列”。它指的是这样一个数列:0,1,1,2,3,5,8,13……从这组数可以很明显看出这样一个规律:从第三个数开始,后边一个数一定是在其之前两个数的和。在数学上,斐波纳挈数列可以以这样的公式表示: F(0) = 0 F(1) = 1, F(n)...转载 2018-05-15 17:54:39 · 363 阅读 · 0 评论 -
旋转数组的最小数字(牛客网C++代码)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。//折半查找–每次折半,时间复杂度logn#include<iostream>#include&...原创 2018-05-15 17:32:41 · 603 阅读 · 0 评论 -
剑指offer(数值的整数次方)
数值的整数次方 解题思路: 注意考虑不同的情况: 1:指数为整数,包括正整数、负整数和0; 2:对于底数为0,指数为负数 的情况,此时0作分母,要出错。。在计算机中表示小数(包括float和double类型)都有误差,,我们不能直接用等号(==)判断两个数是否相等。。如果两个数的差的绝对值很小,比如小于0.0000001,就可以认为这两个数相等。#include&lt;iostre...原创 2018-05-19 15:07:09 · 311 阅读 · 0 评论 -
排序算法2:冒泡排序
链接1: 邻居好说话:冒泡排序 【啊哈!算法】原创 2018-05-13 11:55:38 · 269 阅读 · 0 评论 -
排序算法1:最快最简单的排序——桶排序(C++版本)
讲解链接: 【坐在马桶上看算法】算法1:最快最简单的排序——桶排序 原文中附有代码。以下是自己的代码(C++版本):#include &amp;amp;lt;stdio.h&amp;amp;gt;#include &amp;amp;lt;iostream&amp;amp;gt;using namespace std;void TongSort(int *score,int num){ int a[11];原创 2018-05-13 11:29:40 · 11528 阅读 · 3 评论 -
排序算法3:最常用的排序——快速排序
链接1:【坐在马桶上看算法】算法3:最常用的排序——快速排序 【啊哈!算法】系列 可以说是非常生动的了 链接2:C++简单排序算法之快速排序2中的代码:#include &amp;amp;lt;iostream&amp;amp;gt;using namespace std;void MySwap(int &amp;amp;amp;a,int &amp;amp;amp;b){ if(a==b) ret原创 2018-05-12 17:31:49 · 538 阅读 · 1 评论 -
二分法查找——C++代码
参考代码: https://www.cnblogs.com/wanglog/p/6650695.html伪代码:输入:排序好的数组array,需要查找的字key输出:对应的下表----------定义low,high,midwhile(low<high){mid=(low+high)/2;if (array[mid]==key) return mid;...原创 2018-05-12 15:53:12 · 11690 阅读 · 6 评论 -
《剑指offer》面试题4——替换空格 C++编程
题目及解题思路见链接: https://blog.csdn.net/l_xrui/article/details/51685552代码如下:#include &amp;lt;iostream&amp;gt;using namespace std;void ReplaceBlanks(char string[], int length){ if(string==NULL||length&amp;...原创 2018-05-12 14:06:29 · 207 阅读 · 0 评论 -
算法——查找和排序
查找算法:顺序查找、二分查找、哈希表查找、二叉排序树查找。 排序算法:插入排序、冒泡排序、归并排序、快速排序等。以下皆为转载: 原文地址: https://www.cnblogs.com/wxisme/p/5243631.html1.1 冒泡排序:冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得...转载 2018-05-11 16:52:34 · 14799 阅读 · 0 评论 -
CodeBlocks常用操作快捷键
CodeBlocks常用操作快捷键 1.编辑部分: Ctrl+Shift+C:注释掉当前行或选中块 Ctrl+Shift+X:解除注释 按住Ctrl,滚动鼠标滚轮,放大或缩小字体Ctrl + A:全选 Ctrl + C:复制 Ctrl + X: 剪切 Ctrl + V:粘贴 Ctrl + Z:撤销 Ctrl + S:保存 Ctrl + Y / Ctrl + Shift + ...原创 2018-05-11 16:15:54 · 758 阅读 · 0 评论 -
C++中的向量vector
https://blog.csdn.net/duan19920101/article/details/50617190/ 学习链接转载 2018-05-11 15:48:41 · 344 阅读 · 0 评论 -
C++中的结构体
C++中struct简介 转载:地址 1 struct概述 C++的内置简单数据类型,如int、float等只能存储一种类型的数据。但现实世界更为复杂,几乎任何我们能够想到的物理对象,即使是进行最低限度的描述,也都需要好几项数据才行。可以使用关键字struct定义一种复杂的数据类型来包含多种信息,这就是结构。2 struct语法结构sturct中定义元素的每一行都以分号结束,右大...原创 2018-05-11 15:35:24 · 143 阅读 · 0 评论 -
网易编程题——牛牛的闹钟
链接:https://www.nowcoder.com/questionTerminal/9173e83d1774462f81255a26feafd7c6?orderByHotValue=0&amp;amp;amp;amp;amp;amp;page=1&amp;amp;amp;amp;amp;amp;onlyReference=false 来源:牛客网问题描述: 牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X原创 2018-05-11 14:35:07 · 704 阅读 · 0 评论 -
Dijkstra算法——通过边实现松弛
参考资料:啊哈算法第六章:最短路径 《啊哈算法——第六章第二节》代码:#include <iostream>#include <windows.h> using namespace std;int book[101], dis[10],n = 6, e[10][10], minn,u,v; //n为顶点个数int inf = 99999999;...原创 2018-05-17 17:52:02 · 377 阅读 · 0 评论 -
数组中的奇数排在偶数组前面
单纯的使得奇数在前,偶数在后,不考虑相对位置#include&amp;amp;lt;iostream&amp;amp;gt;#include&amp;amp;lt;vector&amp;amp;gt;#include&amp;amp;lt;windows.h&amp;amp;gt;using namespace std;void reOrderArray(vector&amp;am原创 2018-05-19 16:06:58 · 292 阅读 · 0 评论