自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【python】分支与循环

分支与循环一、分支语句二、循环语句for循环: for...inwhile循环一、分支语句if条件控制:if…elif…else、if…else逻辑运算符成员运算符 in、not inl=[1,2,3,4]a=1if a in l: # 判断a是否在l里面 print("yes")else: print("no")身份运算符 is、is notb=1c=2if b is c: print('yes')else: print('no')

2020-06-26 15:25:33 224

原创 【python】python基础--数据类型

这里写目录标题一、变量二、输入、输出三、数据类型1、数字和运算符2、字符串3、列表4、元祖5、字典6、集合一、变量变量就是内存地址的名字格式:变量名=值用完也可把变量删除name={} # 变量初始化name="小王"print(name) # 输出名字del(name) # 删除变量print(name) # 现在打印这行就会报错,因为变量已经被删了二、输入、输出输入:input()输出:print()标识符命名规则:由数字、字母、下划线组成不能数字开头不能使用

2020-06-24 17:36:29 236

原创 【python】python入门

pytho入门一、解析器下载二、pycharm下载三、新建项目四、修改界面风格一、解析器下载https://www.python.org/downloads/release/python-372/3.7版本以上好点,找到exe下载二、pycharm下载http://www.jetbrains.com/pycharm/download/#section=windows如果不涉及框架和库的使用,社区版就可以三、新建项目四、修改界面风格file–setting...

2020-06-22 22:41:31 210

原创 【19年真题】牛牛的闹钟

对应用题缺乏练习,今天继续!19年网易真题–牛牛的闹钟来源:牛客网题目描述牛牛总是睡过头,所以他定了很多闹钟,只有在闹钟响的时候他才会醒过来并且决定起不起床。从他起床算起他需要X分钟到达教室,上课时间为当天的A时B分,请问他最晚可以什么时间起床输入描述每个输入包含一个测试用例。每个测试用例的第一行包含一个正整数,表示闹钟的数量N(N<=100)。接下来的N行每行包含两个整数,表示这个闹钟响起的时间为Hi(0<=A<24)时Mi(0<=B<60)分。接下来的.

2020-05-28 23:09:52 334

原创 【C语言】输出中的%d,%f,%o等区别

%d 整型输出%2d,将数字按宽度为2,右对齐方式输出,不够补空格%02d和%d差不多,只是不够了左边补0%x 以十六进制数形式输出整数,或输出字符串的地址%u 以十进制数输出无符号数%c 输出一个字符%s 输出一个字符串%o 以八进制输出%f 输出小数,默认保留小数点后6位%.50f 输出一个数,保留小数点50位...

2020-05-28 11:40:47 3731

原创 【19年真题】迷路的牛牛

题目描述牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。输入描述每个输入包含一个测试用例。每个测试用例的第一行包含一个正整数,表示转方向的次数N(N <= 1000)。接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。输出描述输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西。示例输入 3 LRR输出 E刚开始看时,有些没读懂,在纸上画一画就很清楚了最开

2020-05-27 20:56:45 224

原创 牛客网---从尾到头打印链表(多种解法)

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。解法1:链表逆置struct ListNode { int val; struct ListNode *next; ListNode(int x) :  val(x), next(NULL) {  }};...

2020-04-20 13:14:43 129

原创 牛客网----替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:1.题目是将空格替换成%20,也就是把1个字符替换成3个字符,那每个空格后面的字符都要向后移,否则就会覆盖之前的字符2.如果从前往后找空格,那每找到一个,就要移动后面是字符,时间复杂度为O(N^2)3.不妨从后向前找,...

2020-04-20 10:09:27 144

原创 【计算机网络】网络层----IP协议、IP地址详解

目录IP协议IP地址、MAC地址、端口号的概念IP地址详解1.组成2.划分网段3.IP地址、子网掩码、网络号的计算4.IP地址的数量限制网络层主要负责端与端的传输(数据从发送端传输到接收端)IP协议数据从A端跨网络经过路径选择,传到B端协议头格式:4位版本号:指IP协议的版本 IPV4(32bit,占4字节)、IPV6(128bit,占16字节,)IPV4与IPV6是不相干的两个协议...

2020-04-17 16:42:54 1495

原创 【计算机网络】传输层协议----UDP/TCP

目录一、UDP协议1.UDP特点2.协议格式二、TCP协议1.TCP的特点2.协议格式3.TCP保证可靠性校验和32位序号/32位确认序号确认应答超时重传流量控制拥塞控制2.提高性能滑动窗口一、UDP协议1.UDP特点1.无连接:知道对方的IP地址和端口号就直接进行传输,不需要建立连接2.不可靠:没有确认应答机制、超时重传;如果因为网络故障导致该段无法发送到对方,UDP协议也不会告诉应用层...

2020-04-15 11:01:01 240

原创 【Linux】你需要了解的 权限

权限~权限的基本概念linux下权限管理文件对用户(访问者)分类权限怎么表示权限的基本操作权限的基本概念权限是对用户的一种权力限制(出于对系统的安全考虑)Linux下的操作权限有两种:超级用户(管理员用户)root: 可以在linux下做任何事情普通用户: 做有限的事情(进入linux默认的)两者切换:普通–>root:su rootroot–>普通:su user...

2020-04-08 11:28:13 121

原创 【数据结构】有关排序算法的整理

排序排序的概念排序算法实现、复杂度及稳定性分析1.插入排序2.希尔排序排序的概念排序:就是一串数按照递增或递减的顺序排列稳定性:排序后两个数字的相对次序保持不变,则这种排序是稳定的,否则不稳定举个例子:内部排序和外部排序内部排序:数据元素全部放在内存中的排序外部排序:数据元素太多不能同时放在内存中,且排序过程不能在内外存之间移动的顺序排序算法实现、复杂度及稳定性分析1.插入排...

2020-04-06 13:59:45 193

原创 【Linux】Linux下的常用工具解析(yum/vim/ gcc/g++ /gdb/make/Makefile/git)

常用工具一、 软件包管理工具yum二、个人编程工具编辑器 vim编译器 gcc/g++调试器 gdb三、 项目管理工具项目的自动化构建工具:make/Makefile项目的版本管理工具 gityum / vim / gcc/g++ /gdb /make/Makefile / git一、 软件包管理工具yum类似于手机上的应用商店,帮我们系统安装软件包1.如何查看能够安装的软件包yu...

2020-04-05 16:37:38 430

原创 【数据结构】 二叉树的链式结构

二叉树的链式结构1. 二叉树的概念及结构2. 二叉树的存储结构3. 二叉链式结构的实现3.1三种递归遍历二叉树3.2二叉树的基本实现1. 二叉树的概念及结构概念:1.可以是空树2.当不是空树时,由根节点+根节点的左子树+根节点的右子树组成(根节点的左右子树也是二叉树)特点:1.每个结点最多有两棵树2.左右子树不能颠倒(必须是有序的)结构(5种情况)特殊二叉树-----满二叉树和...

2020-03-31 15:06:06 1729

原创 【Linux】系统文件IO&&文件描述符

在学C语言时就有涉及到文件操作----标准文件IO,在Linux中又接触了标准文件IO,大概先将标准文件IO与系统文件IO做下对比标准文件IO:fopen()、fclose()、fread()、fwrite()、fseek()系统文件IO:open()、close()、read()、write()、lseek()标准文件IO都是C标准库当中的函数,称之为库函数系统文件IO都属于系统提供的...

2020-03-30 22:29:35 231

原创 【C++】动态内存管理

C语言中动态内存管理方式:malloc/calloc/realloc共同点:1.堆上2.需要手动释放(free())3.强制类型转化4.判空5.C标准库不同点:malloc返回值类型:void* malloc(字节数-》需要用户手动计算)判空–类型转换calloc: 两个参数void* callocrealloc:(void* ptr,size_t size)2.C+...

2020-03-29 14:09:07 221

原创 【数据结构】关于堆的基本操作

堆是一颗完全二叉树,所有元素是按照完全二叉树的顺序存储方式放在一个数组,堆中每个结点都比其孩子结点小(大),叫小(大)堆所以,堆的底层是按数组方式来存储,数组元素可能有序,可能无序,但堆中元素是有顺序的,要么是小堆,要么是大堆。下图是数组对应的完全二叉树,但还不是堆,所以在创建堆时,需要对数组进行向下调整,建成小堆或大堆建堆(这里我建的小堆)如果从第一个节点调整,不能保证向下调整后,堆...

2020-03-27 23:08:55 301

原创 leetcode---用栈实现队列、用队列实现栈(栈和队列的习题)

用队列实现栈使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空class MyStack {public: MyStack() {} void push(int x) //放入元素 { if (!q1.empty()) q1.push(x); else q2.pu...

2020-03-20 00:15:54 445

原创 leetcode----反转单链表(递归【重要】、循环)

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLstruct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };我直接可以想到...

2020-03-19 21:29:53 107

原创 leetcode---有效的括号(有关栈的练习题)

题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。比如:输入 : "()"输出 : true 输入 : "(]" 输出 : false代码如下:class Solution {public: bool isValid(string s) { ...

2020-03-17 21:58:07 93

原创 数据结构---移除链表中值为val的元素

通过一个指针去遍历链表,找到值位val的节点

2020-03-12 22:23:52 533

原创 计算机网络】应用层协议----HTTP

应用层负责应用程序间的沟通,即定义了位于不同主机中的多个应用进程之间通信的协议。满足我们日常的网络需求,比如SMTP(电子邮件传输)、FTP(文本传输协议)、HTTP(超文本传输协议)上面提到了协议二字,简单来说,协议就是一种“约定”,比如我们一会儿在哪见面,我们会提前约定好地点。应用层中应用最广泛的协议就是HTTP协议了。HTTP协议是客户端和服务器的通信,必须要通过请求和响应的交换来达成...

2020-03-11 16:07:37 174

原创 牛客网--链表分割

/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/

2020-03-09 13:33:08 101

原创 牛客网---链表中倒数第K个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路1:(效率慢)可以先遍历求出链表中有多少个结点,第二次再从前往后走,让count–,直到count=k,则找到了该结点。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { unsigned count = 0...

2020-03-09 11:43:18 110

原创 数据结构---不带头结点的单项非循环链表

如果对元素进行大量的任意位置添加或删除,在顺序表里就要移动很多的元素,(底层空间是连续的)效率很低,所以可以利用链表这个结构链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的链接次序实现的找到第一个节点,就可以通过链式结构找到下一个节点链表:1.单链表(从前往后)、双链表()2.带头(把第一个节点保存起来、不带头()3.循环、非循环...

2020-03-03 19:56:52 307

原创 最小栈

来源:力扣(LeetCode)设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) --将元素 x 推入栈中。pop() --删除栈顶的元素。top() --获取栈顶元素。getMin() --检索栈中的最小元素。示例 :MinStack minStack = new MinStack();minStack.push(-2);minSt...

2020-03-02 22:21:55 106 1

原创 【数据库】数据库基础

数据库的引入虽然我们平时保存数据用文件,文件保存数据有以下缺点:文件的安全性问题文件不利于数据查询和管理文件不利于存储海量数据图书是数据,则图书馆是数据库,...

2020-03-02 20:38:13 130

原创 C++】模板特化的应用---类型萃取

在C++中,内置类型的遍历,我们只需要进行浅拷贝就可以,但自定义类型就不一定了。比如之前类与对象中,如果类中对象涉及到资源,我们使用深拷贝的方式进行拷贝构造等操作,如果不涉及资源,则使用简单的浅拷贝,在模拟实现string类\vector等中也遇到。这样虽然可以,但代码效率低。所以,为了将内置类型与自定义类型区分开,就有了类型萃取,它是类模板特化的应用。那么我们先来了解类模板特化以及非类型模板参...

2020-02-26 15:52:01 326

原创 C++】浅谈 模板

简单来说,模板就是一个模具,比如你做蛋糕,我们给这个模具中放入不同的料,最后得到了不同味道的蛋糕。C++中也有这样一个模子,给编译器一个模子,让它根据不同类型利用该模子来生成代码。模板是泛型编程的基础。模板分为函数模板和类模板函数模板代表一个函数家族,与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本。函数模板不是真正的函数,是编译器生成代码的规则格式:template&l...

2020-02-25 20:49:14 138

原创 C++】vector与list的区别

主要不同如下:不同之处vectorlist底层结构动态顺序表,一段连续空间带头结点的双向循环链表随机访问支持随机访问,访问某个元素效率O(1)不支持随机访问,访问某个元素效率O(N)插入和删除任意位置插入和删除效率低,需要搬移元素,时间复杂度为O(N),插入时可能需要增容,ps:增容:开辟新空间,拷贝元素,释放旧空间,导致效率更低任意位置插入和删除效...

2020-02-25 14:43:16 82

原创 验证回文串

题目描述:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入 : “A man, a plan, a canal: Panama”输出 : true示例 2 :输入 : “race a car”输出 : false思路:从两端向中间遍历,遇到其他除字母和数字字符以外的字符忽略掉,直接向后走...

2020-02-23 18:27:04 97

原创 牛客网--把字符串转换成整数

来源:牛客网题目描述将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述 :输入一个字符串, 包括数字字母符号, 可以为空输出描述 :如果是合法的数值表达则返回该数字,否则返回0示例1输入+21474836471a33输出21474836470思路:把第一个字符出现的情况单独处理下,再把后面的一起处理,得...

2020-02-23 13:30:09 185

原创 优先级队列

优先级队列,本质上是堆是一种容器适配器,根据严格的弱排序标准,她的第一个元素总是它所包含的元素中最大的(默认情况下是大堆)默认情况下,使用vector作为其底层存储数据的容器默认创建的是大堆,其底层按照小于的方式比较#include<queue>void Priority_QueueTest(){ priority_queue<int> q1;//构造空的...

2020-02-21 15:19:28 93

原创 字符串最后一个单词长度

题目描述计算字符串最后一个单词的长度,单词以空格隔开。输入描述 :一行字符串,非空,长度小于5000。输出描述 :整数N,最后一个单词的长度。示例1输入hello world输出5size_t rfind(char c, size_t pos = npos)从字符串pos位置开始往前找字符c,返回该字符在字符串中的位置#include<iostream>#i...

2020-02-16 19:15:35 224

原创 344.反转字符串

题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”, “e”, “l”, “l”, “o”]输出:[“o”, “l”, “l”, “e”, “h”]示...

2020-02-16 15:48:19 65

原创 字符串中的第一个唯一字符

题目描述:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 - 1。案例 :s = “leetcode”返回 0s = “loveleetcode”,返回 2.思路:统计每个字符出现了多少次:字符作为计数数组的下标,遇到相同字符,加1,遍历每个字符,如果出现一次,则找到class Solution {public: int firstUniqCha...

2020-02-15 18:01:49 116 1

原创 对浅拷贝、深拷贝、写时拷贝的简单认识

浅拷贝也称位拷贝或值拷贝。如果对象中管理资源,编译器只是将对象中的值拷贝过来,就会导致多个资源共享一份资源,当一个对象销毁时就会将该资源释放,而这时另一些对象不知道该资源已经被释放,以为还有效,所以,对资源继续操作,就会发生访问违规的情况比如在模拟实现string类时,构造函数中管理了资源,拷贝构造、赋值运算符重载用浅拷贝的方式会导致资源多次释放,也会导致内存泄漏我们只是将s1的值放到s2中...

2020-02-14 20:34:10 171

原创 用类和模板实现的顺序表

#include<iostream>#include<assert.h>using namespace std;

2020-02-11 20:51:48 254

原创 单例模式:饿汉模式与懒汉模式

一个类只能创建一个对象,这就是单例模式。该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。单例模式有两种实现模式:饿汉模式程序启动时就创建一个唯一的实例对象1.创建一个唯一的对象,构造函数首先要是私有的,只允许创建唯一的对象时调用2.定义一个私有的静态成员变量,在类内由定义的静态成员函数调用3.为防止通过拷贝构造函数、赋值运算符重载创建对象,...

2020-02-10 21:08:40 108

原创 如何防止类被拷贝?

类怎样可以被拷贝,就是调用拷贝构造函数,和赋值运算符重载,那我们把它们设置成私有的就好了class Test{public: Test() {}private: //C++98 Test(Test& t); Test& operator=(const Test&); //C++11 //Test(Test& t) = delete; //Te...

2020-02-09 20:54:39 341

空空如也

空空如也

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

TA关注的人

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