自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数组中最大数对和的最小值

题目一个数对 (a,b) 的 数对和 等于 a + b 。最大数对和 是一个数对数组中最大的 数对和 。比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(1+5, 2+3, 4+4) = max(6, 5, 8) = 8 。给你一个长度为 偶数 n 的数组 nums ,请你将 nums 中的元素分成 n / 2 个数对,使得:nums 中每个元素 恰好 在 一个 数对中,且最大数对和 的值 最小 。请你在最优数对划分的方案下,返回最小的 最大数对和 。示

2021-07-20 20:12:48 247

原创 比较版本号

给你两个版本号 version1 和 version2 ,请你比较它们。版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号 001

2021-07-19 21:02:51 242

原创 滑动窗口的最大值

滑动窗口的最大值给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3

2021-06-28 10:20:11 192

原创 RockerMQ

RockerMQRocketMQ 是阿里巴巴于 2012 年开源的分布式消息中间件特点具有灵活的可扩展性。RocketMQ 天然支持集群,其核心四大组件(NameServer、Broker、 Producer、 Consumer)的每一个都可以在没有单点故障的情况下进行水平扩展。具有海量消息堆积能力。 RocketMQ 采用零拷贝原理实现了超大量消息的堆积能力, 据说单机己经可以支持亿级消息堆积,而且在堆积了这么多消息后依然保持写入低延 迟。支持顺序消息。 RocketMQ 可以保证消息消费者按

2020-11-19 09:53:53 184

原创 kafka

kafka分布式的基于发布/订阅的消息系统特点:同时为发布和订阅提高吞吐量消息持久化分布式,支持服务器间的消息分区及分布式消费,同时保证每个partition内的消息顺序传输,其内部的Producer、Broker和Consumer都是分布式架构,这更易于向外扩展消费消息采用pull模式,消息被处理的状态是在Consumer端维护的,而不是由服务器端维护,Broker无状态,Consumer自己保存offset支持online和offline场景,同时支持离线数据处理和实时数据处理基本概

2020-11-18 13:51:01 231

原创 消息协议

消息协议消息协议就是指用于实现消息队列时所涉及的协议AMQP主要概念Message(消息):处理的消息单元,消息通常由一个内容头,一组属性,一个内容体三部分组成Publisher(消息生产者):向交换机发布消息的客户端应用程序Exchange(交换机):用来接受消息生产者所发送的消息并将这些消息路由给服务器中的队列Binding(绑定):用于消息队列和交换器之间的关联,一个绑定就是基于路由键将交换器和消息队列链接起来的路由规则。Virtual Host(虚拟主机):每一个虚拟主机本质上是一

2020-11-12 16:19:12 242

原创 docker和kubertenes

安装docker启用Hyper-V打开控制面板 - 程序和功能 - 启用或关闭Windows功能,勾选Hyper-V,然后点击确定即可安装docker下载链接傻瓜安装error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.40/contai如果出现这种错误估计是没有下载这个wsl_update_x64.msi使用dockerdocker运行Ubuntudocker run -i -t ubuntu /bin/b

2020-11-05 21:27:18 365

原创 Mysql优化

查询慢的原因用户访问量激增导致查询慢,解决方法就是MySQL集群如果查询慢跟表中数据量有关,可以考虑查询语句优化判断查询语句是否需要优化慢查询记录explain执行计划相关日志文件七个查询命令中,哪些命令执行效率慢执行速度最慢的是group by,group by先排序,然后分组order by,原因是order by还是要排序,将排序好的数据变成一个全新的临时表where,需要对表中所有数据行进行遍历,如果临时表中数据行过多就会慢limit,如果指定的起始行数过大,也会导致

2020-10-30 10:06:53 82

原创 rabbitMQ

参考原文链接什么是MQ消息总线(Message Queue),是一种跨进程、异步的通信机制,用于上下游传递消息。由消息系统来确保消息的可靠传递。RabbitMQRabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在不同的应用之间共享数据(跨平台跨语言)。RabbitMQ是使用Erlang语言编写,并且基于AMQP协议实现。RabbitMQ的优势可靠性(Reliablity):使用了一些机制来保证可靠性,比如持久化、传输确认、发布确认灵活的路由(Flexible Routing)

2020-10-28 10:44:42 124

原创 Go面试题

go struct能不能比较因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型Goroutine与线程的区别许多人认为goroutine比线程运行得更快,这是一个误解。Goroutine并不会更快,它只是增加了更多的并发性。当一个goroutine被阻塞(比如等待IO),golang的scheduler会调度其它可以执行的goroutine运行。与线程相比,它有以下几个优点:内存消耗更少:Goroutine所需要的内存通常只有2kb,而

2020-10-16 13:33:33 278

原创 git使用

git安装省略git配置在公司使用的时候,一般都要去配置配置usernamegit config --global user.name "diaohaiyong"配置useremail一般是公司邮箱git config --global user.email diaohaiyong@.com配置完之后就可以用下述命令查看你的配置git config --list之后就是配置SSHssh-keygen -t rsa -C "diaohaiyong@.com"输入上面命令后会得到如

2020-09-04 09:42:42 217

原创 leetcode581:最短无序连续子数组

最短无序连续子数组给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。思路和代码从头到尾遍历,只需要找到降序部分的最大值和最小值,然后再遍历数组找到最大值最小值应该在的位置。class Solution {public:

2020-08-21 14:19:51 140

原创 leetcode329:矩阵中的最长递增路径

矩阵中的最长递增路径给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方

2020-08-21 10:07:23 256 1

原创 mysql练习题

1.查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为–,mysql为comment)CREATE TABLE employees (emp_no int(11) NOT NULL, – ‘员工编号’birth_date date NOT NULL,first_name varchar(14) NOT NULL,last_name varchar(16) NOT NULL,gender char(1) NOT NULL,hire

2020-08-19 17:33:38 152

原创 操作系统面试题

进程和线程进程是系统进行资源分配和调度的一个独立单位,线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。进程和线程的关系一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程是操作系统可识别的最小执行和调度单位资源分配给进程,同一进程的所有线程共享该进程的所有资源。 同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量),扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存放所有局部变量和临时变量处

2020-08-04 15:44:04 153

原创 计算机网络面试题

Http和Https的区别Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者之间存在如下不同:端口不同:Http与Http使用不同的连接方式,用的端口也不一样,前者是80,后者是443;资源消耗:和HTTP通信相比,Https通信会由于加减密处理消耗更多的CPU和内存资源;开销:Https通信需要证书,而证书一般需

2020-08-04 15:06:42 338

原创 python面试题

。。。

2020-07-31 18:43:36 111

原创 C++面试题

函数调用的过程:main()========1).参数拷贝(压栈),注意顺序是从右到左,即c-b-a;2).保存d = fun(a, b, c)的下一条指令,即cout<<d<<endl(实际上是这条语句对应的汇编指令的起始位 置);3).跳转到fun()函数,注意,到目前为止,这些都是在main()中进行的;fun()=====4).移动ebp、esp形成新的栈帧结构;5).压栈(push)形成临时变量并执行相关操作;6).return一个值;7).出栈(pop

2020-07-30 13:44:39 338

原创 django2

django数据库配置mysql命令回顾登录MySQL数据库:mysql -uroot -p首先要安装好MySQL,然后Windows一定要保证MySQL服务已经启动了,这样才能让django连接上要想让django成功连接到mysql,需要pip install pymysql这个库然后在项目的__init__.py中加入两行,如图所示最后在settings.py中修改以下数据库配置这部分内容:...

2020-05-27 17:59:52 124

原创 Django

MVC框架MVC,全称Model View Controller,即模型-视图-控制器;Model(模型):是Web应用中用于处理数据逻辑的部分,包括Service层和Dao层;Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,Dao层用于放各种接口,以备调用;View(视图):是Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图;通常视图是依据模型数据来创建的;Controller(

2020-05-26 20:12:34 243

原创 Redis

数据结构Redis是key-value的数据结构,每条数据都是一个键值对键的类型是一个字符串注意:键不能重复值的类型有五种字符串string哈希hash列表list集合set有序集合zset数据操作行为保存修改获取删除string类型在Redis中字符串类型的value最多可以容纳的数据长度是512M保存:选择数据库select 0-15设置键值,如果设置的键不存在则添加,如存在则修改valueset key value获取key对应的value

2020-05-18 12:28:32 119

原创 MySQL与python交互

参考链接

2020-05-17 10:02:33 158

原创 mysql查询

数据的准备显示所有数据库show databases;创建一个数据库create database 数据库名 charset=utf8;使用一个数据库use 数据库名;显示当前使用的是哪个数据库select database();创建表(字段 类型 约束)create table student( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tin

2020-05-16 17:57:12 220

原创 文本左右对齐

文本左右对齐leetcode给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。说明:单词是指由非空格字符组

2020-05-08 21:00:53 398

原创 Z字形变换

Z字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s =

2020-05-08 20:42:14 95

原创 螺旋矩阵

螺旋矩阵leetcode给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出...

2020-05-08 11:17:18 197

原创 杨辉三角

杨辉三角leetcode输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]思路和代码class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>&g...

2020-05-08 11:00:30 291

原创 串联所有单词的子串

串联所有单词的子串leetcode给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[...

2020-05-08 10:42:05 125

原创 字符串相乘

字符串相乘leetcode给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”思路和代码class Solution {public:...

2020-05-07 17:24:17 113

原创 最小覆盖子串

最小覆盖子串leetcode给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。示例:输入: S = “ADOBECODEBANC”, T = “ABC”输出: “BANC”说明:如果 S 中不存这样的子串,则返回空字符串 “”。如果 S 中存在这样的子串,我们保证它是唯一的答案。思路和代码参考链接滑动窗口+哈希首先用一个哈希表示 t...

2020-05-07 17:13:52 173 1

原创 插入区间

插入区间leetcode给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例 2:输入: intervals = [[1,2],[3,5]...

2020-05-07 14:08:14 151

原创 回文数

回文数leetcode判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。思路和代码class Solution {public: bool isPalin...

2020-05-07 11:47:02 109

原创 整数反转

整数反转leetcode给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。思路...

2020-05-07 11:24:06 283

原创 克隆图

克隆图leetcode思路和代码和复杂链表的拷贝一样,首先要有一个哈希表,来实现原点和克隆点的映射。可以深度遍历,也可以广度遍历去遍历所有的点。class Solution {public: Node* cloneGraph(Node* node) { unordered_map<Node*, Node*> m; return help...

2020-05-06 14:38:22 129

原创 单词拆分

单词拆分leetcode给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “le...

2020-05-06 14:28:44 169

原创 不同的子序列

不同的子序列、leetcode给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:输入:S = “rabbbit”, T = “...

2020-05-06 11:00:39 168

原创 解码方法

解码方法一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: “12”输出: 2解释: 它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入: “226”输出: 3解释: 它可以解码为 “BZ” (2 26), “V...

2020-05-06 10:45:56 127

原创 编辑距离

编辑距离leetcode给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例 1:输入:word1 = “horse”, word2 = “ros”输出:3解释:horse -> rorse (将 ‘h’ 替换为 ‘r’)rorse -&...

2020-05-03 15:07:04 221

原创 最小路径和

最小路径和给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。思路和代码就是简单的动态规划class Solution {public: int min...

2020-05-03 11:03:12 103

原创 扰乱字符串

扰乱字符串leetcode给定一个字符串 s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。下图是字符串 s1 = “great” 的一种可能的表示形式。great/ gr eat/ \ / g r e at/ a t在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然后交换它的两个子节点。例如,如果我们挑选非叶...

2020-05-03 10:49:15 203

空空如也

空空如也

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

TA关注的人

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