数据结构与C++
flyyufenfei
这个作者很懒,什么都没留下…
展开
-
利用指针访问Mat矩阵元素
#include #include "cv.h"#include "highgui.h"using namespace std;int main(){ float mat[4][4]; for (int i = 0; i<4; i++) { for (int j = 0; j<4; j++) { mat[i][j] = (float)rand() / RAND_MAX;原创 2017-10-06 15:52:58 · 1986 阅读 · 0 评论 -
C++ 已知两个时间(年月日)求日期差
求日期差例如,我想算一下现在(2016.11.21)到明年高考(2017.6.7)还有多少天#include<iostream> #include <ctime> using namespace std; int main() { struct tm t1 = { 0 }; struct tm t2 = { 0 }; ...转载 2018-04-02 22:03:18 · 10590 阅读 · 1 评论 -
计算C++程序执行时间 精确到毫秒级
参考别人的自己总结的。本人水平有限,有错误麻烦指出。两种方法:(请忽略冒泡排序)第一种:#include <iostream>#include <vector>#include <time.h>#include <sys/timeb.h>#include <Windows.h>using namespace std;void ...原创 2018-03-31 10:20:06 · 3397 阅读 · 0 评论 -
C++中的lambda表达式基本用法
C++ Lambda表达式基本用法转载:https://lellansin.wordpress.com/2014/01/02/c-lambda%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95/Posted on 2014-01-02创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对...转载 2018-03-01 16:28:08 · 1522 阅读 · 0 评论 -
数组中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007例如:数组{7,5,6,4},应该输出5。#include #include using namespace std;long long InversePairsCore(vector原创 2017-10-15 16:52:38 · 226 阅读 · 0 评论 -
int/long/long long/double类型的取值范围
int: 4byte = 32 bit有符号signed范围:2^31-1 ~ -2^31即:2147483647 ~ -2147483648无符号unsigned范围:2^32-1 ~ 0即:4294967295 ~ 0long: 4 byte = 32 bit同int型double: 8 byte = 64 bit范围:1.79769e+308 ~ 2.22507e-30转载 2017-10-15 15:10:42 · 19061 阅读 · 1 评论 -
丑数
把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。#include #include #include #include using namespace std;int Min(int n1, int n2, int n3){ int min = n1原创 2017-10-12 22:42:38 · 180 阅读 · 0 评论 -
把数组排成最小的数——数字转字符串to_string()的用法,sort()的compare函数用法
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。#include #include #include #include using namespace std;/*对vector容器内的数据进行排序,按照 将a和b转为string后 若 a+b 如 2 21原创 2017-10-12 21:10:56 · 577 阅读 · 0 评论 -
整数中1出现的次数
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。//链接:https://www.nowcoder.com/questionTerminal/bd7f97830204原创 2017-10-12 19:22:02 · 261 阅读 · 0 评论 -
和为S的连续
题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连转载 2017-10-21 08:40:06 · 276 阅读 · 0 评论 -
数组中只出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。例如{2,4,3,6,3,2,5,5}中只出现一次的数字是4和6.答案巧妙的利用了异或的特点,相同的数字异或之后是0,不同的数字异或之后是1.那么如果这组数中只有一个数字出现了一次的话,所有数异或之后的结果就是这个数字的值。现在只需想办法让我们这个数组分为两部分,每一部分中只有一个数转载 2017-10-18 21:29:51 · 263 阅读 · 0 评论 -
判断一棵树是否为平衡二叉树
平衡二叉树是指:父节点的左子树和右子树的高度之差不能大于1,也就是说不能高过1层。判断一棵树是否为平衡二叉树,需要判断每个节点的左右子树的深度,只判断整个树的根节点是不行的。刚做了一道求树的深度的题,然后这道题想当然就去先求根节点的左右子树的深度差是否大于1,然后分别求根节点的左子树和右子树进行递归。这样一来,树的节点会被遍历好多遍,时间复杂度较高。答案是这样写的:对树进行后序转载 2017-10-18 20:12:09 · 1190 阅读 · 0 评论 -
二分法查找有序数组中某元素个数
class Solution {public:int BinarySearch(vector data, int low, int high, int k){ while (low<=high) { int m = (high + low) / 2; if (data[m] == k)return m; else if (dat转载 2017-10-18 09:35:44 · 2025 阅读 · 0 评论 -
BFPRT 算法(TOP-K 问题)
一:背景介绍在一大堆数中求其前k大或前k小的问题,简称TOP-K问题。而目前解决TOP-K问题最有效的算法即是BFPRT算法,其又称为中位数的中位数算法,该算法由Blum、Floyd、Pratt、Rivest、Tarjan提出,最坏时间复杂度为O(n)。在首次接触TOP-K问题时,我们的第一反应就是可以先对所有数据进行一次排序,然后取其前k即可,但是这么做有两个问题:(1):快转载 2017-10-17 19:01:18 · 651 阅读 · 0 评论 -
C++标准库中的堆-heap
转载:https://elloop.github.io/c++/2016-11-29/learning-using-stl-72-make-heap前言本文介绍如何使用STL里的heap(堆)算法。第一次接触heap这种数据结构是在大学的数据结构教材上,它是一棵完全二叉树。在STL中,heap是算法的形式提供给我们使用的。包括下面几个函数:make_heap: 根据指定的迭转载 2017-10-08 16:07:41 · 17247 阅读 · 0 评论 -
剑指offer-打印出字符串的所有排列
输入一个字符串, 按字典序打印出该字符串中字符的所有排列。例如输入字符串abc, 则打印出由字符a, b, c所能排列出来的所有字符串abc, acb, bac, bca, cab和cba。输入描述 :输入一个字符串, 长度不超过9(可能有字符重复), 字符只包括大小写字母。#include #include #include #include using namespace原创 2017-10-07 09:36:05 · 447 阅读 · 0 评论 -
关于二叉树的构建
二叉树的前序、中序和后序序列中的任何一个都不能唯一确定一棵二叉树。二叉树的构建主要有两大种方法:第一种是根据前序+中序或者后序+中序来唯一确定二叉树的结构;(这个课本上都有讲)第二种是根据二叉树对应的扩充二叉树的先序或者后序序列来确定。(本文主要讨论部分)上面说的第二种,有些文档资料甚至课本里说根据扩充二叉树的任意一个遍历序列就能唯一确定这棵二叉树。这个说法是错误的原创 2017-08-16 21:21:33 · 245 阅读 · 0 评论 -
C++中find()函数的使用方法
转载自:http://blog.csdn.net/youxin2012/article/details/9162415(貌似404了)授人以鱼不如授人以渔:我查这种函数怎么用(尤其STL)的时候,一般都是去这个网站http://www.cplusplus.com/ 搜索框直接搜索就可以。别的有什么好用的欢迎评论区留言。string中 find()的应用 (rfind() 类似,只是从...转载 2017-03-23 10:37:47 · 31129 阅读 · 1 评论