自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 新人Socket学习笔记

Socket – 套接字 计算机之间进行通信的一种约定或一种方式。典型应用:Web服务器和浏览器:浏览器获取用户输入的URL,向服务器发起请求,服务器分析接收到URL,将对应的网页内容返回给浏览器,浏览器经过分析和渲染,将文字图片,视频等元素呈现给用户。(背景了解啦。)IP地址计算机不知道IP地址对应的地理位置,通信时,将IP地址封装道要发送的数据中,交给路由器去处理。目前用IPv4较多,IPv6在教育网中用的比较多。端口(PORT)IP 可以找到目标计算机,但是依旧不能通信,一台计算机提

2020-09-20 22:22:49 327

原创 二叉树的三种遍历(迭代法)

前序遍历class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int>res; stack<TreeNode*> s; if(!root) return res; s.push(root); while(!s.empty()) { TreeNode * marker=s.top();

2020-09-14 23:03:41 312

原创 (自己看的。)c++基础。

1.const 作用修饰变量,则该变量不会被改变修饰成员函数,说明该成员函数内不能改变成员变量修饰指针const char *p 指向的char不可改变char *const p 说明指针是常量,指针自身不可改变const char* const p 指针自身是常量,指向的char也不可改变。修饰引用:反正在const 后面的值不可改变。2 .static修饰普通变量,会令变量存储在静态区,在main函数运行前就分配了空间,有初始值就用初始化,没有就

2020-09-12 15:36:00 302

转载 (面试)计算机网络

1.计算机网络体系结构:1.物理层 通过媒介传输**比特,**确定机械及电气规范(比特 Bit)协议: RJ45、CLOCK、IEEE802.3(中继器,集线器)传输单位:比特数据传输系统:源系统(源点,发送器) —传输系统----目的系统(接收器,终点)通道:单工通道:只有一个方向通信,如广播;双向交替通信(半双工):双方可互联,但是不能同时双向同时通信(全双工):顾名思义。通道复用技术:频分复用(FDM,frequency division Multiplexing): 频分就是

2020-09-10 10:30:09 693

原创 (C++)直接插入排序偷懒

#include<iostream>#include<algorithm>#include<vector>using namespace std;// 选择排序。void chose(vector<int>& r){ int len = r.size(); for (int i = 1; i < len; i++) { for (int j = i; j > 0; j--) { if (r[j] <.

2020-09-09 11:12:00 88

原创 (完整C++)选择排序

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。特点是每一次遍历都会确定一个元素的位置#include<iostream>#include<algorithm>#include<vector>using namespace std;// 选择排序。vo

2020-09-09 10:56:53 463

原创 (c++)携程机试:寻找对称字符

输入一串字符串,26个小写英文字母。a,z为对称。b,y 为对称,题目让你输入对称字符对的对数。也不知道咱写的对不对。其实可以不用set容器。多一点临界判断就行了。#include<iostream>#include<string>#include<algorithm>#include<set>#include<map>#include<utility>#include<vector>using n

2020-09-09 10:49:08 317

原创 TCP/IP/计算机网络/图解HTTP学习笔记。chapter 2(9.6)

== chapter 2 HTTP 协议结构==1. http协议用于客户端和服务器端之间的通信。HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返 回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有 接收到请求之前不会发送响应。例如:GET /index.htm HTTP/1.1 Host: hackr.jpGET 表示...

2020-09-06 16:20:02 105

原创 TCP/IP/计算机网络/图解HTTP学习笔记。chapter 1(9.6)

== chapter 1==TCP/IP协议族计算机与网络设备相互通信,需要基于相同的方法,需要一种规则来统一一下,规则(protocol,缩写P).2.TCP/IP的分层管理分层是有好处的,比如某个地方需要改动,只需要在所在的层改动就行了。不用整体大改特改。把各层的接口部分规划好之后,每个层次内部的设计就能自由改动了,而且层次化之后设计也简单,我设计我的,我也不用管传输路线啊啥啥啥的。1.应用层。向用户提供服务的东西。TCP/...

2020-09-06 14:28:00 163

原创 (c++)(注释)剑指 Offer 扑克牌中的顺子

题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。分析:顺子是连续的五张牌,大小王可以当任意牌用。1.出现重复牌,一定错误。 所以考虑去重操作。大小王都是0,所以去重的时候跳过0,额外统计就好了。2.确保有五张不重复的牌(0除外),且最大的牌与最小的牌之差小于五,那么五张牌一定连续。class Solution {public: bool is

2020-09-05 14:27:03 244

原创 C++中string字符串时阔以按索引比较滴。

除了compare()函数还可以直接用算数运算符包括 >、<、==、>=、<=、!=。其意义分别为"大于"、“小于”、“等于”、“大于等于”、“小于等于”、“不等于”。例如:按照那个ANSIIstring str1="abc"; string str2="bac"; string str3 = "Abc"; if (str1 < str2) cout << str1 << " 小于 " << str2<<

2020-09-05 10:42:09 1105

原创 c++关联容器,哈希学习笔记。

9.4 关联容器。常用的两个关联容器set与map (关联容器 associative-container)map中是 key-value 键值对。Set 每个元素只包含一个关键字2.Map 关联数组,保存 键值对3.Set 关键字即值,只保存关键字的容器 按关键字有序保存元素4.Multimap 关键字可重复的map5.Multiset 关键字可重复的set6.Unordered_map 用哈希函数组织的map7.Unorderde_set 用哈

2020-09-04 18:46:01 137

原创 (C++)(剑指offer) n个骰子的点数;

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。

2020-09-03 18:48:53 217

原创 (完整c++)快排,快速排列,sort

贴一个链接:二十多分钟的视频,老师讲的非常清楚,倍速看十几分钟,你就会明白怎么回事。https://www.bilibili.com/video/BV1nJ411V7bd?p=164下面是代码实现,基于递归的思想。注释已写进去。#include<iostream>#include<vector>using namespace std;//sortvoid my_sort(vector<int> &temp, int l, int r){ if

2020-09-03 11:21:49 134

原创 (炒鸡简单)(新人)(C++)冒泡排序

冒泡排序(Bubble Sort)(内部排序)它一直在重复地走访要排序的数列,不嫌累的每次比较两个元素,如果他们的顺序错误就把他们交换过来。(抄来一个图,看了就会明白怎么回事。)由此我们可以稍微分析一下;排序的最坏情况就是,来回遍历了好多次,甚至n次,时间复杂度就可能达到O(N^2).最好的情况就是O(N),比如来一个排好的。。。还有它是否是稳定的呢?比如一个数组a[4]={3,3,4,5},排序结束后,这两个3的相对位置不会改变。那排序就是稳定的,显然冒泡排序是稳定的。核心程序呢,

2020-09-02 20:32:08 85

转载 位运算中的基本骚操作

链接:https://www.zhihu.com/question/38206659/answer/736472332计算机中的数在内存中都是以二进制形式进行存储的,用位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。1.交换两值void swap(int &a, int &b) { a = a + b; b = a - b; a = a - b;}//位与操作void swap(int &

2020-09-02 10:42:55 175

转载 (易懂)负数的二进制表示方法

一:表示法:1、正数5的表示法假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。2、负数-5的表示法现在想知道,-5在计算机中如何表示?在计算机中,负数以原码的补码形式表达。二、概念:1、原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。比如00000

2020-09-02 09:51:13 15653

原创 (C++);iterator基础学习;迭代器

1. 迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector<int> ivec(10,1);for(vector<int>::iterator iter=ivec.begin()

2020-09-01 16:24:55 85

原创 (VS2019编译器默认为X64);解决系统资源不足,无法完成请求服务

问题:VS运行程序时,提示系统资源不足,无法完成请求服务,如下图所示,而程序经过检查无误。笔主电脑装载(迈克菲)McAfee杀毒软件.可供参考解决方案:1.关闭杀毒软件迈克菲的实时扫描功能。(我的通过这个解决了。)2.Visual Studio编译器默认为x64可以修改VS安装目录下:VCWizards里面的三个文件:先备份,之后将标注的最后三个文件用记事本打开,将Win32全部替换成x64即可。...

2020-09-01 15:09:08 5182 4

原创 解决使用vs修改代码时,会覆盖掉后面的代码。

按下键盘上的Insert键便会切换为插入模式。

2020-09-01 11:21:27 12529 15

原创 (c++)(ios::app)解决文件写入时,新内容覆盖掉旧的。

ofs.open(fileName, ios::out | ios::app);这句作用是,如果没有文件,生成空文件;如果有文件,在文件尾追加ios::app | ios::out如果只有ios::out新内容会对就内容产生覆盖。更具体的指令参照下面总结:...

2020-09-01 10:29:59 4393

原创 C++/C读取txt文件中的中文出现乱码。

步骤:1.打开目标txt文件2.目标另存为3.下方编码方式改为ANSI.ok啦。

2020-08-31 21:41:40 3322 2

原创 (c++代码) (超简单)(回溯算法)剑指offer:字符串的排列

回溯法*字符串的排列和数字的排列都属于回溯的经典问题回溯算法框架:解决一个问题,实际上就是一个决策树的遍历过程:路径:做出的选择选择列表:当前可以做的选择结束条件:到达决策树底层,无法再做选择的条件伪代码:result = []def backtrack(路径,选择列表):if 满足结束条件: result.add(路径) returnfor 选择 in 选择列表: 做选择 backtrack

2020-08-29 16:25:28 136

原创 (c++)(递归)剑指offer:二叉搜索树与双向链表。

1.转换成循环双向链表。/*// Definition for a Node.class Node {public: int val; Node* left; Node* right; Node() {} Node(int _val) { val = _val; left = NULL; right = NULL; } Node(int _val, Node* _left, Node* _r

2020-08-28 18:02:02 84

原创 (c++)(两种方案)剑指offer:复杂链表的复制。

题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。法1:哈希表关联容器。复杂链表的复制涉及到深拷贝,因为除了next指针还有random指针。random指针寻找定位,一般都会考虑到先复制完所有next,然后每个指针的random从头开始遍历。这样时间复杂度太高。O(N^2)考虑到random指针把两个节点的关系联系了起来,所以思路可以开展到哈希表关联容器

2020-08-28 16:51:58 79

原创 (c++)(超简单)剑指offer:二叉树中和为某一值的路径。

题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。临时数组temp存储一条路径上的节点值。val不断更新目标值,当val为0,且当前节点为叶节点,满足条件。将temp数组导入到结果res中。后面两个递归加temp数组中的尾元素弹出过程,参考下我后面画的简陋流程。emmm。/** * Definition for a binary tree node. * struct TreeNode { * i

2020-08-28 11:18:33 111

原创 (C++)剑指offer:从上到下打印二叉树

两种写法。都是用的队列。class Solution {public: vector<int> levelOrder(TreeNode* root) { vector<int>res; if(!root) return res; queue<TreeNode*>q; q.push(root); while(!q.empty()) {

2020-08-27 23:53:12 89

原创 (c++)(超简单)剑指offer:包含min函数的栈。和队列的最大值

第一反应大概都是入栈后排序。。。然鹅这样就损坏了栈结构。。。后进先出的规律就凉了。辅助栈它来了!年度最佳备胎。在代码中备胎定义为second。入栈的时候辅助栈要执行降序排列,小的在上面。当然如果是空栈,直接进去!如果将要入栈的元素比已有的栈顶元素大,不执行入栈操作。(主栈这个元素入栈了,以后再弹出,对辅助栈的最小元素无影响,本来它就很大嘛)。出栈的时候要注意,万一碰巧了,这时候两个栈的栈顶元素相同(也是最小的,毕竟辅助栈栈顶最小嘛),恰恰下一步执行弹出操作,那么介个最小元素是不是就没了

2020-08-27 22:21:21 131

原创 (C++)(多解法)剑指offer:二叉树的镜像

递归写法1原地修改。swap替换那三句也是阔以滴。class Solution {public: TreeNode* mirrorTree(TreeNode* root) { if(!root) return NULL; TreeNode*temp=root->left; root->left=root->right; root->right=temp; if(root->le

2020-08-27 21:23:44 114

原创 (完整C++代码)(包括C++二叉树的递归建立)剑指offer:树的子结构

思路:若树 B 是树 A的子结构,则子结构的根节点可能为树 A的任意一个节点。因此,判断树 B是否是树 A 的子结构,需完成以下两步工作:1.先序遍历树 A 中的每个节点An(对应函数 isSubStructure(A, B))2.判断树 A 中 以 An 为根节点的子树 是否包含树 B 。(对应函数 judge(A, B))judge函数终止条件:1.当节点 B 为空:说明树 B 已匹配完成(越过叶子节点),因此返回 true;2.当节点 A 为空:说明已经越过树 A 叶子节点,即匹配失

2020-08-27 12:53:55 179

转载 (简单易懂)Linux 环境下使用g++编译C++的基本操作

链接: link没有什么比自己手撸一遍更加印象深刻。单个源文件生成可执行程序下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码:/* helloworld.cpp */#include <iostream>int main(int argc,char *argv[]){ std::cout << "hello, world" << std::endl; return(0);}程序使用定义在头文件 ios

2020-08-27 12:18:46 282

转载 Linux安装;虚拟机上Ubuntu的完整安装教程。

1、下载Ubuntu镜像文件打开网址:http://www.ubuntu.com,点击Download,如下图,即可下载。文件大小1.8G。镜像下载过程中,我们可以接着进行下一步。2、ubuntu虚拟机的建立1.启动VMware,选择“创建新的虚拟机”。2、打开“新建虚拟机向导”对话框,选中“自定义(高级)(C)”,然后点击“下一步”。3、点击“下一步”。4、选则“稍后安装操作系统”,然后点击“下一步”。5、选中”Linux”系统,并在下拉列表中选择“Ubuntu 64位”,然后点

2020-08-26 17:58:55 1047

原创 (完整C++代码)剑指offer:合并两个有序链表

1.递归2.迭代#include<iostream>using namespace std;//结构。struct ListNode{ int val; ListNode* next; ListNode(int x) :val(x), next(NULL) {}};class solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if (!l1) return l2;

2020-08-26 11:49:13 525 1

原创 (完整C++代码)(leetcode)剑指offer:反转链表

(欢迎指正)1.递归。时间空间复杂度都是O(n)。#include<iostream>using namespace std;//结构。struct ListNode{ int val; ListNode* next; ListNode(int x) :val(x), next(NULL) {}};class solution {public: ListNode* reverseList(ListNode* head) { if (!head || !head-&

2020-08-26 10:22:31 216

原创 (完整C++代码)剑指offer:打印链表中倒数第k个结点

思路还是挺简单的,就是要注意细节。该题目考察的你思考问题的缜密性要注意的地方在程序标注啦。有问题欢迎指正1.给定链表为空,或者k等于负数,或者0的时候,默认返回NULL2.k值存在大于链表长度的可能,k大于链表长度,返回NULL#include<iostream>using namespace std;//结构。struct ListNode{ int val; ListNode* next; ListNode(int x) :val(x), next(NULL) {}

2020-08-26 09:41:00 106

原创 (完整C++代码)剑指offer:调整数组顺序使奇数位于偶数前面。

#include<iostream>#include<vector>using namespace std;class solution {public: void soluteforMove(vector<int>&initData,int preDummy,int endDummy) { if (initData.empty() || preDummy > endDummy) { cout << "error" &

2020-08-25 21:27:54 225

原创 (注释超详细)(完整代码)(C++)剑指offer;在O(1)时间删除链表结点。

题目:给定链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。思路:1.常规做法:找到待删除结点的前一个结点。时间复杂度为O(N)不符合要求。2结点覆盖:。所以我们可以把下一个结点的内容复制到要删除的结点,然后删除下一个结点,效果等同,且时间复杂度为O(1)。**(注意:如果待删除结点为尾结点,我们需要用常规做法来解决,不能忽视该特殊情况,但是时间复杂度一平均依旧是O(1),可以放心。)代码如下,有不足欢迎指正啦。#include<iostream>using na

2020-08-25 17:27:29 133

原创 (LINUX)Makefile:8: *** missing separator. Stop.

**(LINUX)Makefile:8: *** missing separator. Stop. 博主是复制的已有Makefile的代码,于终端运行时出现的错误信息。此时打开Makefile文件,红字部分就是错误所在。看似有空格,然而通过指令cat -t Makefile,发现如下图所示,并没有tab(注:tab键会显示为^I)原因:Makefile的命令行必须以一个tab(键盘tab键)作为开头。(注:变量的定义、赋值以及 Makefile内定函数如$(error “strings”)

2020-08-25 11:28:28 1343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除