自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode之随心刷(二)

443.压缩字符串注意这个题目是要修改原数组使用双指针来统计相同字符以及出现的个数,同时在记录一个指针来标记当前数组需要改变的位置。并且如果出现的个数是1 那么不需要进行计数。(其实不认真本来就是错)class Solution { public int compress(char[] chars) { int slow = 0; int fast = 0; int memory = 0; while(fast < ch

2021-09-10 21:48:18 189

原创 二叉树的遍历,是你一定要看的递归和迭代!

当你顺利用树的递归解决完了问题,面试官说递归太简单,问你能写一个迭代版本的吗?二叉树的前序遍历(※)思路一:递归class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new LinkedList<>(); if(root == null ) return res; res.add

2021-09-10 20:26:28 295 1

原创 股票交易变变变!

股票交易的类型题基本上已经是面试很多的金融互联网公司常考的代码题了股票无限次交易股票的最大交易(二)买卖股票的最好时机

2021-09-06 22:04:16 362 1

原创 真的懂反射了吗?

new 和反射 都可以创建对象那么在什么时候会用反射,就是反射的特性:动态性,也就是在编译的时候,确定不下来要用哪一个对象?前后端的交互的时候,服务器跑起来,代码运行起来。然后前端如果像访问login 采取造对象,访问rigister,才去造对应的对象。这就用到了反射。反射和面向对象的封装性失败矛盾,怎么看待技术?不矛盾封装是建不建议你去调用,反射是能不能的问题。好像是...

2021-08-31 22:02:53 102

原创 leetcode之随心刷

基本计算器II思路:使用栈的思想,然后 默认第一个数字之前的符号是+之后开始遍历得到最长的数字(不是一位数字!),如果遇到了符号 (非空格)那么参考之前保存的数字以及之前的符号 进行操作(这个思想很重要)符号 + 入栈符号- 当前数字的负数入栈符号 * 栈顶出栈 乘以 当前的数字后入栈符号 / 栈顶出栈 除以 当前的数字之后出栈class Solution { public int calculate(String s) { char[] arr = s.toCh

2021-08-31 10:14:09 146

原创 性能测试工具 loadrunner使用介绍

那些你深深不以为然的东西 是不是真的会有一些用处呢?loadrunner简介三个图标第一个是录制脚本的 Vuser 发生器(Visual User Generator, VuGen)主要通过捕获客户端向服务器发送的HTTP请求,将这些请求录制成脚本,在回放时将捕获的HTTP请求再次发送,以达到模拟客户行为的目的。Vuser 主要是用来捕获最终用户业务流程创建和创建自动化测试脚本,即生成测试脚本。VuGen 是录制测试脚本、编辑与完善测试脚本的一个平台,支持C语言语法。使用webTour 学

2021-08-26 10:30:53 2871 1

原创 剑指offer-21~30(基础必会!)

21. 调整数组顺序使奇数位于偶数前面思路使用双指针法思路一:首尾双指针注意判断数组的引用指向,老是忘,该打!class Solution { public int[] exchange(int[] arr) { if(arr == null || arr.length == 0) return arr; int left = 0; int right = arr.length-1; int key = arr[left];

2021-08-15 22:01:39 77

原创 剑指offer-31~40

31.栈的压入、弹出序列(※※)思路:使用辅助栈来模拟栈的进出无脑将元素压入栈 判断栈顶和当前的i 的指向元素是否相等。相等 出栈 然后移动i 继续判断不相等 就继续压栈 直到找到相等的为止最后判断栈是否为空即可。class Solution { public boolean validateStackSequences(int[] pushed, int[] popped) { Deque<Integer> stack = new LinkedL

2021-08-12 23:22:46 77

原创 剑指offer 41-50

44. 数字序列中某一位的数字这是一道找规律的题。规律有点难找。45.把数组排成最小的数(※)原来的想法是全部拿出来,拼接成一个字符串,转成成字符数组,排序,然后特殊判断第一个是不是0 ,但是是我敷衍了。确实出现了一些问题!public static String minNumber1(int[] nums) { if(nums == null || nums.length == 0) return ""; StringBuilder sb = new Stri

2021-08-09 19:56:27 85

原创 剑指offer-51~60

51.数组中的逆序对(※)思路一:暴力枚举每一个数字,然后遍历之后的数字,找到比当前数字小的但是超时了class Solution { public int reversePairs(int[] nums) { int res = 0; for(int i = 0;i < nums.length;i++){ for(int j = i+1; j < nums.length;j++){ if

2021-08-04 20:06:33 93

原创 DFS+回溯

DFS 深度优先搜索深度优先遍历搜索!= 递归搜索可以使用循环的方式来做。搜索是一种算法思想没具体的实现使用递归或者迭代都可以什么是回溯回溯搜索是深度优先搜索(DFS)的一种关于到底什么是回溯,百度百科说的。这么一看其实就是找出所有可能的情况,但是比起普通的暴力搜索来看,有点就是会适可而止,当发现一旦继续进行下去不满足要求的时候,就退回到上一步重新枚举。电话号码的组合思路一: 使用队列的做法class Solution { public List<String&gt

2021-08-03 20:31:46 1474

原创 剑指offer- 61~68(完结篇)

61.扑克牌中的顺子(√)这个题并不简单,有点意思啊!思路:排序+ 跳过0+判断相邻的是否相差1public boolean isStraight(int[] nums) { Arrays.sort(nums); for(int i = 0; i < nums.length;i++){ if(nums[i] == 0) continue; //第二个不是0 但是减去前一个 >1 或者是第二个不是0 但是和前

2021-08-03 09:46:21 110

原创 多重背包问题朴素解法+二进制优化

3.多重背包问题每个物品可以选择的次数是不同的,有限制的4.混合背包问题物品有很多种,是上面的的参考5.二维费用背包问题一般的是只限制体积,之后还有重量的限制6.分组背包问题各种各样的物品分成若干组,每组里面只能选择一件,组内的物品是互斥的。7.背包问题求方案数8.背包最优物品选择方案9.有依赖的背包问题选择一件物品之后,必须选择相互依赖的物品...

2021-07-28 18:23:31 223

原创 leetcode数组专题

就这么鬼使神差的我就点进来啦,于是乎,数据结构的路,给爷冲起来!

2021-07-28 18:21:04 131 1

原创 海量数据处理问题之位图和布隆过滤器

海量数据处理从哈希函数出发,谈一谈如何处理海量数据的这类面试题有40亿个(数据规模足够大,内存大小限制放不下)不重复的无符号整数(>=0)设计,一种算法 or 数据结构满足以下需求。40亿个数据基本固定经常进行判断一个数字n在不在集合中如果不是海量 常规解决思路就是查找搜索遍历查找排序后二分查找放入Set中 (快 但是空间使用要维护下一个 存放数据结构)自己实现一种直接地址法的哈希表 (要求就是数据比较连续)可以解决冲突问题,但是缺点很明显。哈希数组的长度是和数字的最大值有关

2021-07-28 17:36:16 210

原创 哪些常考的字符串的题,你刷了吗?!

字符串的题真的是我的痛点题目,每次做,都心里发毛。打算开始刷字符串的题目。冲!我的初始状态:外观数列踩坑一:字符串经常遇到那种判断slow和 fast 指向相等的情况 ,相等就一直往后走,不相等就记录之前相等的最后状态,然后重置继续走。逻辑遗漏就是:如果字符串判定一直相等,走不到不相等的情况,字符串都走完了,最后的状态也没有加入进去!这个坑踩过无数次了,我要是再面试笔试的时候踩,我真的对自己无语啦!思路就是 双指针 添加的就是连续相等的数字的格式和数组的值 。class Soluti

2021-07-11 23:45:06 246 2

原创 2022秋招前,链表最后一练

关于链表的重要性,那是不言自明的。那么一起刷题吧,如果觉得还行记得随手给个赞????,嘿嘿。后续还会有其他的专练,关注不要迷路,嘚嘚。删除链表的倒数第n个结点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; }

2021-07-08 19:52:40 113 1

原创 二分算法,你真的觉得自己会?

二分算法的题,网上的模板太多了,但是别傻用,你得懂它们到底在干什么才对!同时使用二分的两个模板算法思路:以nums[mid] >= target 作为check函数 满足条件的右半段的第一个index。 也就是是要寻找元素的左边界。以nums[mid] <= target 作为check函数 满足条件的左半段的最后一个index。 也就是是要寻找元素的右边界。可以发现同时使用了右半段(模板一)和左半段(模板二)来做public static int[] searchRang

2021-07-04 17:06:53 205 4

原创 烧绳子智力题分享

烧绳子智力题烧一根不均匀的绳子要用一个小时,如何用它来判断半个小时?关键在于两头一起烧绳子那么从两头烧,就可以知道半个小时有多久了。烧一根不均匀的绳子要一个小时,现在又若干个绳子如何用它来判断一个小时十五分钟?上面的启发要用好几根绳子 一个绳子保证可以烧半个小时 然后另一个绳子保证可以烧45分钟。半个小时的两头一起烧就可以做到,那么45分钟呢?A绳从两头烧,同时B绳只烧一头,30分钟后,A烧完了,同时B绳另一头也点燃,开始两头烧,烧完是15分钟,加起来就是45分钟。一个小时十五分钟,那就再

2021-07-04 17:00:49 495

原创 自动化测试框架 unittest 基础学习

自动化测试框架unittest框架 这个框架是python的黑盒测试的框架注意区分一个容易混淆的。Junit是java白盒测试的框架。unittest是如何体现出黑盒测试的?是web界面的功能测试的框架测试固件任何继承自unnitTest类里面的而固定方法setUp():初始化方法tearDwon():清理工作每执行一个test_方法 都会对应重新执行setUp和tearDown()TestCase每一个test_ 开头的方法 都可以叫做测试用例运行tetst_ 开头所在的类的时候

2021-07-04 16:56:48 538 1

原创 多叉平衡搜索树- B-树 、B+树入门必看

目录多叉平衡搜索树二叉平衡搜索树 和 多叉平衡搜索树B-树的数据结构结点构造查找插入特点总结B+树结点信息插入特点比较B+ 树在数据库中的索引多叉平衡搜索树多叉平衡搜索树:包括B树,B+树 ,B*树也就是说一个结点可以有多个孩子二叉平衡搜索树 和 多叉平衡搜索树有了二叉搜索树的情况下,为什么还要研究多叉平衡搜索树的问题?二叉树的查找过程是看作从根节点走叶子的每一天路径,相比较而言,树的高度越低,意味着,访问结点的次数更少。(每向下走一层,需要读取一次结点)多叉搜索树的特点,在访问磁盘数据(其

2021-07-04 13:13:37 612 3

原创 二叉平衡搜索树-学一点红黑树!

上一篇介绍了二叉平衡搜索树- AVL树,今天学习红黑树但是总体来说,两者的区别不太大,相对来讲,红黑树的实现比较简单,理论上来讲,AVL的查找略快一点,插入和删除略慢红黑树特征二叉“平衡” 的体现就是最长边的长度不会超过最短边的两倍,是一种弱平衡。搜索树具体细节研究:二叉树中结点都有颜色,红 or 黑 (只是为了做一个标记)根一定是黑色的叶子一定是黑色的 (注意区分这里的叶子) (也就是路径上 一头一为得是黑色的 )红色结点不能和红色结点相邻 (红 - 黑 -

2021-07-01 18:42:45 89

原创 平衡搜索树-AVL树你被问到了吗?

AVL 二叉平衡搜索树基本概念二叉树每个结点只有两个孩子孩子之间有区别 一般为左孩子和右孩子二叉搜索树任取二叉树的结点N,满足 K(N的左子树) < K(N) < K(N的右子树) (也就是左子树的值 < 根节点的值 < 右子树的值)平衡树任取树的结点 N,要求左子树的高度和右子树的高度之间的差的绝对值,不能超过1H(N.left) - H(N.right) <= 1AVL树 (满足上面三种)二叉树搜索树平衡树AV

2021-07-01 11:50:12 128 3

原创 页面转码设计测试用例

已知String convert(String page)作用是将WEB页转码为方便移动设备查看的页面,为了确保转码的正确性,请设计相应测试策略。基本的功能测试

2021-06-24 20:34:02 506 3

原创 自动化测试是个啥?听起来还挺厉害的昂!

自动化测试之selenium什么是自动化测试自动化测试工具自动化测试的分类Selenium什么是selenium?selenium1.0selenium 2.0webdriver的原理wbdriver的API学习定位元素的方式等待其他自动化测试框架测试固件TestCase测试套件TestSuite()类TestLoader()类discover()方法runner 方法测试方法/用例执行的顺序忽略测试用例的执行unittest断言数据驱动什么是自动化测试按照设定好的条件或者步骤让机器(电脑)运行自动化

2021-06-24 20:28:24 87

原创 自动化测试 selenium工具集介绍以及常用的Webdriver API

selenium什么是selenium?selenium1.0selenium 2.0webdriver的原理selenium 3.0安装python和selenuim 环境安装注意事项wbdriver的API学习定位元素的方式操作测试对象等待打印信息浏览器的操作键盘事件鼠标事件定位一组元素多层框架的定位alert confirm prompt的处理什么是selenium?是一个工具集合 从 selenium1.0发展到 selenium 2.0selenium1.0selenium1.0 th

2021-06-24 20:27:02 641 6

原创 0-1背包和完全背包问题终于写清楚了!

背包问题的必看博客,y总说的,和我没关系,但是说的是对的!!感恩dd大牛AcWing题库1. 0-1背包问题题目来源0- 1 背包问题是每个物品只可以选一次有一个背包,包的体积是V然后现在有1-N个物品,每一个物品有对应的体积 v 和价值 w问怎么往包里面装物品可以使得总价值最大?隐含的限制就是所有往包里面放的物品的总体积不可以超过背包总体积。常规动态规划状态表示dp[i] [j] 表示的是 对前i个物品进行考虑,总体积限制在 j 范围内属性 dp[i] [j] 的值就是

2021-06-16 21:52:50 349

原创 性能测试基本概念篇

性能测试的基本概念并发用户广义的并发用户数:同一时刻,给服务器产生压力(发送请求)的用户数量(可以是不太放入功能)狭义的并发用户数:统一时刻,使用系统的同一个功能(发送请求)的用户数量后面的loadRunner 是使用的狭义的并发用户数系统用户数:注册这个系统的用户数量在线用户数:某一时刻登录系统的用户数量RT/ART响应时间 RT(response time) / 平均响应时间ART(average response time)响应时间 = 反应时间(人的反应时间)+网络的传送时间(来回

2021-06-09 10:32:36 544 4

原创 Linu 软件安装以及环境配置

目录检查软件安装yum安装rpm安装:解压安装配置环境变量启动tomct验证tomcat是否启动成功检查在具体安装之前我们需要先检查一下服务器上有没有安装检查是否有通过yum 安装过软件yum list installed |grep tomcatyum list installed |grep mariadbyum list installed |grep jdk关于mariadb 我们通过yum 安装的软件名是mariadb 但是运行的进程名还是mysql检查是否有通过rmp

2021-04-17 12:22:24 233 1

原创 Linux 常用指令入门,这些指令你必须会!

Linux基础学习基于CentOs版本7的学习很多的大型项目是部署在Linux服务器上的。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX (可移植操作系统接口)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。linux 最高权限是root(下面可以有很多用户是普通的权限),windows支持多用户吗?linux 可不单单是命令行也有图形界面。服务器都是使用命令行的,我们也是基于命令行来学习的。环境搭建Linux 是一个操作系统,操作系统本身也是一个软

2021-04-17 11:03:37 4053 12

原创 了解Liunx

了解Linuxlinux中有一句话:一切皆文件读、写、执行(查看、创建、删除、移动、复制、编辑)权限(用户、用户组)系统(磁盘和进程))Linux是基于Unix的一个fork(分支)是一个开源的CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成为什么要学习Linux?现在大部分的项目都会部署到服务器上Linux 是一个操作系统,操作系统本身也是一个软件。云服务器就是一个远程电脑,服务器一般不会关机。云服务器上可以选择配置安装基于Li

2021-04-16 08:49:12 176

原创 一文带你看看事务是个什么东西?

事务概念及特性Transaction Control Language 事务控制语言事务:一个或一组SQL语句组成的一个执行单元,这个执行单元要么全部执行,要么全部不执行。如果单元中某条SQL语句执行失败或产生错误,整个单元将会回滚,即所有收到影响的数据将返回到事务开始以前的状态。show engines 展示数据库支持的存储引擎,但是不是所有的存储引擎都支持事务,其中innodb支持事务,memory 不支持事务事务的ACID属性:原子性(Atomicity)原子性是指事务是一个不可分割的

2021-04-14 11:18:16 260

原创 聊聊类加载的过程

目录引子类加载加载链接阶段验证准备解析初始化阶段引子废话不多说,先看看代码各种代码块的执行的顺序问题父子类静态代码块、示例代码块、构造方法、以及局部代码块的顺序public class Parent { public static String s1 = "abc"; public static final String s2 = "def"; public final String s3 = "ghi"; private String s4 = "123";

2021-04-10 16:55:17 215

原创 DNS域名解析流程和DNS劫持

DNS 即域名系统(Domain Name Server),其主要用于将域名解析为对应的 IP 地址。人们记住ip地址是很不方便的,所以需要域名来帮助记忆。DNS域名解析的过程DNS劫持DNS 的域名解析基于 UDP 协议实现,极易发生 DNS 劫持。如何解决 DNS 劫持传统 DNS 解析域名的最大弊端就是易被劫持,直接降低互联网用户的使用体验。比如你想访问 www.baidu.com,结果发生 DNS 劫持,得到了一个诈骗网站的 IP 或者空的地址,使你无法使用正常的服务(比如百度是搜索服务)

2021-04-08 19:52:28 926

原创 HTTP和HTTPS的区别以及加密方式

目录基本区别什么是无状态,什么是无连接对称加密与非对称加密对称加密非对称加密公钥/私钥的用法具体的加密解密的流程CA证书证书的类型握手阶段发送数据基本区别Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443

2021-04-08 11:22:28 3240 8

原创 伊始

记录在前面从开始投到开始机试过了五天,然后在之后收到了一个杭州的公司的面试通知。基本自己投的全都是杭州,是真的很想去杭州啊。约的是四点半面试,腾讯会议,进去之后,发现好家伙,怎么光线那么差,偷偷开了腾讯会议的滤镜and美艳,感谢腾讯会议的功能,牛客这方面确实做的不行。哈哈哈哈。提前十五分钟,hr小姐姐通知我进去,然后她说让我把视频打开。我寻思着,那面试官也会开视频吧,结果,并没有…全程听声音,觉得应该是三十出头的样子,蛮和蔼的一个男面试官,hr说是她们的测试经理。流程自我介绍我发现自己的自我介绍

2021-04-03 00:27:38 171 1

原创 不来看看ThreadLocal到底是干啥的吗?从ThreadLocal学引用类型和内存泄漏

这是一个常见的面试题,所以你必须会!为什么要有ThreadLockThreadLocal实现的原理想要更好地去理解ThreadLocal,那就得翻翻它是怎么实现的了~~~声明:本文使用的是JDK 1.8首先,我们来看一下ThreadLocal的set()方法,因为我们一般使用都是new完对象,就往里边set对象了public void set(T value) { // 得到当前线程对象 Thread t = Thread.currentThread(); // .

2021-04-01 23:52:37 116

原创 浅析四种引用类型到底是个啥?和GC又有什么关系

初学java基本见到的引用都是强引用,现在会将引用进一步细化分为强引用、弱引用、软引用、虚引用四大类型。强引用、软引用、弱引用和虚引用分别是什么?在Java语言中,除了基本数据类型外,其他的都是指向各类对象的对象引用;Java中根据其生命周期的长短,将引用分为4类。强引用reference我们平常典型编码Object obj = new Object()中的 obj 就是强引用,通过关键字new创建的对象所关联的引用就是强引用。回收机制当JVM内存空间不足,JVM宁愿抛出 OutOfMem

2021-03-31 16:36:15 332 1

原创 线程池底层原理你真的懂吗?

与线程池相关的接口实现类关系Exectutor是接口 Executors 是辅助工具类 就好像是Collection 接口 Collections 工具类使用场景:对比new Thread() 创建和销毁线程都非常耗时,使用线程池可以达到线程复用/重用。池化:享元模式,如连接池,常量池线程池的底层原理及七大参数的意义七大参数public ThreadPoolExecutor( int corePoolSize,//核心线程数 int maximumPoolSize,//最大线程

2021-03-31 09:44:40 1018 5

原创 让人头大的HashMap、HashTable、ConcurrentHashMap该到此为止了!

Map涉及的集合框架体系图什么是 MapMap:双列数据,存储key-value对的数据 —类似于高中的函数:y = f(x)存储结构的理解:Map中的key:无序的、不可重复的,使用Set存储所的key key所在的类要重写equals()和hashCode() (以HashMap为例)Map中的value:无序的、可重复的,使用Collection存储所有的value —>value所在的类要重写equals()一个键值对:key-value构成了一个Entry对象。Map中

2021-03-25 20:19:07 126 2

空空如也

空空如也

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

TA关注的人

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