自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

子冉冰清的博客

一个喜欢探讨技术的小白

  • 博客(242)
  • 资源 (6)
  • 论坛 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 21天掌握动态规划 第二天

21天掌握动态规划第二天 线性动态规划2.1 53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nu

2021-07-03 22:24:24 43 3

原创 21天掌握动态规划刷题指南 第二天

21天掌握动态规划第二天 线性动态规划2.1 53. 最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nu

2021-07-03 16:18:18 39 6

原创 21天掌握动态规划 第一天

21天掌握动态规划首先我觉得得弄明白『动态规划』算法到底是个什么?上述这张图是摘自截取百度百科对动态规划的定义,我个人觉得主要是有如下几个特点和分治法类似,将待求解问题划分成若干类似原理子问题,然后从子问题入手最后得到原问题的解往往是题干出现“最大”“最小”“最好”“最多”等最优化性质的词的时候可以优先考虑动态规划思想(当然也不一定是这样,只是我个人刷题的经验而已)动态规划很多题往往是需要按照如下两个步骤确定状态表示的含义,同时确定好基本的初始值状态转移方程或者不同状态之间存在的依赖关系

2021-07-02 23:53:02 234 6

原创 动态规划专题 最长上升序列模型 acwing 1016.最大上升子序列和

acwing 1016.最大上升子序列和一个数的序列 bib_ibi​,当 b1<b2<…<bSb_1<b_2<…<b_Sb1​<b2​<…<bS​ 的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN)(a_1,a_2,…,a_N)(a1​,a2​,…,aN​),我们可以得到一些上升的子序列(ai2,ai2,…,aik)(a_{i2},a_{i2},…,a_{ik})(ai2​,ai2​,…,aik​),这里1≤i1<i2

2021-06-26 08:31:06 20

原创 最长上升序列模型 acwing 1016.最大上升子序列和

acwing 1016.最大上升子序列和一个数的序列 ​,当 ​ 的时候,我们称这个序列是上升的。对于给定的一个序列​,我们可以得到一些上升的子序列​,这里​。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中和最大为18,为子序列(1,3,5,9)的和。你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100,1,2,3)的最大上升子序列和为100,而最长上升子序列

2021-06-26 08:27:43 27

原创 acwing 716. 最大数和它的位置 int的最大值和最小值

716. 最大数和它的位置给定 100个整数,请你找出其中最大的数字,以及它的输入位置(位置从 11开始)。输入格式共 100行,每行包含一个整数。输出格式第一行输出最大的数字。第二行输出该数字的输入位置。数据范围1≤输入数字≤50000 保证输入数字互不相同。输入样例:222294855824992475511923...20213输出样例:485582代码:#include <iostream&g...

2021-06-08 22:27:40 54

原创 acwing 712 正数 C++循环得到输入的以及获取数组长度

712. 正数输入 66 个数字,它们要么是正数,要么是负数。请你统计并输出正数的个数。输入格式六个数字,每个占一行。输出格式输出格式为 x positive numbers,其中 xx 为正数的个数。数据范围输入数字的绝对值不超过 100100。输入样例:7-56-3.44.612输出样例:4 positive numbers代码#include <iostream>using namespace...

2021-06-08 13:22:57 15

原创 c++输出字符串

670.动物给定你三个葡萄牙语单词,这些词将根据下表从左到右定义一个动物。请你确定并输出这个动物的名称。输入格式根据上表,输入包含三个单词,每行一个,用以识别动物,单词由小写字母构成。输出格式输出识别出的动物的名称。输入样例:vertebradomamiferoonivoro输出样例:homem#include <iostream>using namespace std;​int main(){ ...

2021-06-05 09:53:20 425

原创 C++用cmath求平方根和次方

两点间的距离给定两个点 P1 和 P2,其中 P1 的坐标为 (x1,y1),P2 的坐标为 (x2,y2),请你计算两点间的距离是多少。distance=(x2−x1)2+(y2−y1)2distance = \sqrt{(x2−x1)^2+(y2−y1)^2}distance=(x2−x1)2+(y2−y1)2​输入格式输入共两行,每行包含两个双精度浮点数 xi,yi,表示其中一个点的坐标。输入数值均保留一位小数。输出格式输出你的结果,保留四位小数。数据范围−109≤xi,yi≤1.

2021-05-25 22:43:51 183

原创 C++ 输出特定位数小数

606. 平均数1读取两个浮点数 A 和 B 的值,对应于两个学生的成绩。请你计算学生的平均分,其中 A 的成绩的权重为 3.5,B 的成绩的权重为 7.5。成绩的取值范围在 0 到 10 之间,且均保留一位小数。输入格式输入占两行,每行包含一个浮点数,第一行表示A,第二行表示 B。输出格式输出格式为 MEDIA = X,其中 X 为平均分,结果保留五位小数。数据范围0≤A,B≤10.0输入样例:5.07.1输出样例:MEDIA = 6.43182收获点:方法一:通过co

2021-05-25 16:57:52 96

原创 LeetCode 1734. 解码异或后的排列

1734. 解码异或后的排列题目描述:给你一个整数数组 perm ,它是前 n 个正整数的排列,且 n 是个 奇数 。它被加密成另一个长度为 n - 1 的整数数组 encoded ,满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说,如果 perm = [1,3,2] ,那么 encoded = [2,1] 。给你 encoded 数组,请你返回原始数组 perm 。题目保证答案存在且唯一。示例 1:输入:encoded = [3,1]输出:[1,2,3

2021-05-11 09:57:13 28

原创 斐波拉切数列 java版本

斐波拉切数列 java版本试求FibnFib_nFibn​样例输入:5输出:5算法1(暴力递推) O(n)想要存储他,很多人会想到用一维数组存储+递推。递推初值为Fib0=0,Fib1=1Fib_0=0,Fib_1=1Fib0​=0,Fib1​=1。递推式为Fibn=Fibn−1+Fibn−2Fib_n=Fib_{n-1}+Fib_{n−2}Fibn​=Fibn−1​+Fibn−2​代码也很好实现:public class Solution { public static

2021-05-08 15:41:30 43

原创 算法时间复杂度分析

算法时间复杂度分析下面均借鉴于《数据结构与算法经典问题分析-Java语言描述》一书1、分治法主定理2、渐近表示法的性质3、常用的对数和累加公式

2021-05-07 07:58:18 31

原创 1553. 吃掉 N 个橘子的最少天数

写算法对于引用集合类型的尽量使用全局变量,特别是记忆化递归搜索的题1553. 吃掉 N 个橘子的最少天数厨房里总共有 n 个橘子,你决定每一天选择如下方式之一吃这些橘子:吃掉一个橘子。如果剩余橘子数 n 能被 2 整除,那么你可以吃掉 n/2 个橘子。如果剩余橘子数 n 能被 3 整除,那么你可以吃掉 2*(n/3) 个橘子。每天你只能从以上 3 种方案中选择一种方案。请你返回吃掉所有 n 个橘子的最少天数。示例 1:输入:n = 10输出:4解释:你总共有 10 个橘子。第 1

2021-05-03 10:58:04 30 1

原创 LeetCode 2. 两数相加

2. 两数相加给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807思考:这个题要注意几个细节:要注意判断l1和l2是否为null在while循环以后要注意最后的进位是否还有将头结点和

2021-04-07 14:36:29 21

原创 LeetCode 2021 春季赛

LeetCode 春季赛1. 采购方案小力将 N 个零件的报价存于数组 nums。小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案。注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1示例 1:输入:nums = [2,5,3,5], target = 6输出:1解释:预算内仅能购买 nums[0] 与 nums[2]。示例 2:输入:nums = [2,2,1

2021-04-05 21:59:24 66

原创 Count(1) Count(0) Count(*) Count(列名)

Count(1) Count(0) Count(*) Count(列名)count(1) count(0) count(*) 三者查询效率没有明显差别,1. count(1) and count(*)当表的数据量大些时,对表作分析之后,使用count(1)还要比使用count(*)用时多了!从执行计划来看,count(1)和count()的效果是一样的。 但是在表做过分析之后,count(1)会比count()的用时少些(1w以内数据量),不过差不了多少。如果count(1)是聚索引,id,那肯定

2021-03-23 22:55:16 58

原创 MySQL 生成一张几十万数据表的脚本

MySQL 生成一张几十万数据表的脚本DROP TABLE IF EXISTS `sys_user`;CREATE TABLE `sys_user` ( `user_id` bigint(100) NOT NULL AUTO_INCREMENT, `username` varchar(100) DEFAULT NULL COMMENT '用户名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `salt` varchar(100)

2021-03-23 22:34:14 45

原创 Redis 缓存雪崩、缓存击穿、缓存穿透定义以及解决办法

Redis 缓存雪崩、缓存击穿、缓存穿透定义以及解决办法在实际应用 Redis 缓存时,我们经常会遇到一些异常问题,概括来说有 4 个方面:缓存中的数据和数据库中的不一致;缓存雪崩;缓存击穿;缓存穿透。只要我们使用 Redis 缓存,就必然会面对缓存和数据库间的一致性保证问题,这也算是 Redis 缓存应用中的“必答题”了。最重要的是,如果数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如说,我们把电商商品的库存信息缓存在 Redis 中,如果库存信息不对,那

2021-03-22 00:05:28 64

原创 Java 实现二叉树的前序中序后序遍历(递归和迭代版本都有)

递归版本的前序遍历(中左右/根左右)/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, T

2021-03-21 13:49:10 76

原创 md代码渲染网站

这是一个md代码渲染网站,很多微信公众号上分享的代码渲染的就是这个网站来的,如下图。https://carbon.now.sh/

2021-03-17 14:14:45 69

原创 Kruskal算法求最小生成树 Java带输入输出

Kruskal算法求最小生成树给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。给定一张边带权的无向图G=(V, E),其中V表示图中点的集合,E表示图中边的集合,n=|V|,m=|E|。由V中的全部n个顶点和E中n-1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图G的最小生成树。输入格式第一行包含两个整数n和m。接下来m行,每行包含三个整数u,v,w,表示点u

2021-03-16 22:03:18 39

原创 LaTex数学公式语法网站

LaTex数学公式语法网站https://latex.codecogs.com/eqneditor/editor.php比如想要查找小于等于号,就直接选中这个符号,然后填充框里面就会有相应的语法,把这个语法复制到md文件里面的数学公式里面去就可以了。这里提示一下,md语法写数学公式的时候是$$写上两个美元符号,然后里面可以写公式了。...

2021-03-16 21:50:54 60

原创 HTTP状态码

HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误HTTP状态码分类HTTP状态码由三个十进制数字组成,第一个十

2021-03-11 22:49:45 25

原创 Java给定一个字符串 如何检验一个日期是否为有效日期

今天面试遇到一个算法题,如何检验一个日期是否为有效日期,当时只想着把字符串分段截取,然后再去检验,没注意到还有SimpleDateFormat这种,特此总结一下import java.text.ParseException;import java.text.SimpleDateFormat;/** * @author zhouyanxiang * @Date 2021-03-2021/3/11-20:51 * @Title 检验一个字符串是否为有效日期 */public class So

2021-03-11 21:01:08 86 1

原创 01背包问题 java完整输入输出代码

背包问题总结1. 01背包问题有 NNN 件物品和一个容量是 VVV的背包。每件物品只能使用一次。第 iii 件物品的体积是viv_ivi​,价值是 wiw_iwi​。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数N,VN,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有 NNN 行,每行两个整数 vi,wiv_i,w_ivi​,wi​,用空格隔开,分别表示第 iii件物品的体积和价值。输出格式输出一个整数,表示最

2021-02-28 23:33:35 289 1

原创 从上到下打印二叉树 Java代码实现(利用Queue和List实现)

从上到下打印二叉树 Java代码实现(利用Queue和List实现)剑指 Offer 32 - I. 从上到下打印二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7][3,9,20,null,null,15,7][3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7][3,9,20,15,7][3,9,20

2021-02-27 23:04:37 36 1

原创 acwing 913. 排队打水和最短时间处理联系

acwing 913. 排队打水有 nnn 个人排队到 1 个水龙头处打水,第 iii 个人装满水桶所需的时间是 tit_iti​,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?输入格式第一行包含整数 nnn。第二行包含 nnn 个整数,其中第 iii个整数表示第 iii 个人装满水桶所花费的时间 tit_iti​。输出格式输出一个整数,表示最小的等待时间之和。数据范围1≤n≤1051 \leq n \leq 10^51≤n≤105,1≤ti≤1041 \leq t_i \le

2021-01-31 22:17:11 64

原创 用Java实现简单的四则运算的运算器

用Java通过栈实现简单的四则运算的运算器// package com.threefiree.algotithm.leetcode.stack.test227;import java.net.Socket;import java.util.ArrayDeque;import java.util.Deque;/** * @author zhouyanxiang * @Date 2021-01-2021/1/27-16:03 * @Title 227. 基本计算器 II */public

2021-01-27 16:37:03 103

原创 acwing 1381 阶乘

acwing 1381 阶乘题目描述NNN 的阶乘(记作 N!N!N!)是指从 111 到 NNN(包括 111 和 NNN)的所有整数的乘积。阶乘运算的结果往往都非常的大。现在,给定数字 NN,请你求出 N!N! 的最右边的非零数字是多少。例如 5!=1×2×3×4×5=1205!=1×2×3×4×5=1205!=1×2×3×4×5=120 5!=1×2×3×4×5=1205!=1×2×3×4×5=1205!=1×2×3×4×5=120,所以 5!5!5! 的最右边的非零数字是 2。输入格

2021-01-25 15:47:01 47

转载 生产环境中出现了大量TIME_WAIT

今天早上一上班,有同事就反映公司好几个网站都打不开,登陆数据库服务器(windows),发现很卡,于是重启了下服务器,进入系统后,没过一会问题依旧,查看了下系统进程,发现mysql占用率达到99%,可以肯定的是mysql连接出现问题:netstat -an192.168.12.13:3306 192.168.12.12:30443 TIME_WAIT192.168.12.13:3306 192.168.12.12:30444 TIME_WAIT192.168.12.13:330

2021-01-23 19:11:40 55

原创 Redis高性能IO模型 redis为什么单线程还那么快

1.2 高性能IO模型我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。所以,严格来说,Redis 并不是单线程,但是我们一般把 Redis 称为单线程高性能,这样显得“酷”些。接下来,我也会把 Redis 称为单线程模式。1.2.1 Redis 为什么用单线程?要更好地理解 Redis 为什么用单线程,我

2021-01-20 18:19:12 73

原创 Redis基本数据类型

Redis基本数据类型一、List集合底层是一个双向无环链表实现的,有一个头指针和一个尾指针,可以迅速的定位到开头和结尾。lpush k3 a b c d e相当于一个双向无环链表,然后每次lpush的话是每次将后面的数据拼接到前一个数据的左边比如上述命令,其实在里面存储的顺序会是 e d c b alpop k3就是把当前的栈顶的弹出来,所以如下图所示,返回的是e找某个范围内的lrange k3 0 -1靠着索引找某个具体位置的lindex k3 2设置某个具体的值

2021-01-18 18:14:54 34

转载 提问的艺术

提问的艺术在学习的过程中,难免会遇到一些问题,这个时候不可避免地就需要向他人寻求帮助,这个时候如何提问就是一个问题。「不懂就问」其实是一个非常好的品质,但是提问也是一门艺术。我可能把这个话题说的很大,但是核心的思想是基于他人方便和舒服的角度有效地把自己的问题问出来。掌握了一些提问的注意事项和细节,并且态度诚恳,才会得到准确的答复。如何提问在网上已经流行的一份资料叫做《提问的智慧》,如果大家暂时没有时间细看的话,我在这里为大家简单总结一下,具体在刷题的过程当中向他人提问的注意事项:不要在论坛或者

2021-01-18 09:10:24 104

原创 用户态和内核态 中断处理机制

操作系统一、操作系统基础知识1.1 用户态和内核态1.1.1 定义:什么是用户态和内核态?Kernel 运行在超级权限模式(Supervisor Mode)下,所以拥有很高的权限。按照权限管理的原则,多数应用程序应该运行在最小权限下。因此,很多操作系统,将内存分成了两个区域:内核空间(Kernal Space),这个空间只有内核程序可以访问;用户空间(User Space),这部分内存专门给应用程序使用。1.1.2 用户态和内核态用户空间中的代码被限制了只能使用一个局部的内存空

2021-01-15 22:57:54 1301 6

原创 Linux 的 top命令参数详解 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

Linux 的 top命令详解这张图是真实的阿里云云服务器上,使用了top命令之后的信息。1.上半部分显示了整体系统负载情况1.1 top 第一行:从左到右依次为当前系统时间,系统运行的时间,系统在之前1min、5min和15min内cpu的平均负载值比如我这张图中15:35:44 ====> 当前系统时间是 15:35:44126 days, 14:29 ====> 系统运行时间为145天10小时45分钟(在此期间没有重启过)1 user ===> 当前有1个用户

2021-01-14 17:36:08 1842

原创 Linux如何杀掉僵尸进程

Linux如何杀掉僵尸进程1. 僵尸进程定义​ 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。2. 僵尸进程危害​ 由于子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束. 那么会不会因为父进程太忙来不及wait子进程,或者说不知道 子进程什么时候结束,而丢失子进程结束时的状态信息呢? 不会。因为UNⅨ提供了一

2021-01-14 16:47:27 1201

原创 Netty源码和Reactor模型

2.1 源码介绍源码专题,自然我们需要下载自己去好好看一下才行。访问GitHub不慢的也可以自行访问下载https://github.com/netty/netty.git这里我提供一下我百度网盘里的Netty-4.1的源码。链接:https://pan.baidu.com/s/19oO_IA_cRBA1EgkeBXVWMQ提取码:6348源码整体介绍2.1.1 Core 核心层模块netty-common模块是 Netty 的核心基础包,提供了丰富的工具类,其他模块都需要依赖它。在

2021-01-08 00:02:26 53

原创 Netty整体介绍和架构认知

一、初识Netty1.1 本质:网络应用程序框架Netty 是一款用于高效开发网络应用的 NIO 网络框架,它大大简化了网络应用的开发过程。我们所熟知的 TCP 和 UDP 的 Socket 服务器开发,就是一个有关 Netty 简化网络应用开发的典型案例。既然 Netty 是网络应用框架,那我们永远绕不开以下几个核心关注点:I/O 模型、线程模型和事件处理机制;易用性 API 接口;对数据协议、序列化的支持。我们之所以会最终选择 Netty,是因为 Netty 围绕这些核心要

2021-01-07 16:49:57 125

原创 编译netty报错缺少 io.netty.collection 包 解决方案

编译netty报错缺少 io.netty.collection 包 解决方案找到主项目的pom.xml,把所有的maven.compiler编译的都改成1.8版本,然后在终端执行mvn clean 和mvn install如果运行某个还是出错,需要添加指定本地javac的路径<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <sour

2021-01-07 10:50:18 257

Visual Studio2019企业版密钥.md

Visual Studio 2019企业版密钥,可以永久激活使用,直接下载就行

2019-08-29

中文版3ds Max模型案例高级教程.zip

中文版3ds Max模型案例高级教程.zip完整的配套资源,可以直接下载

2019-06-29

netty-4.1.zip

Netty4.1源码

2021-01-06

go1.15.4windows msi

windows平台的go语言安装程序,点击下载之后可以直接安装,因为在官网下载这个速度很慢,直接在这里下载会很快

2020-11-08

Tomcat9.rar

最新版的安装板的Tomcat9.0版本,可以直接下载使用,解压后点击startup.bat就可以启动

2019-09-09

pointofix.zip

windows必备的一个用于在屏幕上绘画的工具,很好的,特别是针对那些需要录制视频或者线上讲解的一些

2020-06-17

如何用nc连接测试需要密码认证的redis命令

发表于 2020-07-16 最后回复 2020-07-16

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

TA关注的人 TA的粉丝

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