自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 计算机网络笔记

物理层(以比特流单位,中继器、集线器)1.通信方式单工通信:只能单向传输半双工通信:双向交替传输,不能两边同时传全双工通信:双向同时传输传输层(以帧为单位,网卡、网桥、交换机)1.封装成帧将网络层传下来的包添加尾部和首部,用于标记帧的开始和结束2.透明传输在进行转义符的传递时,用户察觉不到转义符的存在3.差错检测目前数据链路层广泛使用循环冗余检验(CRC)来检查比特差错4.MAC地址处于数据链路层,长度6个字节(48位),用于唯一标识网络适配器(网卡)5.协议

2020-06-26 22:47:14 286

原创 mysql学习

事物1.事物的四大特性(ACID)原子性(Atomicity):事物中的操作要么发生,要么不发生(通过undo log保存每次变更之前的记录,发生错误时可进行回滚)一致性(Consistency):无论事物是否执行成功,数据库仍是一个完整性的状态(数据库中的所有的数据都符合数据库中所定义的所有约束称为完整性的状态),由原子性、隔离性、持久性保证隔离性(Isolation):多个用户并发访问时,一个用户的事物不能被其他用户的事物所干扰,多个并发事物之间的数据要相互隔离(由MVCC和lock保证)持

2020-06-18 21:11:51 114

原创 redis命令使用学习

通用命令keys * 查询匹配模式的key(通配符 * 多个,?一个,[])randomkey 随机返回keytype key 返回该key的类型exists key 判断该key是否存在del key 删掉该keyrename key newkey重命名keyrenamenx key newkey 重命名key,防止名字重复move key dbnum 移动key到redis其他服务器ttl key 查询key过期时间(s),永久的返回-1,pttl为msexpire key tim

2020-06-10 21:37:03 198

原创 php cookie和session运行机制的理解

由于http的无状态性,设计了cookie机制,这样可以识别出是否已经访问过,可以针对性的做一些缓存,减少服务器压力。在http第一次访问某网站时,php会先判断该客户端是否是第一次访问(是否有PHPSESSID),如果没有那么php设置该值并在响应报文的响应头中以set_cookie返回,如果不是第一次访问,那么后面客户端都会在请求头将所有cookie以Cookie为键带到服务器。PHP...

2019-08-19 18:41:51 230

原创 mysql运行原理(更新中...)

本文章为丁老师(丁奇)讲mysql所做的一部分笔记。存储引擎:主要是用来进行数据的读写的。1.一条查询语句是怎么执行的:首先连接数据库进来是mysqlserver层的连接器:负责跟客户端建立连接、获取权限、维持和管理连接。尽量建立长连接,适时断开连接释放资源,密码错误会在这里报错查询缓存:MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的...

2019-08-15 15:52:36 296

原创 mysql 数据库基本sql语句

显示所有数据库:show databases;//使用哪个数据库use test;//展示该数据库下面的所有数据表show tables;首先是对创建数据库的操作:create database test;删除数据库的操作:drop database test;创建数据表的操作: create table student(sno int(11) unsi...

2019-04-24 21:42:45 1046

原创 Go gorm和go-redis使用

用的是go mod管理包先go mod init 模块名,初始化生成go.mod文件直接在包里引入需要的包名,在执行相关的go run或go build命令,会自动将你引入的包下载下来,并在go.mod和go.sum文件中记录相关的包信息这里主要是使用了gorm包和go-redis包连接和操作mysql、redis数据库gorm先是尝试了1.9.16版本的,批量插入和in查询都有点问题,后面下载使用1.20.9版本之后,都没什么问题了,1.20之后引入包名的路径变了,在使用gorm时,也要引入相关数

2021-01-08 15:39:14 2995

原创 剑指 Offer 28. 对称的二叉树

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false

2020-08-11 09:29:23 158

原创 剑指 Offer 27. 二叉树的镜像

请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4/ 2 7/ \ / 1 3 6 9镜像输出: 4/ 7 2/ \ / 9 6 3 1示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]限制:0 <= 节点个数 <= 1000这个题其实不难,看了一会就有思路了,只要看通了就不难,刚开始也是被二叉树的题吓到,细心一想求他的镜像,不就是把他的lef

2020-08-06 09:17:44 190

原创 剑指 Offer 25. 合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000这个合并链表的思路其实不难,就是遍历两个链表,只有两个都为空的时候才遍历完成,每次都比较l1和l2当前节点的大小,小的那个就直接存入新链表就行,直到遍历完成,返回新链表思路就是那样,关键是看你怎么去写,刚开始想了很多以为很难写,其

2020-08-05 09:59:14 138

原创 剑指 Offer 24. 反转链表

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 限制:0 <= 节点个数 <= 5000这种数据结构的题感觉有点坑,在本地又不好测,提交上去出问题了也不知道哪里出问题了,也调试不到,我就被坑到了,本来刚开始按自己的思路写出来双指针的解法,可是怎么也过不了,看了题解,照着写也还是出问题,我感觉应该一个是

2020-08-03 09:28:27 117

原创 剑指 Offer 22. 链表中倒数第k个节点

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5这个题我看到首先想到的思路是先遍历一下链表,计算出链表的长度,再用长度和k计算出该把哪个值赋值为头节点要注意的是,计算链表长度时,是从1开始不是0,

2020-07-29 09:46:41 108

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一1 <= nums.length <= 500001 <= nums[i] <= 10000这个题刚开始一看着就想到了思路就是一直在想怎么快一点,后面就写了一个整体遍历的只处理偶数,奇数不管,直接将偶数往后放就行了还有一种思路是从两边开始找

2020-07-28 09:56:37 81

原创 剑指 Offer 18. 删除链表的节点

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该

2020-07-27 09:25:48 148

原创 实习日记2020-07-20

在拿到一个中厂的实习offer之后也是不太想放掉,因为之前投了很久的简历了,刚开始小公司还都在回你,到后面小公司感觉都招好人了一样,回也不回你了,之前拿到了一两个小公司实习offer,因为对公司的位置和规模不是很满意都拒绝了,当拿到这个公司的实习offer之后,因为是个直播平台,自己也喜欢看直播,而且从面试的内容、工作地理环境、待遇各方面还是挺合自己的心意,然后就决定去了,也是因为刚好有亲戚在那边,做什么都还有人帮助时间工作内容LeetCode心情2020-07-20填入职表,熟

2020-07-23 09:52:11 1777

原创 剑指 Offer 17. 打印从1到最大的n位数

输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]用返回一个整数列表来代替打印n 为正整数这个题刚看完就是直接暴力的思路,,然后用暴力直接过了,看题解才考虑到如果是在强类型语言中,如果数字太大int和long是存不够的,所以对PHP来说这样还是可以过的。在题解中还看到一种方法就是利用递归来做,从最高位递归下去找,再把数字组合起来感觉在没有

2020-07-23 09:26:26 100

原创 剑指 Offer 16. 数值的整数次方

实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25-100.0 < x < 100.0n 是 32 位有符号整数,其数值

2020-07-15 13:29:43 106

原创 剑指 Offer 15. 二进制中1的个数

请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:00000000000000000000000010000000输出:1解释:输入的二进制串 0000000000000

2020-07-15 12:15:34 286

原创 剑指 Offer 14- II. 剪绳子 II

给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 =

2020-07-15 10:47:58 146

原创 剑指 Offer 14- I. 剪绳子

*给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3

2020-07-13 11:53:41 181

原创 剑指 Offer 13. 机器人的运动范围

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输出:3示例 2:输入:m = 3, n

2020-07-12 19:58:24 112

原创 剑指 Offer 12. 矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格

2020-07-12 16:56:57 259

原创 剑指 Offer 11. 旋转数组的最小数字

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0其实这个题的意思是找这个数组中最小的元素,他有旋转数组的规律,其实不管他是不是旋转数组,只要进行增序排序之后,取数组第一个值就行。如果这要用到旋转数组性质的话,可采用二分法找,要注意的

2020-07-12 10:51:22 132

原创 剑指 Offer 10- II. 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:210 <= n <= 100这个题想了好久,,没想到就是一个斐波那契的题。思路应该是这样想,如果为n时f(n),跳最后一下的时候他有两种跳的方法,一种就是跳一下的时候,前面的就只需要知道n-1的最多跳法f(n

2020-07-11 23:39:14 166

原创 剑指 Offer 10- I. 斐波那契数列

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:n = 5输出:50 <= n

2020-07-11 17:41:56 110

原创 剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )提示:1 <= values <= 10000最多会对 appendTail、deleteHead 进行 10000 次调用这里我就不贴输入和输出样例了,本来刚开始读题就模模糊糊的,看了他的输入输出样例就更迷了,首先是要理解清楚这个题是要干嘛他要我们做的就是通过维护

2020-07-11 16:37:45 135

原创 剑指 Offer 06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)示例 1:输入:head = [1,3,2]输出:[2,3,1]0 <= 链表长度 <= 10000这里要费时一点的就是怎么从尾到头的返回,最常用的方法就是遍历一遍存入一个数组,再倒着遍历回去存入一个新数组,然后返回这个新数组。我这里用的是官方给出的栈思想,利用array_unshift从数组的头部插入,这样就相当于尾部放在数组的最前面了贴出代码:class Solution { /**

2020-07-11 15:37:45 151

原创 剑指 Offer 05. 替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."0 <= s 的长度 <= 10000解这个题主要想到了两种方法:1.直接用php内置函数str_replace2.这个是看题解写的,先计算出空格数量,然后得到新字符串的长度,然后从后面开始加进去,这里要注意的就是为了节省空间,不开辟一个新变量存储新字符,在原来那个字符中必须要从后面开始加,因为只有后面才是空着的,前面都是

2020-07-11 12:09:07 135

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target = 5,返回 tru

2020-07-11 11:05:41 212

原创 剑指 Offer 03. 数组中重复的数字

找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 2 <= n <= 100000感觉这个题就挺简单的,刚开始想到的是用in_array判断,判断一个删除一个,然后想到的是用php内置函数array_count_values,再直接判断value

2020-07-11 09:08:09 154

原创 剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下图:0 <= 节点个数 <= 5000做着一道题其实就是想学习一下二叉树的生成,以及二叉树的遍历方式,这里是通过前序遍历和中序遍历唯一确定一棵二叉树的,中序跟后序也是可以唯一确定一棵二叉树。只需要根据中序遍历和前序遍历之间的关系就可以生成一

2020-07-09 09:41:10 115

原创 LeetCode 1.两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]这个题一拿着第一时间想到的就是暴力解决,直接遍历一下再看nums数组中是否target-value的值,如果有的话就返回,贴出代码:

2020-07-07 20:51:24 94

原创 LeetCode 378有序矩阵中第K小的元素

给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13提示:你可以假设 k 的值永远是有效的,1 ≤ k ≤ n2 。刚开始一读了这个题第一思路就是先二维转一位,然后排序,然后再根据k和键的关系直接取,本来以为没这么简单,就先尝试了一下桶

2020-07-07 15:36:27 242 1

原创 LeetCode 718 最长重复子数组

题目:给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。示例:输入:A: [1,2,3,2,1]B: [3,2,1,4,7]输出:3解释:长度最长的公共子数组是 [3, 2, 1] 。1 <= len(A), len(B) <= 10000 <= A[i], B[i] < 100刚开始看着这个题,想得简单了以为就找出公共的数字的长度最大的就行了,后面提交发现都不对,看了没有过的数据,慢慢的琢磨透了这个题的意思。然后在自己原有的代码上改,

2020-07-06 09:30:03 133

原创 百度地图实现活动定位打卡

首先是后台管理实现选择打卡区域圆:<div style="margin-top: 10px;margin-left:0px;height: 500px;width: 1100px;" id="container"></div>//百度地图渲染 var map = new BMap.Map("container"); ...

2019-11-16 16:06:30 4159

原创 链表的设计与实现(php)

这个是php链表的实现。php内存栈中一个对象名对应的是一个地址,改地址对应的是真是内容,所一可用next变量存储下一个节点对象的地址,以实现链表。在链表类还可以加入一个记录链表长度的变量(优化),这样可以方便一些操作。//设计链表//定义节点类error_reporting(E_ERROR);class Node{ public $val; public $next; funct...

2019-10-11 16:36:53 337

原创 微信公众号jssdk音频

首先在微信公众号配置安全域名还需在前端页面引入<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>,支持https附上前端代码:$.ajax({ type: 'post', url: '{:U(\'Newsystem/represen\...

2019-08-07 18:50:43 1159

转载 tp5.1中使用redis并设为助手函数使用

第一步:在框架根目录config里面新建redis.php文件配置ip及端口:如下:<?phpreturn [ 'host' => '140.143.190.248', 'port' => '6379',];第二步:在根目录extend里新建module目录,并在其里面建Redis.php文件,文件内容如下:<?php/*** Crea...

2019-08-05 17:08:11 245

原创 php开发qq互联

开发之前你必须得去qq互联官网上审核账号通过,并创建应用,创建完成了之后会给你一个APP ID和APP Key,后面开发会用到的。首先在官网上下一个包下来:然后再把这个包放到服务器上能够访问的地方(本地也可以,尽量放在和你项目一样的环境),访问这个install目录下的index.php。在这个页面上进行一系列的配置,选择好配置项之后提交,提交之后会在你的API/c...

2019-08-01 14:36:28 329

转载 centos给php5.6安装redis扩展

下载:https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz我们把源码包放在一个具体的目录下是一个好习惯,现在我把该源码包放在 /usr/local/src 里边 [lsgozj@localhost ~]# cd /usr/local/src [lsgozj@localhost src]# wget https://...

2019-07-31 12:02:05 985

空空如也

空空如也

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

TA关注的人

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