
C++
文章平均质量分 58
子非鱼_cw
这个作者很懒,什么都没留下…
展开
-
复数四则运算--类模板实现
#includeusing namespace std;templateclass Complex {public: Complex(numtype a=0, numtype b=0) :x(a), y(b) {} Complex complex_add(Complex &); Complex complex_sub(Complex &); Complex complex_mul原创 2016-06-28 12:36:52 · 1086 阅读 · 0 评论 -
迷宫问题、最短路(BFS,DFS)
#include #include using namespace std;const int N = 100;char map[N][N];bool vis[N][N] = {0}; //访问记录int path[N][N]; //记录路径 0、1、2、3分别代表上下左右int fx[4] = {-1,1,0,0}; //上下左右移动int fy[4] = {0,原创 2017-08-02 15:42:50 · 3203 阅读 · 0 评论 -
大数相乘
#include #include #include using namespace std;int main(){ string s1, s2; while (cin >> s1 >> s2) { vector v1, v2; for (size_t i = 0; i != s1.size(); ++i) v1.push_back((int)(s1[s1.siz原创 2017-08-02 09:52:43 · 459 阅读 · 0 评论 -
把排序数组转化为高度最小的二叉树
把排序数组转换为高度最小的二叉搜索树思路:直接采用中间值来作为二叉树的根节点;将原数组分成左右均等或者相差一个数的两个新数组;然后递归的对这两个新数组进行相同的处理,这样对于每一个根节点,其左右子树的高度相差绝对值不会超过1,也就是满足了二叉平衡树的要求了。struct TreeNode { int val; TreeNode* left; TreeNode* right; Tre原创 2017-06-20 20:24:19 · 830 阅读 · 0 评论 -
各种排序算法的对比与C++实现
排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。一、冒泡排序基本思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程原创 2017-06-09 11:13:33 · 714 阅读 · 0 评论 -
Eigen基础
#include #include using namespace std;#include#include#define MATRIX_SIZE 50int main(int argc, char **argv) { //矩阵定义 Eigen::Matrix matrix_23; Eigen::Vector3d v_3d; Eigen::Matr转载 2016-12-19 16:00:58 · 1999 阅读 · 0 评论 -
最大的奇约数和
小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11.现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 +原创 2016-10-05 21:53:23 · 1107 阅读 · 0 评论 -
暗黑的字符串
一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符串你的任务就是计算出长度转载 2016-10-05 18:25:32 · 562 阅读 · 0 评论 -
跳石板问题(约数)
小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M = 24:4->6-原创 2016-10-05 16:52:24 · 2633 阅读 · 0 评论 -
构造回文序列
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列, {1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。现在给出一个数字序列,允许使用一种转换操作:选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之原创 2016-10-04 16:22:18 · 4609 阅读 · 2 评论 -
最大公共子序列(删除字符使得剩下的是回文串)
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。思路:采用常规方法复杂度太大,应该采用动态规划的思想。求原字符串和其反串的最大公共子序列(不是子串,因为可以不连续)的长度(使用动态规划),然后用原字符串的长度减去这个最大公共子串的长度就得到了最小删除的字符个数。状态:当str1的下标为m,str2原创 2016-10-10 22:48:18 · 1106 阅读 · 0 评论 -
C++类实践——时间类
#include#include"time.h"using namespace std;bool Time::is_time() { if (hour 23 || minute 59 || dec 59) return false; return true;}void Time::show_time() { if (is_time()) cout << hour <<原创 2016-06-23 22:22:40 · 614 阅读 · 0 评论 -
剑指offer重点复习题目
题目:二叉搜索树与双向链表输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), ri原创 2017-08-03 15:51:26 · 853 阅读 · 0 评论