自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

转载 回溯算法总结

常用回溯算法题目是排列问题、组合问题、皇后问题首先给出多叉树遍历框架和回溯算法的核心框架,回溯算法的知识点总结如下:1、回溯算法本身是一种暴力穷举算法2、穷举的过程就是遍历一个多叉树的过程3、回溯算法的代码框架和多叉树遍历的代码框架相似排列问题(1)题目链接:Leetcode46 全排列问题本题可以通过交换数组元素的位置来做,这个部分在蓝桥杯总结过程中已经用过了。另一种是通过遍历树来来解决,本题的一个遍历树是这样的ref[1]:图源代码是这样的std::v

2021-12-07 16:00:14 3035

原创 pandas读写excel中的部分列

在读取xlsx中,有些是不需要读取的列信息,这些信息我们不需要,所以需要删除其他列#在xlsx中提出出经度和纬度的信息#在xlsx中提出出经度和纬度的信息def writeToExcel(filename): dataFrame=pd.read_excel(filename) pf=dataFrame[['gps_jingdu','gps_weidu']] pf.to...

2020-04-25 22:03:09 1730

原创 reverse函数实现逆置

vector的逆置#include<vector>#include<algorithm>int main(){ std::vector<int> nums; std::reverse(nums.begin(),nums.end()); return 0;}string的逆置int main(){ sting str; cin>&g...

2019-12-24 13:14:04 769

原创 有序数组的去重问题即C++ stl中unique函数源码解析

问题描述:给定一个排序数组,需要在原地删除重复出现的元素,使得每个元素只出现一次,还回移除数组的新长度,如[0,0,1,1,2]==>[0,1,2,1,2],函数还回新的长度3解决方法:①借助unique函数,unique函数是C++ stl中的函数,接下来会讲解它的原理和作用int removeDuplicatesI(vector<int> &nums) {...

2019-12-13 10:37:34 726

原创 指针和引用的区别

(1)指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实际上是一个东西,只不过是原变量的一个别名而已。(2)引用不可以为空,当被创建的时候,必须初始化,而指针可以是空值,可以在任何时候初始化(3)可以有const指针,但是没有const引用(4)指针可以有多级,但是引用最多只有一集(5)指针的值初始化后可以改变,即指向其他的存储单元,而引用在进行初...

2019-12-11 13:40:20 125

原创 K-Means聚类代码实现

#encoding:utf-8import numpy as npfrom sklearn.cluster import KMeansdef LoadData(filePath): f=open(filePath,'r+') lines=f.readlines() retCityName=[] retData=[] for line in lines...

2019-11-28 20:03:15 224

转载 更改Ubuntu默认Python版本

解决的问题:一般Ubuntu默认版本为2.x,有时候要改到3.x1.查看你系统中有哪些Python的二进制文件可供使用ls /usr/bin/python*结果如下:2.查看python替换版本信息:update-alternatives --list python会输出以下结果:如果出现 update-alternatives:error:no alternatives...

2019-11-15 09:26:23 253

原创 输入url到页面获取的过程

输入一个网站,从输入到回车再到响应是怎样一个过程?(1)DHCP配置主机信息假设主机最开始没有ip地址与其他信息,则首先要通过DHCP协议来获得IP地址,其整个过程是这样的:   A:主机生成一个DHCP报文,由于DHCP协议是应用层的协议,所以这个报文段必须包含源ip,目标ip,源端口,目标端口,自己的MAC地址,下一跳的MAC地址,所以主机会根据这些信息配置数据包,首先源ip由于还没有从...

2019-11-02 16:51:38 281

原创 Python装饰器

Python装饰器学习import timedef display_time(func): def wrapper(*args): t1=time.time() result=func(*args) t2=time.time() print("Total time:{:.4}s".format(t2-t1)) ...

2019-10-13 17:04:42 81

原创 linux基本命令

linux基本命令(1)ls:显示目录下的内容 ls -a显示所有档案和目录(隐藏文件以’.'打头) ls -l显示档案的名称、权限、创建者、拥有者、档案大小、创建时间(2)pwd:显示当前工作目录(3)cd 变换工作目录 .表示当前目录,…表示上一级目录(4)mkdir创建文件夹 mkdir AAA mkdir -p AAA/Test -p确保目录名称存在,如果不存在就创建一个...

2019-10-08 23:26:45 96

转载 C++多态的实现原理

一、多态的概念  多态就是多种形态,C++多态分为静态多态和动态多态。静态多态就是重载,因为在编译器决定,所以称为静态多态。在编译时就可以确定函数地址。动态多态就是通过继承重写基类的虚函数实现的多态,因为在运行时决定,所以又称为动态多态。运行时在虚函数表中寻找调用函数的地址。  在基类的函数前面加上virtual关键字,在派生类的函数中重写该函数,运行时会根据对象的实际类型来调用相关的函数...

2019-09-11 21:49:05 144

原创 UDP和TCP的特点

(1)UDP是不可靠的,无连接的,面向数据报的,尽最大可能交付,支持一对一,一对多,多对多的交互通信(2)TCP是可靠的,连接的,面向字节流,提供可靠的交付,有流量控制,拥塞控制,全双工通信,只支持一对一。...

2019-09-11 20:22:15 432

原创 二分法的两种常用模板以及原理解释

acwing,yxc大佬总结的二分法原理解释二分模板一共有两个,分别适用于不同的情况。算法思路:假设目标值在闭区间[l,r]中,每次将区间长度缩小一半,当l=r时,我们就找到了目标值。以[0,0,0,0,1,1,1,1]为例,解释原理(1)如果要查找的最后一个0,即要确定左半边的边界时,此时如果mid处的值为0,说明边界值(也就是最后一个0)一定在mid的右边(包含mid值),故更新为...

2019-09-08 15:29:50 2916 1

原创 C++ map和unordered_map的区别和联系以及map的使用

在c++中有两个关联容器,第一种是map,内部是按照key来排序的,第二种是unordered_map,容器内部是无序的,使用hash组织内容的。一、map的常用操作/*map中常用的操作*begin() 还回指向map头部的迭代器*clear() 删除所有元素,注意是所有元素*count() 还回指定元素出现的次序*empty() 如果map为空则还回true*end() 还回指...

2019-09-08 11:10:11 7716 2

转载 主定理公式

2019-09-05 20:15:25 1874

原创 并查集

并查集的定义与其实现  并查集是一种简单的用途广泛的集合,也称为disjoint set。它支持以下3中操作:  (1)Union(Root1,Root2):把子集合Root2并入到集合Root1中。要求Root1与Root2互不相交,否则不执行合并。  (2)Find(x):搜索单元素x所在的集合,并还回该集合的名字。  (3)UFsets(s):构造函数,将并查集中s个元素初始化为s个...

2019-08-29 15:25:59 111

原创 网易笔试题:整理房间

题目描述:又到了周末,小易的房间乱得一团糟。他希望将地上的杂物稍微整理下,使每团杂物看起来都紧凑一些,没有那么乱。地上一共有n团杂物,每团杂物都包含4个物品。第i物品的坐标用(ai,bi)表示,小易每次都可以将它绕着(xi,yi)逆时针旋转90^ \circ90∘,这将消耗他的一次移动次数。如果一团杂物的4个点构成了一个面积不为0的正方形,我们说它是紧凑的。因为小易很懒,所以他希望你...

2019-08-27 09:35:19 857

原创 delete p和delete[] p的区别

1.new、delete和malloc、free的区别   要谈delete p和delete []p的区别,首先介绍一下new/delete,free和malloc的区别。这一点在我这篇博客也有简单讲过。   在c语言中,malloc/free是用来负责动态申请/释放内存空间的,他们都是c中的库函数,而随着c++类和对象的出现,使得我们可以自定义数据类型,但是定义一个对象的时候会自动调用它的...

2019-08-26 21:59:57 6293 2

原创 牛客网Oj平台处理输入问题

摘要:本文要解决的是在牛客网上给出输入数据,从输入数据中提取出数据元素,构成数组。例如:(1)7 1 5 3 6 4 ==>nums[]={7,1,5,3,6,4}(2)7,1,5,3,6,4 ==>nums[]={7,1,5,3,6,4}下面是代码片:int main() { string input; getline(cin, input); vector<i...

2019-08-25 09:33:26 1308

原创 静态链接库lib和动态链接库ddl的区别和联系

静态链接库lib和动态链接库ddl的区别联系:都是在链接阶段使用的区别:不同的是静态链接库中的代码会直接放到exe中,而动态链接库在使用时才会被加载到这个exe执行的内存空间,所以使用静态链接库的时候exe会比较大,使用动态链接库的时候exe会比较小。静态链接库中不能再包含其他的动态或者静态库,而动态库则可以。此外,在链接阶段如果发现函数未定义的话,会在这一个阶段被发现。...

2019-08-23 17:12:33 467

原创 C语言strcpy的实现以及它存在的问题

strcpy的实现char* strcpy(char* dst,const char* src){ assert(dst!=NULL||src!=NULL); char* ret=dst; while((*dst++=*src++)!='\0'); return ret; }}这种实现方式会带来三个安全隐患:(1)无结束符(2)内存不足(3)内存重叠...

2019-08-23 17:10:30 978

原创 c语言分区内存分区的方式

一、把内存分为四块的方式(1)栈区:函数参数、局部变量(2)堆区:存放动态开启的内存空间(3)代码区:程序代码(4)静态存储区:全局变量、静态变量、常量二、把内存分为五块的方式(1)栈区:函数参数、局部变量(2)堆区:存放动态开启的内存空间(3)代码区:程序代码(4)bss段:未初始化的全局变量、静态变量(5)data段:初始化的全局变量和静态变量、常量...

2019-08-23 16:56:42 552

转载 指针数组和数组指针

本文转载自http://c.biancheng.net/cpp/html/476.html,但有修改,如有需要,请参考原文指针数组和数组指针一、指针数组和数组指针的内存布局**指针数组:**首先它是一个数组,数组的元素都是指针,数组占多少字节由数组本身决定。它是“存储指针的数组”的简称。**数组指针:**首先他是一个指针,它指向一个数组。在32位系统下永远是站4个字节,至于它指向的数组占...

2019-08-23 16:09:31 170

原创 静态变量、全局变量、const常量

静态变量:指在程序编译阶段就就分配好内存空间出现的意义:解决数据共享的问题。1.静态局部变量:函数结束后,静态局部变量的内存空间不会被系统回收,下一次调用函数时使用上一次退出时的值。2.静态局部变量存储在静态存储区。3.静态局部变量如果未初始化,则编译器会将它初始化为0或者null静态全局变量:只能在它声明的文件中使用,不能使用extern关键字引用。静态全局变量和全局变量的区别:生...

2019-08-19 10:47:28 829

转载 leetcode接雨水 trapping rain water 使用双指针

和方法2相比,我们不从左和从右分开计算,我们想办法一次完成遍历。从动态编程方法的示意图中我们注意到,只要right_max[i]>left_max[i],即右部的最大值大于左部的最大值,积水高度将有left_max决定,类似的只要left_max[i]>right_max[i],即左部的最大值大于右部的最大值,积水高度将由right_max决定。所以我们可以认为如果一端有更高的...

2019-08-17 14:28:37 207

原创 为什么析构函数需要申明成虚函数

在实现多态的时候,先调用基类的构造函数,再调用子类的构造函数,在析构对象的时候,先析构子类的对象,再析构基类的对象。如果析构函数不是虚函数,那基类的指针只能看到自己的析构函数,无法调用子类的析构函数,无法析构子类的空间,造成内存泄漏。...

2019-08-15 17:01:54 244

原创 深拷贝和浅拷贝的区别

浅拷贝是对指针进行拷贝,拷贝后两个指针指向同一块内存空间。C++中如果不定义类的复制构造函数,就会调用类的默认复制构造函数,而类的复制构造函数是浅拷贝。深拷贝是对,深拷贝不仅是对指针进行拷贝而且还对内容进行拷贝,拷贝完成后,指正指向的地址不一样,但是值是一样的。具体见下面的代码:使用自己定义的复制构造函数,使用深拷贝,构造函数将会被调用两次,析构函数会被调用两次;如果使用类的默认赋...

2019-08-15 15:54:41 4469

转载 C++重载、重写、覆盖、隐藏的区别

(1)重载:这个最好理解:相同函数名,函数参数类型和数量不同,注意重载并不关心还回值类型,此外重载必须是在同一个类中。(2)重写、覆盖是同一个东西:都是在继承和派生的时候才可能出现的情况,重写(覆盖)是指在派生类中存在重新定义函数,其函数名、参数类型和数量必须与基类中的函数保持一致,只有函数体(也就是花括号里面的内容)不同。重写的函数必须要有virtual关键字修饰,否则不能称之为重写或者...

2019-08-15 12:08:37 734

原创 new、delete和malloc、free的区别

(1)new/delete是关键字,malloc和free是库函数 (2)malloc无法满足非内部数据的对象动态申请空间的要求,因为对象的申请要调用构造函数,对象的释放要调用析构函数,malloc和free都不会去调用构造函数和析构函数。但是new会调用构造函数,delete会构造析构函数。(3)malloc还回值类型是void* 类型,所以要做一个强制转换。...

2019-08-15 11:09:13 206

原创 使用数组模拟最小堆的建立

class MinHeap {public: MinHeap(int arr[],int n) {//构造函数,通过一个数组建堆 heap = new int[n]; for (int i = 0; i < n; i++) {heap[i] = arr[i];} int currentPos = (n - 2) / 2;//找最初调整位置,最后分支节点,注意n是数组的大小,...

2019-08-13 23:30:23 513

原创 volatile的考点

(1)volatile可以被理解为编译器警告指示字(2)volatile常用于修饰多线程共享的变量或者因为未知因素而改变的变量,它的作用是告诉编译器不要使用编译对于volatile修饰的变量不要使用编译优化的值,而是直接在内存中取出变量的值。(3)volatile可以和const一起连用,比如const volatile int x=0;说它是const的是因为我们不希望改变变量x的值,但是...

2019-08-09 17:41:41 139

原创 MySQL数据库面试题

(1)MySQL数据库的索引是基于什么数据结构的?B+树。(2)B+树和B树有什么区别?B+树一个节点 可以有多个值,每个叶节点是相互连接的。(3)为什么采用B+数来建立索引结构?在B+树的叶子节点是顺序相连的,这样方便实现范围查找。(4)在MySQL数据库中,如果在A,B,C三列创建聚簇索引,只查列这个索引有没有效果?看情况,如果是A列的话,是有效果的,如果查B列和C...

2019-05-10 13:11:31 209

原创 Flask使用Session和上下文处理器保持登录状态

(1)Flask如何实现用户登录后注销、用户登录后权限不同,页面不一样的功能呢? 我们可以使用session来保存用户登录的这个状态,当登录成功的时候,将当前登录的username存入session,并设置session为permanent属性为True(这样下次打开浏览器仍然是登录的状态),这一步很简单,login函数修改如下:#登录@app.route('/lo...

2019-05-07 19:46:12 2176 2

原创 Numpy中array和matrix的乘法

Numpy中矩阵乘法问题对于array对象对于matrix对象总结Numpy中的矩阵乘法分为两大情况,使用numpy.array和使用numpy.matrix. Numpy确实重载了*操作符,可以直接对array或者matrix对象进行乘法运算,但是在不同对象上,其意义是有区别的。对于array对象*(或multiply)代表的是并不是矩阵的乘法规则,而是简单的数量积,即对应位置元素相乘...

2018-12-19 16:56:30 1730

原创 matplotlib绘图库

matplotlib库是python中实现数据处理与展示的非常优秀的类库它提供了超过100多种的图像处理和现实方法官网展示的一些样例matplotlib定义了各种可视化的类import matplotlib.pyplot as pltplt.plot(x,y,format_string,**kwargs)x轴数据,y轴数据,format_string控制曲线的格式字串fo...

2018-12-16 21:59:34 372

原创 C++ min,max所在头文件

C++ min,max所在头文件 algorithm

2018-10-28 11:32:41 46398

原创 leetcode-11 容器装水最多

链接测试用例:Input: [1,8,6,2,5,4,8,3,7]Output: 49int maxArea(vector<int>& height) { int maxWater = 0; int i = 0, j = height.size() - 1; while (i < j) { int m=min(height[i], hei...

2018-10-28 11:30:39 261

原创 WebGL学习笔记

什么是 Canvas?HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。canvas类似img,是一个矩形区域,您可以控制其每一像素。canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta chars...

2018-10-27 16:59:53 216

原创 web服务器和应用服务器以及web应用框架

web服务器(给静态网页) 应用服务器(主要处理逻辑层) web应用框架 负责处理http请求,响应静态文件,常见的有Apache,Nginx以及微软的IIS. 负责处理逻辑的服务器。比如php、python的代码,是不能直接通过nginx这种web服务器来处理的,只能通过应用服务...

2018-10-24 19:06:25 2160

原创 Oracle 18c 安装:ORA-01017 invalid username/password;logon denied (密码丢失解决方案)

原文地址在SQL*Plus中执行如下命令:SQL>conn/as sysdba (操作系统认证登录)SQL>alter user system identified by system; (回车后用户system的密码会更改为system)============================================================...

2018-10-23 22:52:39 1387

寻找树中两叶子节点之间的最长路径

给定一个二叉树,使用“非递归方法”找出所有叶节点之间的长路径,如有疑问,可咨询QQ1871465933,添加请注明来源。

2018-01-21

一个小型病房管理系统的数据库设计

数据库设计,一个小型病房管理系统的数据库设计,重点讲了数据库设计的前四个阶段

2018-01-18

空空如也

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

TA关注的人

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