- 博客(131)
- 收藏
- 关注
原创 力扣 7整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。class Solution {public: int reverse(int x) { long long res = 0; while(x){ res = 10*res + x%10; x /= 10; } ...
2020-02-17 13:46:13
207
原创 力扣6 Z字形变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:st...
2020-02-17 13:22:04
204
原创 UDP与TCP
**UDP**1.基于Internet ip协议1)具有多路复用/分用2)简单的错误校验机制2.特点:会丢,非按序到达3.无连接的:1)发送方与接收方不需要握手2)每个UDP段的处理独立于其他段UDP存在的原因:1)无需建立连接(减少延迟)2)实现简单,无需维护连接状态3)头部开销小4)没用拥塞控制,应用可以更好的控制发送时间和速率UDP应用场景:主要应用在一些容...
2020-02-13 09:30:08
352
原创 HTTP略解
一、HTTP的两种连接形式1)非持久性连接每个TCP连接最多允许传输一个对象HTTP 1.0版本使用非持久性连接假定用户在浏览器输入URLwww.baidu.com/somedepartment/home.index过程如下:1°HTTP客户端向地址为www.baidu.com的服务器的HTTP服务器进程(80端口)发起TCP连接请求。2°HTTP服务器在端口80等待tcp连接,接收...
2020-02-12 20:51:41
504
转载 一看就懂DNS详解
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住IP。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。为什么需要DNS解析域名为IP地址?首先计算机在网络上通讯时只能识别IP地址(网络通讯大部分是基于TCP/IP协议,而TCP/IP是基于IP地址的),比如我要在...
2020-02-12 19:57:36
611
原创 二叉搜索树的查找(指定、最大、最小)、插入、删除
二叉搜索树有以下性质:1.非空左子树的所有键值小于其根节点的键值2.非空右子树的所有键值大于其根节点的键值3.左、右子树都是二叉搜索树【Find查找指定元素】①查找根节点,若为空,返回NULL②非空,则节点值与查找值比较1°X > 根值,右子树中找2°X < 根值, 左子树中找3° X == 根值,返回指向此节点的指针//递归Position Find(ELeme...
2019-08-29 19:49:10
1328
原创 1-5:Two Sum、Add Two Numbers、Longest Substring Without Repeating Characters
https://leetcode.com/problems/two-sum1.Two Sum暴力枚举class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; for(int i =...
2019-08-29 11:14:34
124
原创 二叉树的morris、层序遍历
Morris遍历是一种时间复杂度为O(N),空间复杂度为O(1)的遍历方式可以利用morris遍历实现二叉树的先序、中序、后序遍历流程说明:当前节点为cur①cur无左子树, cur = cur.right;②cur有右子树,找到左子树上最右节点mostright1°if mostright.right == null,mostright.right = cur, cur = cur...
2019-08-29 11:04:22
224
原创 图的广度、深度优先搜索
【广度】①准备一个队列,一个hash表②选中一个初始节点压入队列,并在hash表中标记③进入while循环,条件是队列不为空1°弹出一个元素并打印2°把所有弹出元素的邻接点(没有在hash中标记过的)压入队列④循环结束,打印完成【深度】①准备一个栈,一个hash表②选中一个元素push进栈,并在hash中标记,并打印③while循环,条件是栈不为空弹出一个元素1°若这个元素...
2019-08-27 18:37:49
109
原创 二叉树的先序、中序、后序递归非递归实现
【先序】递归实现:void PreOrderTraversal(BinTree BT){ if(BT){ cout << BT->Data; PreOrderTraversal(BT->Left); PreOrderTraversal(BT->Right); }}非递归①建立一个栈,并把根节点放入栈中②进入循环,循环条件是栈不为空1°新...
2019-08-25 17:30:13
141
原创 如何实现一个特殊栈?(可以返回当前栈元素最小值)
问题:实现一个特殊栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。要求:①pop、push、getMin操作的时间复杂度都是O(1);②设计的栈类型可以使用现成的栈结构。方法1:建立俩个栈,一个栈储存数据元素,另一个栈储存当前数据栈中的最小元素(放在栈顶)。数据栈和最小栈同时动态更新。//没有运行,有错的话各位指出!class newstack{ private:...
2019-08-22 14:57:30
385
原创 如何用数组实现队列和栈?
【栈】栈的特性是先进后出。pop:把栈顶元素弹出栈push:把元素压入栈peek:得到栈顶元素的值/*首先建立一个N大小的数组arr[N],表示这个栈最多有N个元素用size表示栈中元素的个数,初始size = 0,且表示下一个压栈元素的位置*/void push(int num){ if(size >= N ){ cout << "栈满" <<...
2019-08-22 13:14:59
269
原创 为什么快速排序是不稳定的?
举个例子待排数组 6 9 9 10 11我们选择第一个9作为主元(过程是随机的),若把小于等于放在主元的左边,则第二个9就跑到第一个9左面了,从而导致不稳定主元的选择是随机的,导致不稳定的原因在于我们无法保证每次都是稳定的,所以它是不稳定的。...
2019-08-21 20:31:51
5142
2
原创 十大基础排序算法
一、冒泡排序时间复杂度:O(n^2)额外空间复杂度:O(1)void swap(int arr[], int a, int b){ int tmp = a; arr[a] = arr[b]; arr[b] = tmp;}//首先判断数组是否需要排序if(arr.size() < 2 || arr == null) return;for(int end = arr.siz...
2019-08-20 18:00:59
156
原创 PAT乙级1095 解码PAT准考证 (25 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1071786104348536832借鉴的柳神思路https://blog.youkuaiyun.com/liuchuo/article/details/84972869#include <iostream>#include <vector>#include...
2019-07-24 16:03:56
216
原创 PAT乙级1094 谷歌的招聘 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1071785997033074688#include <iostream>#include <string>#include <cmath>using namespace std;bool isp(int num){ for(int...
2019-07-24 14:12:36
199
原创 PAT乙级1093 字符串A+B (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1071785884776722432#include <iostream>#include <string>using namespace std;int main(){ string A, B; int h[300] = {0}; getl...
2019-07-24 12:34:04
101
原创 PAT乙级1092 最好吃的月饼 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1071785779399028736#include <iostream>using namespace std;int main(){ int max = 0, N, M, num[1001] = {0}, cnt = 0; cin >> N ...
2019-07-24 12:26:19
199
原创 PAT乙级1091 N-自守数 (15 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1071785664454127616#include <iostream>#include <cmath>using namespace std;int main(){ int K, N, M, cnt = 0, tmpk; cin >&...
2019-07-24 09:32:14
148
原创 PAT乙级1090 危险品装箱 (25 分)思路
https://pintia.cn/problem-sets/994805260223102976/problems/1038429484026175488首选建立一个二维数组V(很大,以物品编号为一维下标),然后把每个不相容的物品放进去 比如按例子来说:6 320001 2000220003 2000420005 2000620003 2000120005 2000420004 ...
2019-07-24 09:09:43
288
原创 PAT乙级1088 三人行 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/1038429286185074688注意丙是double类型#include <iostream>#include <cmath>using namespace std;void f(int a, double b){ if(a > b)...
2019-07-24 09:03:30
174
原创 PAT乙级1087 有多少不同的值 (20 分) 注意数组大小
https://pintia.cn/problem-sets/994805260223102976/problems/1038429191091781632注意数组大小#include <iostream>using namespace std;int main(){ int N, n, cnt = 0, h[12005] = {0}; cin >> N; f...
2019-07-23 16:25:40
128
原创 PAT乙级1086 就不告诉你 (15 分)测试点
https://pintia.cn/problem-sets/994805260223102976/problems/1038429065476579328测试用例10 101#include <iostream>#include <string>using namespace std;int main(){ int a, b, cnt = 0; cin ...
2019-07-23 16:14:37
275
原创 PAT乙级1085 PAT单位排行 (25 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805260353126400一个学校的结构体数组,下标从1开始分配读入数据时,用map检测学校是否出现过,如果没有出现过,就分配新的下标,否则就用以前的下标#include <iostream>#include <map>#include ...
2019-07-23 15:49:34
181
原创 PAT乙级1084 外观数列 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805260583813120#include <iostream>#include <string>using namespace std;int main(){ string s, tmp = ""; int n; cin >&...
2019-07-23 14:37:22
176
原创 PAT乙级1083 是否存在相等的差 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/9948052607809454080也是差值,否则12测试点不过#include <iostream>#include <cmath> using namespace std;int main(){ int n, num, cha[10002]...
2019-07-23 14:14:58
156
原创 PAT乙级1082 射击比赛 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805260990660608#include <iostream>#include <algorithm>using namespace std;struct node{ string name; int x;};bool cmp(n...
2019-07-23 13:16:38
209
原创 PAT乙级1081 检查密码 (15 分)测试点2
https://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024日常坑就是密码里有空格测试点2#include <iostream>#include <string>using namespace std;int check(string s){ int flag1 = ...
2019-07-23 12:43:11
739
1
原创 PAT乙级1080 MOOC期终成绩 (25 分)测试点3
https://pintia.cn/problem-sets/994805260223102976/problems/994805261493977088测试点3是指总分是59.5也算合格,,是不是很坑??题不难 用map 很麻烦#include <iostream>#include <algorithm>#include <string>#incl...
2019-07-23 11:37:05
1101
原创 PAT乙级1079 延迟的回文数 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805261754023936首先确定给定的整数是不是回文串 如果是就不需要输出A+B=C了#include <iostream>#include <algorithm>#include <string>using namespa...
2019-07-23 11:00:49
149
原创 PAT乙级1078 字符串压缩与解压 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805262018265088#include <iostream>#include <string>using namespace std;int main(){ char order, tmpc; string s; cin >...
2019-07-23 10:01:41
165
原创 PAT乙级1077 互评成绩计算 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805262303477760#include <iostream>#include <algorithm>using namespace std;int main(){ int N, M; cin >> N >> ...
2019-07-22 19:16:15
149
原创 PAT乙级1076 Wifi密码 (15 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805262622244864#include <iostream>using namespace std;int main(){ string s; while(cin >> s) if(s.size()==3 && s...
2019-07-22 18:33:47
147
原创 PAT乙级1075 链表元素分类 (25 分)思路
https://pintia.cn/problem-sets/994805260223102976/problems/9948052629535948801.先用个数组把元素装起来2.从单链表头开始 遍历元素 分成3组1)负值2)小于K3)大于K3.然后三个组顺序遍历输出就完事了#include <iostream>#include <vector>usi...
2019-07-22 18:06:05
265
原创 PAT乙级1073 多选题常见计分法 (20 分)(这道题太恶心了,恶心啊)
https://pintia.cn/problem-sets/994805260223102976/problems/994805263624683520全是坑 题干太长了#include <iostream>#include <map>using namespace std;struct test { double maxscore = 0.0, halfsc...
2019-07-22 17:18:15
438
原创 PAT乙级1074 宇宙无敌加法器 (20 分)测试点分析
https://pintia.cn/problem-sets/994805260223102976/problems/994805263297527808这道题做的真是稀碎…主要坑点:进制标中“d”和“0”表示10进制结果为0结果的最后一个carry(进位)不等于0时#include <iostream>#include <algorithm>using n...
2019-07-22 14:16:26
691
原创 PAT乙级1072 开学寄语 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805263964422144#include <iostream>using namespace std;int main(){ int N, M, num[10000] = {0}, cnt1 = 0, cnt2 = 0; cin >> ...
2019-07-22 10:52:37
107
原创 PAT乙级1071 小赌怡情 (15 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805264312549376#include <iostream>using namespace std;int main(){ int n1, b, t, n2, T, K; cin >> T >> K; for(int i...
2019-07-22 10:34:07
163
原创 PAT乙级1070 结绳 (25 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805264706813952脑筋急转弯??智商测试吗…肯定是越长的绳子折半次数越少 最后越长呗…#include <iostream>#include <algorithm>using namespace std;int main(){...
2019-07-22 10:12:45
172
原创 PAT乙级1069 微博转发抽奖 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805265159798784#include <iostream>#include <map>using namespace std;int main(){ int M, N, S, cnt = 0; string s[1002]; m...
2019-07-22 10:00:37
128
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人