- 博客(29)
- 资源 (4)
- 问答 (3)
- 收藏
- 关注
原创 C/C++读入若干连续数据
如果题目要求你读入若干个连续整数,其间用空格隔开,换行符作为输入结束标准,数目不知道,要求你将输入的数排序打印,求max,min,排序等用优先队列实现排序,当然使用set也可以#include <iostream>#include <queue>using namespace std;int main(){ priority_queue<int,vect...
2018-12-19 21:51:08 2232 1
原创 PAT乙级1053住房空置率
#include using namespace std;#include int main(){vector<int>v1;int N, D;int may_empty, real_empty;float e;cin >> N;cin >> e;cin >> D;may_empty = real_empty = 0;fo...
2018-12-19 21:24:29 164
原创 map关联容器的基本操作
map<key,value>保存的一对pair ,其内部通过红黑树实现,查找效率非常高,用户插入数据后,系统会自动根据key值大小进行排序,当然,一些自定义的类需要自定义比较函数,例如仿函数,重载< , >操作符等。//简单map容器初始化void test02() { //map存储的是一个pair map<int, string>MyMap; My...
2018-12-14 16:54:20 247 1
原创 pat乙级 1094谷歌招聘问题
思路 用c++ string很快解决问题#include "pch.h"#include <iostream>using namespace std;#include <string>#include <math.h>//判断是否是素数bool is_prime(int num) { if (num == 2 || num == 3) ...
2018-12-12 19:12:26 382 1
原创 c++ define const区别
编译器处理时间:define是在预编译时处理的,const则是在编译运行时处理的。编译器处理方式:对于define编译器每次处理时只是简单的做替换,不会做类型检测,可能会有安全隐患,并且每次替换都会重新分配内存;对于const编译器会编译检查,会报编译错误,const常量在常量内存区中存储,至始至终只会占用一份内存,不会像define那样每次替换都会重新分配内存。数据类型:define 没有明...
2018-12-31 09:38:11 790
原创 快排 quicksort
快排,采用分治法。void my_swap(vector<int>&v,int a,int b) { int temp = v[a]; v[a] = v[b]; v[b] = temp;}void quickSort(vector<int>&v, int begin, int end) { if (end >= begin) { ...
2018-12-29 00:35:34 147
原创 实现vector的swap函数误区
今天coding的时候想实现vector的swap函数,刚开始是这样写的,发现调用swap后原来的vector里面的值根本没有发生改变,想了许久,才发现没有取引用,vector作为一个类,不传引用仅仅是发生拷贝构造了一个局部对象,改变的只是局部对象里的值。void swap(vector<int>v, int a, int b) { int temp = v[a]; v[a] =...
2018-12-29 00:33:02 1617
原创 堆排序 heapsort
堆是一种数据结构,注意不是二叉树,是数组结构,但是处理堆时可以看成完全二叉树,分为大根堆和小根堆。一:首先初始化堆,保证每个root左右孩子的值均不大于它,且该点需对每个子树的root成立//我这里是调整为大根堆 void init(vector<int>&v) { for (int i = v.size() - 1; i > 0; i--) { ...
2018-12-29 00:27:44 136
原创 行列都有序的二维数组查找问题
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。#include <iostream>#include <vector>using namespace std;bool Find(int target, vector<...
2018-12-27 21:19:07 369
原创 二叉树三种遍历递归及非递归实现
自己把握好入栈出栈时间即可实现#include <iostream>using namespace std;#include <stack>struct btnode { char data; struct btnode *lchild; struct btnode *rchild;};//初始化二叉树void create_btree(btnode *...
2018-12-27 19:57:47 801
原创 判断链表是否有环
有环单链表 就是链表尾结点不指向null,而是任意一个单链表结点思路一:利用set 遍历链表,依次将结点放入set中,第一个放入失败的就是第一个入环结点,否则没有环,但是空间复杂度为O(n)。void hoop1( node* head) { set<node*, cmp>s; node *p = head; while (p != NULL) { node* q = ...
2018-12-27 18:40:11 123
原创 大小端测试及转换
大端方式:big-endian 低位数据放在内存高位小端方式:little-endian 低位数据放在内存低位#include &lt;iostream&gt;using namespace std; void convert(unsigned int* a) { *a = ((*a &amp; 0Xff000000) &gt;&gt; 24) //异或运算 ^ ...
2018-12-26 20:47:23 214 1
原创 小米oj 帮小学生排队
#include <iostream>using namespace std;#include <set>#include <vector>class mpair {public: mpair() {}; mpair(int a, int b) :a(a), b(b) {}; int a; int b; friend istream&...
2018-12-26 19:02:43 446
原创 判断两棵树是否同构
同构 就是结构相同 数据域不管 每个结点度相同下图2棵树是同构的 但是如果左边的树加了红色结点,则不同构思路:二叉树序列化 也可以参考下面的链接https://blog.csdn.net/qq_42673507/article/details/85260617#include <iostream>#include <string>using namespac...
2018-12-26 16:12:01 1477
原创 二叉树 判断一棵树是否是另一棵树的子树
题目:判断判断一棵树是否是另一棵树的子树,子树的意思是只要包含了一个结点,就得包含这个结点下的所有节点。意思就是二叉树结点的值也要相等 如下图2就是1的子树 如果将第二颗树根节点右孩子data改为2 就不是子树了。思路:将二叉树序列化,转化为2个字符串,再利用kmp算法或stl中的find()函数即可,若结点为空用#代表data 二树先序序列化为 1_#8_7##9##_ 用"_"表示一个结...
2018-12-26 13:30:00 2328
原创 链表交叉合并
L1:1 2 3 4 5L2:6 7 8 9 10合并后:1 6 2 7 3 8 4 9 5 10#include <iostream>using namespace std;typedef struct List node;struct List{ int data; struct List* next;};//insert at tailvoid inser...
2018-12-25 18:35:44 890
原创 就地反转链表
就地反转,就是空间复杂度O(1)#include <iostream>using namespace std;typedef struct List node;struct List{ int data; struct List* next;};//insert at tailvoid insert(node* &L, int num) { node...
2018-12-25 15:39:42 116
原创 PAT乙级1050
#include <iostream>using namespace std;#include <vector>#include <algorithm>#include <math.h> bool cmp(int a,int b){ return a>b; }int main(){ int num; cin >&g...
2018-12-25 14:41:51 216
原创 说反话 栈实现
利用栈 能很快解决该问题#include <iostream>#include <stack>using namespace std;#include <string>int main(){ stack<string>str_stack; string s; cin >> s; str_stack.push(s); ...
2018-12-24 13:09:06 204
原创 kmp衍生题 添加字符使字符串包含2个原始子串
题目:已知一个字符串 向末尾添加字符,使新的字符串包含2个原始子串 ,例如原始串为aba 只需添加一个b即可, 若原始子串为abc 则需添加abc,若原始子串为aaa,则只需要加一个a即可。 #include <iostream> #include <string> #include <vector> using namespace...
2018-12-24 12:54:30 146
原创 KMP字符串算法
#include <iostream>#include <string>#include <vector>using namespace std;//求next数组vector<int> Next_arr(const string& s) { vector<int>v(s.size()); v[0] = -1; /...
2018-12-24 12:51:40 88
原创 PAT乙级1040
#include using namespace std;#include //从后往前遍历,遇到T 记录T的个数,若遇到A 则记录AT的个数,遇到P 则记录PAT的个数int main(){string s;cin >> s;long sum;int cur_sum; //记录某一时刻PAT个数int num_T; //记录T的个数sum = cur_su...
2018-12-19 20:16:54 141
原创 PAT1039 乙级
运用map容易 复杂度nlgn#include <iostream>#include <map>#include <set>#include <string>using namespace std;//string 放入mapvoid Push_map(map<char,int>&m, const string&...
2018-12-18 15:51:52 161
原创 PAT乙级1037
分割字符串即可,注意substr(begin,end)里的参数 是指将begin到end-1位上的数提取出来#include <iostream>#include <string>#include <math.h>using namespace std;//首先分割字符串 封装成函数void My_Split_String(string s, in...
2018-12-17 22:06:16 84
原创 PAT乙级1042
#include <iostream> using namespace std; #include <string> #include <map> int main() { string s; getline(cin, s); map<char, int>My_map; ...
2018-12-17 21:25:44 129
原创 PAT乙级1091
#include <iostream>#include <string>#include <vector>using namespace std;//判断一个数是否是自守数void ziShouShu(int a) { string s; string aa = to_string(a); for (int i = 1; i < 10; ...
2018-12-12 20:31:55 193
原创 PAT乙级1093
采用vector string很快解决问题#include <iostream>#include <set>using namespace std;#include <string>#include <vector>#include <algorithm>int main(){ string s1, s2; //要...
2018-12-12 19:54:00 275
原创 C++string 基本函数实现
#include <iostream>#include <string>using namespace std;//初始化-----------------------------------------------------void test01() { string a;//默认构造函数 string b("string"); string c = "...
2018-12-11 22:05:39 450
原创 白话文说c++ 操作符重载
前言c++操作符重载的背景主要是原有的操作符+ - += 等只能运算基本数据类型 int double这些,但是实际中我们经常遇到很多自定义的类型,比如复数 结构体等,比如要计算1+2i 与2+3i这两个复数的和或者比大小,计算机就没有直接的方法进行计算,这时候,运算符重载起到了很大的作用,其实我们也可以自己定义一个add(complex a,complex b)进行计算,但是通过运算符重载,我...
2018-12-05 21:03:49 130
IDEA连接HBase出现如下问题 请教一下。
2019-04-10
关于django runserver的问题,求教各路神仙,小生百度了半天也没有解决.
2019-03-06
求教一个自定义类的set容器问题
2018-12-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人