自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络自顶向下

第一章 概论协议:定义了两个通信实体之间交换报文的格式、顺序,以及发送报文和接受报文或其他事件时采用的动作。网络边缘:端系统路由器和链路交换机的区别:路由器涉及到了网络第三层:物理层、数据链路层、网络层;链路交换机只涉及到第二层网络:物理层、数据链路层。网络层次的任务:错误控制、片段化、流量控制、重组、多任务、连接ISP:互联网提供商五层网络:应用层:应用程序想发送给传输层数据;传输层:传输单位:报文段、由传输层生成并封装有传输层头信息的应用程序报文;网络层:传输单位:数据报、封装有网络层信

2021-08-12 16:13:08 242

原创 计算机网络学习-01HTTP协议

Http协议在网络通讯中的作用:1)生成针对Web服务器的请求报文(客户端);2)对Web服务器的请求进行处理(服务端)URI和URL的区别:URI(统一资源标识符)是用一个字符串表示互联网内的某一资源,而URL表示资源的地点(位置),URL(统一资源定位符)是URI的子集。URI的构成:协议名称+登录信息+服务器地址+服务器端口(80)+文件路径+查询字段+片段标识符。Http请求报文的构成:请求方法+请求URI+协议版本+可选首部字段+内容实体http响应报文的构成:协议版本+状态码+.

2021-07-30 15:45:37 116

原创 字节测试开发

Http协议状态字cookie session快排、回文百度搜索栏

2021-07-15 21:17:38 164

原创 MySQL索引Tips

联合索引中,左边字段使用范围查找,导致右边字段用不上索引

2021-06-29 22:27:46 112

原创 牛客刷题01重建二叉树

根据二叉树的前序序列和中序序列可以确定一棵二叉树前序序列的首部是二叉树的根,中序序列中对应跟节点的两边分别是左子树和右子树。使用带返回值的递归来解决:前序序列的跟下标,中序序列的左右界限,限制出,子树的前中序序列。注意递归使用,的结束条件,不然会导致,大量的方法帧压入虚拟机栈,导致栈溢出错误。使用一个闭区间算长度时:[a, b] b = a + (b-a)所以下一个区间的开始位置为:a + (b-a) + 1代码:class Solution { int[] preorder; .

2021-06-27 22:47:04 83

原创 Java基础学习笔记

OOP思想:万物皆对象,即很多生活中的事物和行为都可以抽象成Java类的,用类的字段和方法对万物进行刻画;同时还体现在开发中,前端的html通过一层层的标签可以和Java类的字段(属性)对应,数据库中的一条条记录和一个个实例对象对应,一张表对应一个类,表里面的字段对应Java类的各个属性。封装性:高内聚:功能模块化,一个系统的功能尽可能地设计在其内部实现低耦合:尽可能地暴露少的接口,降低模块之间的耦合度。属性私有化,使用特定的公共方法去获取和修改类的属性(getter和setter)实现模块化.

2021-06-16 11:06:25 41

原创 JUC笔记

创建线程的三种方式:1)继承Thread类2)实现Runnable接口3)使用Callable接口(中间适配过程使用FutrueTask这个类,使得Callable接口的实现类和Thread能联系起来)使用Callable接口创建线程和以前不同:可以抛出异常和携带返回值,而且重写的函数一个是call()一个是run()。FutrueTask这个适配类也可以传递Runnable接口,形成一种对称使用的局面,FutrueTask的get方法,可以获得任务的执行结果。线程的创建形式有且只有一种即:.

2021-06-02 23:35:44 64

原创 面试笔记01

synchronized和Lock的区别一个是Java的关键字, 一个是Java类一个无法判断获得锁的状态,一个可以判断获得锁的状态一个不可以中断,且无法实现公平锁, 一个可以中断,可以实现公平非公平锁一个是自动释放资源,一个需要手动释放资源,不然造成死锁一个适合少量代码,一个适合大量代码一个在请求资源的时候会一直等待锁,一个可以尝试获得锁...

2021-05-26 10:31:37 40

原创 Java刷题掌握的基本处理函数

字符数组转字符串:char[] charArray; String.valueOf(charArray)。字符串转字符串数组:String s; char[] strs = s.toCharArray()StringBuilder 转字符串:sb.toString()

2021-05-18 11:27:35 103

原创 初级算法-15-三色国旗的排序

描述:实例:小结:三个元素的排序,不要使用快排这种复杂的算法,使用更加简化的三色国旗排序代码:class Solution { public void sortColors(int[] nums) { if (nums == null || nums.length == 0) return; int redIndex = 0, blueIndex = nums.length-1; int i = 0; while .

2021-05-17 17:14:34 263

原创 初级算法-14-最小栈

描述:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。实例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,n.

2021-05-16 21:31:48 84

原创 初级算法-13-求多个字符串的公共前缀

描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。实例:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”小结:前缀,不是字串,不需要使用滑动窗口这些技巧重要的算法,在于比较两个字符是否相等,从而判断,是否两个组字符串是否具有相同前缀,再两两比较完所有的元素,最终会得到,所有元素的共同最长前缀。代码:class Solution { public String longestComm.

2021-05-15 17:38:32 1691

原创 初级算法-12-实现 strStr()

描述:实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。实例:输入:haystack = “.

2021-05-15 17:07:12 183

原创 初级算法-11-字符串转换整数 (atoi)

描述:请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字转换为整数(即,“1.

2021-05-15 14:52:27 174

原创 初级算法-10-旋转图片

描述:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。代码:class Solution { public void rotate(int[][] matrix) { if (matrix == null || matrix.length == 0 && matrix[0].length == 0) return;.

2021-05-14 17:42:50 95

原创 初级算法-09-移动零

描述:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序实例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]小结:移动是相对的,要实现移动零元素到末尾,等价于,把非零元素,移动到开头从前往后遍历的这种题,有时候要注意,前面的值被后面覆盖的危险,要使用数组的后续遍历。代码:class Solution { public void moveZeroes(int[] nums) { if (n.

2021-05-14 16:39:12 50

原创 初级算法-08-两数之和

描述:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案实例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]小结:利用HashMap的记忆功能,一次遍历搞定,代码就是空间换时间.

2021-05-14 16:20:04 96

原创 经典算法-01-快速排序和归并排序

快排思想:快速排序蕴含了“分而治之”的思想,从下面,快排的核心框架中看出,方法递归地解决子问题,知道问题的最原子的一部分为止。同时这个框架和二叉树的先序遍历有异曲同工之妙! public static void quickSort(int[] nums, int left, int right) { if (left >= right) return; int p = partition(nums, left, right); quickSort.

2021-05-14 15:35:33 72

原创 初级算法-07-加一

题目:给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。实例:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。小结:后续遍历数组的方式,起始位置,和边界要注意取余计算,一般用来计算到达一个值没有(如进位),同时取余计算还可以重新在循环遍历数组中,改变起始位置。代码:class Solu.

2021-05-14 12:41:51 65

原创 初级算法-06-两个数组的交集 II

题目:给定两个数组,编写一个函数来计算它们的交集。实例:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]说明: 1. 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 2. 我们可以不考虑输出结果的顺序。进阶: 1. 如果给定的数组已经排好序呢?你将如何优化你的算法? 2. 如果 nums1 的大小比 nums2 小很多,哪种方法更优? 3. 如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加.

2021-05-13 23:51:31 83

原创 初级算法-05-只出现一次的数字

题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?实例:输入: [2,2,1]输出: 1小结:惯性的会依赖,HashMap开辟额外空间来实现因为重复的元素都是两两对应的,用异或位运算刚好可以相互抵消代码:class Solution { public int singleNumber(int[] nums) { i.

2021-05-13 22:58:00 44

原创 linux常用命令

查看进程:ps -ef|grep xxx 如redis查看当前目录:pwd复制文件:在文件的当前目录执行:cp xxx文件 目标地址启动redis:在一般的软件默认安装目录(/usr/local/bin)执行命令:redis-server myconfig/redis.conf 以配置文件的方式启动;然后启动客户端:redis-cli -p 6379 用ping命令测试,是否启动成功。yum安装:yum -y install xxx包VIM的三个模式:i进入insert模式,esc进入浏览模式,.

2021-05-13 22:39:22 42

原创 初级算法-04-存在重复元素

题目:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false实例:输入: [1,1,1,3,3,4,3,2,4,2]输出: true小结:重复类题目有两个考虑的方向HashSet排序,比较相邻元素代码:class Solution { public boolean containsDuplicate(int[] nums) { if (nums == .

2021-05-13 22:23:06 45

原创 初级算法-03-旋转数组

题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。实例:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]小结:旋转数组,打破思维定势,可以转换到,多次反转数组来实现反转数组函数是一个基本的算法,必须牢记,反转字符串也一样代码:.

2021-05-13 21:57:58 54

原创 初级算法-02-买卖股票的最佳时机

题目: 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。实例:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股.

2021-05-12 13:30:51 85

原创 初级算法-01-删除排序数组中的重复项

示例 :输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。思路:使用快慢双指针,快指针遍历整个数组,慢指针最为新数组的索引。对于排好序的数组,只要依次比较相邻元素是否相等,假如相等,则快指针继续前进(跳过的重复元素就被顺利成章地"删除"了),假如不相等,则慢指针前进一步,保留元素.

2021-05-12 12:22:28 47

原创 SpringBoot小笔记-01

注解:一般使用@Component作用到一个类上,使这个类作为一个Bean注册到Spring容器里面;在一个完整的项目中,都是分层实现的,自底而上有:dao、service、controller,分别对应使用:@Repository、@Service、@Controller。controller层的注解:@RestController = @ResponseBody + @Controller,返回函数执行的结果,不作跳转页面功能实现。参数注解:@PathVariable,使用RestFul.

2021-05-11 21:44:02 48

原创 16. 最接近的三数之和

例子:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。要点:二分法使用的条件是有序二分法使用时,注意溢出问题要记得二分法有去重优化class Solution { // 二分法的使用前提是排序 public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); .

2021-05-11 21:03:20 33

原创 word公式快捷键使用

1.插入公式:alt + +号键2.给字母加上下标a^上标 b_下标3.给公式加公式编号,且右对齐在公式编辑区域内公式加井号键加回车即可,如x = x + 1#(公式编号)加回车

2021-04-05 16:11:07 2095

原创 Linux系统后台运行python脚本

Linux系统后台运行python脚本查看python后台运行代码ps -ef | grep pythonPS是LINUX下最常用的也是非常强大的进程查看命令grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户ps -ef | 获取当前服务器所有进程命令jobs -l只能查看当前终端的进程,不能查看所

2021-01-04 11:30:06 261

原创 python学习笔记20/11/29

1. Python双指针遍历DataFrame数据前后行循环结构def analys(data): currentRes = None dataList = data.values for i in range(len(dataList)): # i是代表一个表里面的一条记录 # 每个记录转为可操作的列表 # dataList[i] = list(dataList[i]) # 第一行开始循环入口 print(data

2020-11-29 23:16:10 98

原创 如何编写第一个Servlet程序

编写第一个Servlet程序创建maven项目:2. 在一个通用大Module,在pom.xml里面统一导包依赖,这里导入jsp和servlet的项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi

2020-11-29 22:52:22 335

原创 Markdown基础语法学习笔记

Markdown基础语法学习笔记标题#号加空格为文章大标题 ##号加空格为二级标题,一次类推,最作为六级标题如 :三级标题四级标题六级标题字体双星号中间加加粗字体单星号中间加斜体双波浪线中间加划线删除字体如:加粗斜体划线引用右尖括号加空格 如此格式分割线三星号*** 或者三减号—如:图片本地图片:截图链接图片:查看猫猫超链接中括号[链接名字]加英文小括号(地址)如:点

2020-10-04 14:45:47 88

原创 LeetCode: Python实现 strStr()

问题描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle ...

2019-10-23 21:14:04 118

原创 LeetCode题:至少是其他数字两倍的最大数dominantIndex

标题LeetCode题:至少是其他数字两倍的最大数dominantIndexclass Solution(object):def dominantIndex(self, nums):“”":type nums: List[int]:rtype: int* 思路:* 边比较边找出最大值* 找出最大值max和第二大的值temp“”" max = nums[0] tem...

2019-10-22 20:37:05 160

空空如也

空空如也

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

TA关注的人

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