- 博客(535)
- 资源 (1)
- 收藏
- 关注
原创 TCP三次握手(详解)
一:引出客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;在一个TCP的连接上是可以发送多个http请求的二:TCP的报文格式1:TCP在传输层和网络层数据传输的过程TCP协议是在传输层端到端的传输信息,既然说到传输层协议,那么就讲一下传输层协议在数据传
2022-01-19 20:08:49 89663 13
原创 PTA 数据结构与算法题目集(中文)
一:数据结构与算法题目(中文版)7-2 一元多项式的乘法与加法运算 (20 分)7-3 树的同构 (25 分)7-4 是否同一棵二叉搜索树 (25 分)7-6 列出连通集 (25 分)(详解)7-7 六度空间 (30 分)7-8 哈利·波特的考试 (25 分)7-14 电话聊天狂人 (25 分)7-15 QQ帐户的申请与登陆 (25 分)7-16 一元多项式求导 (20 分)7-17 汉诺塔的非递归实现 (25 分)7-19 求链式线性表的倒数第K项 (20 分)7-20 表达式转换
2021-12-14 12:27:39 1572
原创 秋招日常(一天三封感谢信)
就离谱 上午收到两封 搞得复习贼没心态 下午打完球回来一看手机又收到一封 这个有点伤 自己测评完 笔试 笔试完 约面 技术面过了 hr又面 面完说等消息 我寻思hr面能有啥可挂的 就离谱 一想到自己经过那么多轮 还是挂了 就难受 什么鬼 求求了 给个offer吧 要不我快成了天天向下的杰了。晚安 操蛋的一天 许愿接下的来的其他公司面试流程顺利 别挂我了。
2022-10-20 23:19:09 1097 1
原创 Explain各个字段的含义
如果是单列索引,那就整个索引长度算进去,如果是多列索引,那么查询不一定都能使用到所有的列,用多少算多少。留意下这个列的值,算一下你的多列索引总长度就知道有没有使用到所有的列了。如果是使用的常数等值查询,这里会显示const,如果是连接查询,被驱动表的执行计划这里会显示驱动表的关联字段,如果是条件使用了表达式或者函数,或者条件列发生了内部隐式转换,这里可能显示为func。除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引。查询真正使用到的索引。
2022-10-18 18:27:42 730
原创 Sql优化(详解一条龙服务)
这个过程在mysql8.0已经取消了 为甚取消了呢 因为在我们读写操作比较多的时候 这个缓存需要频繁的更新 那么我们还没有用到这个缓存 他就已经更新了。任何地方都不要使用 select * from t ,用具体的字段列表代替“*”,不要返回用不到的任何字段。所有第一步我们需要先定位出 查询比较慢的sql 然后的话 我们将其单拎出来 进行优化。在这里的话 ,如果我们的sql又臭又长的话 那么肯定是解析的比较慢的。那么我们应该 回顾一下 我们的sql select历程。这个阶段是没有什么可优化的。
2022-10-17 11:56:49 1687
原创 面试官必问值Mysql索引篇(妈妈再也不用担心 我不会索引了)
一种帮助mysql提高效率的数据结构。B+树B+Tree是在B-Tree(B树的)基础上的一种优化,使其更适合实现外存储索引结构,InnoDB存储引擎就是用B+Tree实现其索引结构。B-Tree结构图中可以看到每个节点中不仅包含数据的key值,还有data值。而每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。
2022-10-03 16:36:40 1241
原创 面试官:请问一条select的语句的执行会发生什么?
经历完优化器后,就确定了执行方案,接下来 MySQL 就真正开始执行语句了,这个工作是由「执行器」完成的。在执行的过程中,执行器就会和存储引擎交互了,交互是以记录为单位的。根据执行计划执行 SQL 查询语句,从存储引擎读取记录,返回给客户端;
2022-10-01 13:05:02 602
原创 Mysql之慢查询的排查及其优化
我们查询比较慢的sql我们一定要将其记录下来 记录我们执行的sql 这样们在排查的时候才可以记录下来,那么我们可以打开我们的mysql慢查询日志,在这个日志里会记录下我们慢查询的sql 当然这个慢查询日志中的慢查询是有限定时间的,我们可以更改限定时间找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。
2022-09-26 00:11:15 6195 2
原创 java如何实现把list数据格式转化为json数据格式
首先在pom.xml文件中加入以下依赖条件:然后在java文件中import com.google.gson.Gson这个包,具体实现代码如下://假设已经从后端获取到list数据,直接把list传到toJson()方法中就行。
2022-06-21 22:22:37 4548
原创 leetcode周赛6075. 装满石头的背包的最大数量
一:题目二:上码class Solution {public: /** 思路:求差,将结果放到一个容器当中,然后的话,排序, */ int maximumBags(vector<int>& capacity, vector<int>& rocks, int additionalRocks) { vector<int&g
2022-05-22 16:46:18 243 1
原创 leetcode周赛6074. 字母在字符串中的百分比
这个简单题也比较狗 上午做的时候一直有个测试点不过 但是题目不给出什么测试点不过 原来是100这个答案 给跪了一:题目二:上码class Solution {public: int percentageLetter(string s, char letter) { if (s.size() == 0) return 0; int count = 0; for (int i = 0; i &
2022-05-22 16:44:06 929
原创 leetcode周赛6076. 表示一个折线图的最少线段数
气死爹了 用C++过不去 换成Java 过了一:题目二:上码class Solution { public int minimumLines(int[][] stockPrices) { Arrays.sort(stockPrices,(o1,o2)->o1[0]-o2[0]); int n = stockPrices.length; if (n == 1) return 0; int ans = 1;
2022-05-22 16:39:41 960
原创 MySQL之一条Update的执行流程
文章目录1:执行的语句2:在更新操作中流程中特有的部分(1):redo log(重做日志)(2):binlog(归档日志)(3):Redo日志跟binlog日志的区别2:执行流程1:执行的语句update T set c = c + 1 where ID = 2;2:在更新操作中流程中特有的部分(1):redo log(重做日志)MySQL中如果每一次的更新操作都需要写进磁盘,然后磁盘也要找到对应的那条记录,然后再更新,整个过程 IO 成本、查找成本都很高。为了解决这个问题,MySQL.
2022-05-20 21:48:57 511
原创 leetcode45. 跳跃游戏 II(java详解)
一:题目二:上码class Solution { public int jump(int[] nums) { int ans = 0; int curIndex = 0;//当前统计出来的可以移动的最远距离的下标 int nextIndex = 0;//在到达 当前最远距离下标的这段距离内 我们统计出的可以达到的最远距离 //如果在统计的过程中 其覆盖范围已经大于数组下标了,那么
2022-05-20 18:53:44 551
原创 leetcode55. 跳跃游戏
一:题目二:上码class Solution { /** 最大覆盖范围是否可以可以覆盖终点 */ public boolean canJump(int[] nums) { int coverIndex = 0; for (int i = 0; i <= coverIndex; i++) { coverIndex = Math.max(i+nums[i],coverIndex
2022-05-20 17:15:08 239
原创 leetcode122. 买卖股票的最佳时机 II
一:题目二:上码class Solution { /** 思路:1.局部最优:我们买入当前股票等哪天遇见最大值的时候买出 赚最大利润 2.全局最优:局部最优推出全局最优 3.这个利润是可以被分解的 7 1 5 10 利润: -6 4 5 那么最大利润是4+5=9 其实就是1买入10卖出,但是我们可以
2022-05-20 16:39:09 161
原创 leetcode53. 最大子数组和
一:题目二:上码class Solution { /** 思路: 1.局部最优:两数之和大于0 2.整体最优:相加的和如果大于0的话,我们继续相加, */ public int maxSubArray(int[] nums) { int sum = Integer.MIN_VALUE; int count = 0; for (int i = 0; i < nums
2022-05-20 15:49:16 122
原创 springboot邮件发送(牛客论坛项目之QQ邮箱发送)
一:邮箱发送原理1:狂神图解张三通过smtp协议连接到Smtp服务器,然后发送一封邮件给网易的邮件服务器网易分析发现需要去QQ的邮件服务器,通过Smtp协议将邮件转投给QQ的Smtp服务器QQ将接收到的邮件存储在456789@qq.com这个邮件账号的空间中李四通过Pop3协议连接到Pop3服务器收取邮件从456789@qq.com这个邮件账号的空间中取出邮件Pop3服务器将取出来的邮件送道李四手中2:自我理解我们在qq邮箱上申请一个账号,我们发送邮件的时候,首先是先发送到qq的邮
2022-05-20 12:07:25 389
原创 leetcode376. 摆动序列
一:题目二:上码class Solution { /** 思路: 1.局部最优:我们删除单调坡度上的结点(不包括单调坡度两端的结点) 不包括两端的结点 整体最优:整个序列有最多的局部峰值,从而达到最长摆动序列。 */ public int wiggleMaxLength(int[] nums) { if (nums.length == 1) return 1; int curDiff =
2022-05-19 19:08:59 152
原创 leetcode455. 分发饼干
一:题目二:上码class Solution { public int findContentChildren(int[] g, int[] s) { int ans = 0; int gIndex = 0; int sIndex = 0; Arrays.sort(g); Arrays.sort(s); while (gIndex < g.length &&
2022-05-17 19:34:18 220
原创 leetcode51. N 皇后(java详解)
一:题目二:上码class Solution { /** 思路:1.先说我们选用的数据结构;我们是选取的是List<List<string>> ans 来存每次的结果; 我们在创建这个二维矩阵的时候用的是char的二维数组,那么的话等到我们得到一种 可行解的时候 将char的二维数组每一行转换成 String 并存入 ans 中 2:判断可行性
2022-05-17 17:50:11 294
原创 leetcode47. 全排列 II
一:题目二:上码class Solution { private List<List<Integer>> ans = new ArrayList<>(); private List<Integer> path = new ArrayList<>(); private boolean[] used; public void getAns(int[] nums,boolean[] used) {
2022-05-16 19:06:43 135
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人