自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mac下配置python环境变量

下列所有内容都在mac的终端上操作首先获得python3安装路径执行命令:which python3以我这台电脑为例,路径为:/Library/Frameworks/Python.framework/Versions/3.10/bin/python3编辑 bash_profile 文件然后用 vim 打开文件vi ~/.bash_profile在insert模式(按i)将python3 路径写入:PATH="/Library/Frameworks/Python.fr

2022-01-08 16:19:25 1385

原创 异常处理~

概念:由于逻辑问题,或者业务发生了改变,为了能让用户有更好的体验,加强代码的健壮性,对这些错误进行处理,也叫做异常处理。try-except 语句进行处理基本语法try:<语句块1>except <异常类型1><语句块2>except <异常类型2><语句块3>查看有哪些异常类型import builtinsprint(dir(builtins))捕获所有的异常try:Int("

2021-10-30 12:25:51 127

原创 Linux常见命令

文件操作命令vi/vim文件编辑命令1.一般格式如下:vi/vim 文件名 //如果该文件已经存在,则打开文件,否则创建并打开文件2.三种模式介绍与切换插入模式(编辑模式):可以进行代码的编写命令行模式:使用vim打开默认就是该模式末行模式:对文本的操作文件查看命令1.more 文件名 :每次显示一个屏幕,回车下一行,q退出,在终端显示2.less 文件名 :和more类似,但是不在终端显示3.head -n 文件名:显示前n行内容4.tail -n 文

2021-02-23 14:13:33 122

原创 Linux|五种io模型

一.阻塞io二.非阻塞io三.信号驱动io四.io多路转接五.异步io一.阻塞io1.基本概念:在内核将数据准备好之前,系统调用会一直等待。所有的套接字默认都是阻塞方式。直到内核将数据准备好,从内核拷贝到用户空间,系统调用才会返回。2.举例:把鱼钩扔到水里,人(相当于系统)一直坐着等待鱼上钩。直到鱼上钩了,钓鱼的人才收网。二.非阻塞io1.概念:如果内核还未将数据准备好,系统调用仍然会直接返回,并且返回ewouldblock错误码。非阻塞io往往需要程...

2020-10-11 13:30:12 143

原创 C++|STL

一.容器1.标准库容器分类2.模板实例化时编译器处理方法如上图标红的地方所示,实例化到每一个语句时,编译器会在对应的函数内使用typedef,进行类型的重命名规则。不能看成是宏的替换规则。所以st = rt也是错误的,因为类型不同,不能进行相互赋值。...

2020-10-05 23:07:58 54

原创 在数组中找到和为0的全部组合

思路:首先将数组元素从小到大排序,设三个元素下标i,j,k,将i从头开始遍历,j初始化为i+1,k初始化为n-1;while(j < k)当三元素之和小于0时,j++;当三元素之和大于0时,k–;当三元素之和等于0时,记录此时的i,j,k;while循环结束后执行i++,进行新一轮寻找核心代码如下:#include <iostream>#include <vector>#include <algorithm>using namespace

2020-09-22 23:58:09 1937

原创 算法|子集树

一.子集树概念举个例子来解释子集树,如果一个数组arr[]={1,2,3},则数组arr的子集为1 2 3,1 2,1 3,2 3,1,2,3。当我们想用代码来描述子集树时,可以将其看成一颗二叉树。其中0代表打印这个数,1代表不打印这个数。下面是一颗二叉树,brr中保存每个结点的左右子树。根节点到每个结点的值对应到arr中就是arr的子集树。二.代码实现void ...

2020-09-22 23:47:44 920

原创 算法|合并排序、快排

一.合并排序的思想: 1.将数组通过二分法分成无数个小部分,当数组里面的个数为1时,停止分割。 2.合并,相邻数组两两合并(合并成一个有序的数组)。再将合并后的数组两两合并,直到合并成一个数组。3.将有序数组的值拷贝到原数组中去。画图来解释整个过程:1.拆2.从底层向上依次比较大小,合并成有序的放到新数组中3.将新数组的元素拷贝到原始数组二.代码...

2020-09-22 23:47:11 161

原创 算法设计|动态规划

一.概念与分治法类似,将待求解的问题分解成若干子问题,先求解子问题,然后从子问题的解得到原问题的解。与分治法不同的是经过分解的子问题往往不是相互独立的,有重叠部分。用一个表记录已经解决过的子问题的答案。动态规划主要求最优解的问题,如求最大值,最小值等。二.例题1.最长公共子序列x = {x1,x2,x3,......,xm} 共m个元素y = {y1,y2,y3,....

2020-09-22 23:46:12 114

原创 算法分析|斐波那契类似题型

目录一.斐波那契有关知识二.常见题型1.斐波那契数列2.兔子繁衍问题(奇安信笔试题)3.青蛙跳台阶问题4.二分法查找有序数组一.斐波那契有关知识斐波那契用到的知识也是用分治策略解决的,即用递归和循环的方法。类似于斐波那契的题型有兔子繁衍,青蛙跳台阶,矩形覆盖等问题。遇到这种大规模问题,需要转换成小规模问题,看成n=1时的结果是怎样的,n=2时结果是怎样的。...

2020-09-22 23:45:52 454 1

原创 数据结构|树和二叉树二叉树

一.树的概念由n(n>=0)个结点组成的有限集合结点的度:一个结点含有子树的个数 树的度:一颗树中最大的结点含有的度的个数 结点的层次,根结点为第1层,依次类推 兄弟结点:具有相同父节点的结点互相称为兄弟结二.二叉树的概念 1.二叉树的定义 一颗二叉树是结点的有限集合,该集合或者为空,或者是由一个根结点加上两颗子树(左子树和有子树)构成。 2.二叉...

2020-09-22 23:45:28 213

原创 数据结构|BST树

一.定义BST树又称为二叉搜索树或二叉排序树。或者是空树,或者具有以下的性质:每个结点都有作为搜索依据的关键码(key),所有结点的关键码互不相同。 左子树上所有节点的关键码都小于根节点。 右子树上所有结点的关键码都大于根节点。 左子树和右子树也都是二叉搜索树。 对其进行中序排序,值从小到大。二叉树的结构如下图所示:cursize代表这棵树一共有多少个结点(不包含头结点)...

2020-09-22 23:44:45 4912 1

原创 算法分析|全排列

目录一.全排列概念二.思路分析三.代码一.全排列概念从m个元素中取出n(n<=m)个元素进行排列,不同顺序是一种排列,当m=n时称为全排列例如:R={1,2,3} R1=R-{r1}={1,2} perm(R)----->1 2 3 ...

2020-09-11 08:54:28 149

原创 淘宝搜索功能测试用例

功能测试输入可查到结果的正常关键字,检索到的内容、链接准确性输入不可查到结果的关键字,有无错误信息提示输入一些特殊的内容,如空字符、特殊字符等,可引入等价类划分的方法等返回的商品结果排序:价格、销量、评价、综合返回结果庞大时,限制第一页的输出量,需支持翻页多选项搜索:关键字、品牌、产地、价格区间、 是否天猫、是否全国购是否支持模糊搜索,支持通配符的查询网速慢的情况下的搜索搜索结果为空的情况未登录情况和登录情况下的搜索(登录情况下,存储用户搜索的关键字、搜索习惯)性能测试在不

2020-09-10 22:12:08 5327 2

原创 力扣:柱状图中的最大矩形

题目粘贴力扣上的,如下图所示:定位一个高度h,以这个高度为最低高度,向两边扩展,直到遇到比h低的高度结束,面积就 = h * 扩展的长。借用一个递增的栈,如果遇到比栈顶元素小的值,则说明该栈顶元素找到了它的右边界,栈中元素都是比他小的,所以也找到了它的左边界,以栈顶元素为h,计算面积。一直出栈,直到遇到比栈顶元素大的值入栈。int largestRectangleArea(vector<int>& heights) { stack<int> s;

2020-05-30 17:39:23 167

原创 MySQL|从事务到InnoDB锁深度剖析

听过Mysql的人可能都知道,MySQL的存储引擎有很多,如MyISAM,InnoDB,MEMORY,ARCHIVE等。但是只有InnoDB才支持事务,今天我们就来一起探讨一下InnoDB存储引擎。1.什么是事务? 事务是数据库操作的最小执行单元(不可再分割),是作为单个逻辑单元执行的一系列操作。2.事务的4大特性 原子性:最小的工作单元,整个工作单元要么一起提交成功,要么全部失效回滚。 一致性:事务中操作的数据改变...

2020-05-17 16:54:22 93

原创 数据结构|二叉树的顺序存储和堆排序

一.二叉树的顺序存储1.规则2.二叉树的遍历2.1中序遍历思想:跟链式存储的遍历方式一样,左右跟void InOrder(ElemType*ar,int i,int n){ if(i<n && ar[i]!=END) { InOrder(ar,2*i+1,n);//访问左子树 cout<<ar[i]<<" "...

2020-05-05 18:32:24 276

原创 网易雷火测试开发笔试题

1.设计实现缓存模型2.编写一段符合开闭原则的代码。开闭原则是指:软件中的对象对于扩展是开放的,但是对于修改是封闭的。开闭原则设计思想:利用C++多态的特性,通过添加类的方式来实现功能。4.访问网易首页,从浏览器输入到访问,经历了什么过程。(1)利用DNS,查询到WWW.WANGYI.COM对应的IP地址。(2)浏览器与网易的服务器利用TCP建立连接。(3)浏览器利用H...

2020-04-26 18:18:22 1161

原创 详解atoi/itoa函数

一.atoi函数1.基本规则函数原型: int atoi(const char *str);函数功能:把字符串转成整形返回值:每个函数返回int值,如果该输入无法转换为该类型的值,则atoi的返回值为0.2.函数使用演示#include <stdio.h>#include <stdlib.h>int main(){ char *str = ...

2020-04-12 14:09:24 802

原创 C|文件操作

一.常用函数1.用fopen函数打开数据文件格式: fopen(文件名,打开文件方式);函数的返回值是指向文件的指针二.常考题1.求一个文件的大小,即占用的字节。解题思路:(1)按二进制只读方式打开文件。(2)利用fseek将文件位置标记指向文件的结尾。(3)利用ftell获取文件的位置,根据返回值就能得到文件的大小。(4)关闭文件。#include <...

2020-04-11 14:35:22 74

原创 C|结构体的大小计算及扩展

1.结构体大小结构体的大小遵循内存对齐的原则,总的字节数一定要是单个最大字节数的倍数。举个例子struct str{ char a;//1,不是4的倍数 所以1+3 int b;//4};//8个字节但是看下面的代码在多加一行会有所不同。#pragma pack(1) //加了此句 该局的作用是修改对齐方式struct str{ char a;//1, i...

2020-04-11 08:53:17 338

原创 C|秒懂指针函数 or 函数指针

1.指针函数 or 函数指针 的区别int *e[10];//保存指针的数组 简称指针数组,sizeof(e)是40个字节int (*f)[10];//指向数组的指针 数组针指 sizeof(f) = 40;int *g(int,int); //返回指针的函数 指针函数int (*h)(int,int); //指向函数的指针 函数指针2.函数指针调用函数i...

2020-04-10 19:23:13 110

原创 C|数组

一.数组数组名的含义1.在定义数组arr的同一个函数中,sizeof(arr)表示整个数组的大小。2.在定义数组arr的同一个函数中,&arr+1,加整个数组的大小。3.其他情况,arr表示首元素的地址举例:int main(){ int arr[10]; printf("%d\n",sizeof(arr)); printf("%d,%d\n",&a...

2020-04-07 21:42:42 206

原创 美团点评|测试开发岗部分笔试题

问题1: 1.session的概念:session是存放在服务器端的,当浏览器第一次发送请求时,服务器自动生成了一个session和一个session ID用来唯一标识这个session,并将其通过响应发送到浏览器。当浏览器第二次发送请求时,会将前一次服务器响应中的session ID放在请求中一并发送到服务器,服务器从请求中提取session ID,并和保存的所有session...

2020-03-28 15:40:29 2370

原创 二分查找|笔试题

二分查找又叫折半查找,首先它数组中的元素是有序的,他将事物的规模每次缩小一般,直至查找到目标,或者目标不存在。1.数组中找目标值定义一个结构体typedef struct{ int index;//下标 bool tag;//目标值是否存在数组中的标志}Result;做法一:递归Result Find(int *ar,int left,int right,i...

2020-03-24 08:04:22 257 1

原创 select/poll/epoll的区别

最大支持文件描述符数65635是指系统能够支持的无限大

2020-03-16 08:31:50 83

原创 C++|编译链接全过程

一.编译过程 1.编译过程分为预处理、编译、汇编、生成二进制可重定位目标文件(obj文件)。 2.每个阶段所做的事情 预编译:gcc -E xxx.c -o xxx.i 编译:gcc -S xxx.i -o xxx.s 预处理完的文件进行一系列的语法分析、词法分析、语义分析、优化后生成相应的汇编代码文件。汇编:gc...

2020-03-07 14:21:33 168

原创 修改栈的大小

文章目录一.为什么要修改栈的大小二.Linux环境下改变栈的大小三.改变VS下栈的空间大小一.为什么要修改栈的大小有时候程序需要大量的数据,如果栈空间不够,就会出现错误。通常情况下,VS下栈大小为1M,Linux下有的为10M。二.Linux环境下改变栈的大小1.通过 ulimit -s查看Linux的默认栈空间大小我的栈空间大小为10240kB,...

2020-03-05 00:40:17 1970

原创 算法分析|分治策略

文章目录一.为什么要用分治策略二.常见题型1.将一串数字逆序输出 2.顺序输出数字3.求最大公约数一.为什么要用分治策略分治策略可以将大规模问题转换成小规模问题,也就用到了递归,从而降低了问题的难度。二.常见题型需具备将递归和循环相互转化的能力。1.将一串数字逆序输出如:输入:12345 输出:5 4 3 ...

2020-03-04 13:33:37 221

原创 this指针

目录一.使用范围二.生命周期三.存放位置四.传参方法一.使用范围 this指针本质是一个函数参数,只能在成员函数中使用。全局函数,静态函数都不能使用this。 成员函数默认第一个参数为T*const this.如:class A{ public: int fun(int p){}};fun的原型在编译器看来是...

2020-02-25 19:44:54 57

原创 指针和应用的区别

目录一.指针和引用的区别1..非空区别2.合法性区别3.可修改区别4.应用区别二.举例说明一.指针和引用的区别1..非空区别 在任何情况下不能使用指向空值的引用。一个引用必须指向某些对象。但是指针可以不指向任何变量。2.合法性区别 在使用引用之前不需要测试它的合法性。但是指针需要,防止其为空。3.可修改区别 指是否可以被重新...

2020-02-23 13:06:21 390

原创 重排序列

目录一.题目描述二.思路三.代码部分4.运行截图一.题目描述小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}。牛博士给小易出了一个难题:对数列A进行重新排列,使数列A满足所有的A[i] * A[i + 1](1 ≤ i ≤ N - 1)都是4的倍数。小易现在需要判断一个数列是否可以重排之后满足牛博士的要求。输入描...

2020-02-20 17:34:02 569 1

原创 求“相反数”

题目描述:为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.解题过程:我首先想到用数组,数组可以通过循环将数字颠倒,但是数...

2020-02-20 14:16:53 684

原创 Linux进程内存布局

目录一.内存布局图二.内核空间和用户空间三.用户空间内存布局1.栈2.堆3.BBS段和Data段一.内存布局图二.内核空间和用户空间 虚拟地址的范围是0-4G,内存将这块区域分成两部分,1G的内核空间,供内核使用,3G的用户空间,供用户使用。用户无法直接访问内存态的虚拟空间,只能通过系统调用进入内核空间。三.用户空间内存布局1.栈 ...

2020-02-20 11:59:38 108

原创 输入一行数组

在C/C++中若输入数组的长度是个未知数就会报错(如arr[n]),所以若没有动态申请数组,又想输入一行数组的方法如下:方法一:arr[4]//输入数组中元素个数已经确定方法二:int n;//n为元素个数 scanf("%d",&n); int arr[100];//数组元素个数定义大一点,输入元素个数会以n为界限 ...

2019-11-28 00:36:47 1471

原创 判断两颗二叉树是否相同

首先需要判断特殊情况,如果两颗二叉树都为空树则相同,否则,依次遍历这颗二叉树,每个结点都相同,这颗二叉树就相同。定义二叉树结点结构并为每个结点开辟空间#define END '#'typedef struct BtNode //BinaryTreeNode{ BtNode *leftchild; BtNode *rightchild; ElemType data;}BtNo...

2019-11-22 16:30:03 1166

原创 跟据先序和中序创建二叉树

先序遍历顺序:根,左,右中序遍历顺序:左,根,右我们根据先序遍历找到根节点,然后根结点在中序遍历中的位置,可以将根结点外的结点看成两部分,左边结点全看成左孩子,右边结点全看成右孩子。两边结点分别在到先序中找根结点,依次类推。假设先序序列为ABCDEFG 中序序列为CBDAEGF,用下图描述创建树的过程。1.先序中第一个结点为A,中序中定位A,A的左边为左孩子,右边为右孩子。...

2019-11-14 20:04:11 379

原创 new和malloc的区别

如下做了一个表格比对new与malloc的区别: 特性 new/delete malloc/free 属性 关键字,需要编译器支持 库函数,需要头文件支持 返回类型 对象类型的指针 void*,需要强转为我们需要的类型 内存分配失败 ...

2019-11-13 20:35:31 51

原创 MySQL中char和varchar的有关试题

1.char和varchar的区别? char是一种固定长度的类型,范围是0~255,varchar是一种可变长度的类型,范围是0~65535,char长度不够会自动填充空格(如设置了一个字符串的长度为10,存储长度不足10,那么会自动补充空格到10个长度)。2.varchar(50)中50的涵义?最多存放50个字符。3.若一张表中只有一个字段VARCHAR(N)...

2019-11-04 21:44:51 203

原创 第k小整数(java编写)

Description现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。Input包含多组测试数据,每组测试数据第一行为n和k,第二行开始为n个正整数的值,整数间用空格隔开。Output第k个最小整数的值;若无解,则输出“NO RESULT”。Sample Input10 31 ...

2019-11-03 13:25:34 935

空空如也

空空如也

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

TA关注的人

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