自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

清欢

不怕千万人阻挡 只怕自己投降

  • 博客(149)
  • 收藏
  • 关注

原创 大数据架构

2024-04-22 14:34:10 228 1

原创 Redis底层数据结构:SDS

Redis中并没有直接使用C语言中的字符串,而是定义了一种简单动态字符串(simple dynamic string)作为Redis的默认字符串实现,简称SDS。在Redis中,C语言的字符串只会用于一些无需对字符串修改的地方,如日志打印等。而Redis默认的字符串实现是SDS,如set命令中的key底层即是一个SDS,而value如果是一个字符串类型,则底层也是SDS,如果value是列...

2019-12-02 17:11:48 1180

原创 MongoDB基础(三):MongoDB的索引

介绍MongoDB和其他DBMS一样,也支持索引机制,可以通过索引优化查询,避免全表扫描。MongoDB支持多种索引。_id主键索引 普通索引 组合索引 唯一索引 多键索引 地理空间索引 文本索引 哈希索引 稀疏索引 TTL索引 ......从以上可以看出,MongoDB与MySQL类似,MySQL支持的索引MongoDB也几乎都支持,而且MongoDB索引同样是使用...

2019-11-27 22:39:11 1073

原创 VMware Workstation下安装CentOS虚拟机

准备工作VMware Workstation虚拟机,版本为VMware Workstation 15 PRO CentOS镜像:CentOS8安装首先打开VMware Workstation虚拟机,选择创建新的虚拟机选择经典模式,如果特殊需要可以选择自定义配置选择稍微安装操作系统,在完成硬件初始化后再载入CentOS镜像接下来根据镜像选择虚拟机版本...

2019-11-24 20:38:20 436

原创 MongoDB基础(二):MongoDB基础概念

MongoDB基本概念SQL术语/概念 MongoDB术语/概念 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table j...

2019-11-23 19:04:54 332

原创 MongoDB基础(一):MongoDB简介

MongoDB介绍MongoDB是一个C++语言编写的开源NoSQL数据库,目的是为Web应用程序提供高性能、高可用性且易于扩展的数据存储解决方案。MongoDB是NoSQL数据库中最热门的一种,是一种文档型数据库,MongoDB易于扩展,表结构自由,高性能。官网:https://www.mongodb.com/MongoDB历史关系型数据库在很长时间里一直是数据库领域当之无愧的王...

2019-11-23 18:29:43 217

原创 MongoDB实战(三):MongoDB的高级查询

MongoDB的基本查询MongoDB中使用find()来进行文档的查询,然后以非结构化的方式来显示返回的文档如果需要结构化返回,需要加上pretty()find()括号里可以设置两个参数,以逗号分隔。两个参数都必须是文档,第一个参数是查询条件,第二个参数是指定返回的字段,_id字段默认返回例如:db.users.find({"name":"lzx"},{"nam...

2019-11-16 22:32:34 1051 1

原创 MongoDB实战(二):MongoDB的基本命令

数据库常用命令use db:切换/创建数据库,数据库存在时则切换到该数据库,不存在时则创建该数据库show dbs:查询所有数据库,此时发现并没有刚才创建的mydb数据库,这是因为mongodb只有在该数据库插入数据时才会真正创建db.dropDatabase():删除当前使用的数据库db.getName():查看当前db的名字db.stats...

2019-11-15 22:45:43 201

原创 MongoDB实战(一):MongoDB的安装

Windows环境下安装mongoDBmongoDB官网下载安装包https://www.mongodb.com/download-center/community选择合适的操作系统,目前最新是4.2.1版本下载完成后是一个msi文件,默认安装即可,如需修改安装目录选择自定义安装 安装完成后,进入安装目录,默认安装为C:\Program Files\MongoDB\Serve...

2019-11-15 20:56:46 425

原创 Leetcode # 232:用栈实现队列[easy]

描述使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回...

2019-11-10 22:30:51 100

原创 Leetcode # 155:用队列实现栈[easy]

描述使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空示例注意:你只能使用队列的基本操作-- 也就是push to back, peek/pop from front, size, 和is empty这些操作是合法的。你所使用的语言也许不支持队列。你可以使...

2019-11-10 22:01:41 94

原创 Leetcode # 155:最小栈[easy]

描述设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。pop()-- 删除栈顶的元素。top()-- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例示例:MinStack minStack = new MinStack();minStack.push(-2);minStac...

2019-11-10 21:20:25 113

原创 Leetcode # 20:有序的括号[easy]

描述给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false...

2019-11-09 22:54:42 250

原创 Redis安装

RedisRedis是一个开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,带有半径查询和流的地理空间索引。Redis具有内置的复制,Lua脚本,LRU驱动事件,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。官网:ht...

2019-11-09 19:31:50 139

原创 Redis介绍

什么是Redis? Redis是用C语言开发的一个开源的高性能键值对(key-value)内存数据库 它提供了五种数据类型来存储值:字符串类型、散列类型、列表类型、集合类型、有序集合类型 它是一种NoSQL数据库 什么是NoSQL? NoSQL,即Not-Only SQL(不仅仅是SQL),泛指非关系型的数据库 什么是关系型数据库?数据结构是一种有行有...

2019-11-05 22:02:27 141 1

原创 Leetcode # 25:K个一组反转链表[hard]

题目给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。示例示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回: 2->1->4->3->5当k= 3 时,应当返回...

2019-11-05 20:49:25 154

原创 Python基础(二):基本数据类型

变量Python中的变量和Java基本一致变量名由数组,下划线,字母组成 变量名需要以下划线或字母开头 变量名不能和关键字重名 变量名尽量见名知意 Python是弱类型语言 变量不需要声明变量类型# 变量#字母开头score = 89;print(score)#下划线开头_number = "dasd"print(_number)#不可数字开头# 5age = ...

2019-11-05 18:31:59 148

原创 Python基础(一):Python简介

简介Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更...

2019-11-05 17:48:23 146

原创 Leetcode # 24:两两交换链表中的节点[hard]

描述给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例示例:给定 1->2->3->4, 你应该返回 2->1->4->3思路1>暴力遍历两个一组修改,注意保留前一组的后一个节点指针,用来修改每组的后置指针代码/** * Definiti...

2019-11-04 22:40:41 74

原创 Leetcode # 23:合并K个有序链表[hard]

描述合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6思路1>暴力解法将所有链表遍历一遍,全部扔进一个数组里,然后将数组排序,用数组重构...

2019-11-03 22:33:10 245

原创 Android基础UI组件(一):TextView文本框

简介在Android的UI中,文本框用TextView组件表示,用于在界面上显示文字信息。TextView组件不仅能显示单行文本,也能显示多行文本,甚至可以显示带图像的文本。TextView常用属性android:autoLink 设置当文本为URL链接,email,电话号码时是否显示为可单击的链接。可选值:none,web,email,phone,map,all an...

2019-11-03 19:16:26 1053

原创 Android快速入门(六):UI组件

UI组件介绍UI组件也称为视图组件,View组件,是构造UI界面的基本单元,为了更好地进行界面的设计,Android中提供了大量的基础组件。Android的一般开发过程如下:先通过xml布局文件或Java代码创建布局 设定组件显示样式 获取UI组件对象,编写组件对应的事件处理逻辑UI组件的常用属性android:background 设置背景色或图片颜色,@androi...

2019-11-03 18:39:23 310

原创 Leetcode # 19:删除链表的倒数第N个节点[medium]

描述给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路1>暴力解法反转链表,删除整数第N个...

2019-11-02 22:31:11 100

原创 Android快速入门(五):Activity

Activity初识Activity是Android系统API的一个类,用于提供一个系统与用户的交互机制。简单来理解,Activity也可以理解为一个页面,可以获取对应的UI组件为之绑定响应的处理事件,即与人的交互。每个Activity都需要继承自android.app.Activity,通过调用Activity类的setContentView()方法可以设置用户界面。从一个界面跳...

2019-11-02 22:03:52 1332

原创 Android快速入门(四):初识Android开发

Android开发原理Android开发核心理念是组件式和事件驱动编程。一个Activity代表一个页面,多个Activity在全局配置文件AndroidManifest.xml中定义 页面上的具体布局通过各种UI组件来实现,UI组件可以在xml文件中写,也可以Java代码写,推荐xml文件中写,Android会自动帮我们解析xml文件生成对应的Java类 组件和人的交互逻辑通过在Ac...

2019-11-02 21:14:39 120

原创 Git快速入门(四):IDEA中使用Git

在IDEA中绑定本地Git克隆项目到IDEA提交新文件到GitHub

2019-11-02 18:47:33 110

原创 Git快速入门(三):GitHub

GitHub简介GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中...

2019-11-02 18:04:03 384

原创 Git快速入门(二):Git常用命令

创建一个本地Git仓库创建一个本地文件夹在文件夹里右键选择打开Git bash窗口执行git init命令初始化一个git仓库初始化完成之后,文件夹里会多一个.git隐藏文件夹提交文件到git仓库新建一个txt文件git status命令查看该文件的状态,发现新增了一个demo.txt文件,还没有提交将该文件添加到暂存区将该文件提交到本...

2019-11-02 13:40:04 228

原创 Git快速入门(一):Git简介

Git简介Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习,占地面积小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,并且具有廉价的本地分支,方便的暂存区域和多个工作流等功能。以上是Git官网的描述:https://git-scm.com/简单来讲,G...

2019-11-02 12:30:19 227

原创 Leetcode # 876:链表的中间节点[easy]

描述给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3,...

2019-11-01 22:37:51 240

原创 Leetcode # 237:删除链表中的节点[easy]

描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:示例示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 ->...

2019-11-01 22:33:58 82

原创 Leetcode # 234:回文链表[easy]

描述请判断一个链表是否为回文链表。示例示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true思路1>暴力解法反转整个链表,然后遍历对比一遍即可。时间复杂度O(N),空间复杂度O(1)2>优化快慢指针遍历链表找到中间节点,然后将后半部分反转,再从头和从反转之后的头开始遍...

2019-11-01 22:22:26 108

原创 Android快速入门(三):第一个Android程序

创建一个新的项目设置项目相关信息分别为项目名,项目包名,项目位置以及Android API的版本,后面有每个版本的兼容性介绍。配置虚拟机如果出现上图VT-x is disabled in BIOS红色字样,需要在电脑BIOS里打开允许虚拟化设置。运行程序项目启动成功,由于是一个空项目,因此里面没有任何控件,只设置了项目标题。An...

2019-10-31 17:11:49 218

原创 Android快速入门(二):Android开发环境搭建

想要进行Android开发,至少需要Java的开发环境JDK,Android开发包SDK以及开发工具Eclipse或者IDEA,由于Google在IDEA的基础上进行开发改进,形成了专门的Android开发工具Android Studio,该工具自动继承了SDK,因此我们只需要安装JDK和Android Studio即可。JDK:https://www.oracle.com/technetwo...

2019-10-31 12:43:53 109

原创 Android快速入门(一):Android介绍

Android介绍安卓(Android)是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android...

2019-10-31 12:35:01 1209

原创 Leetcode#206:反转链表[easy]

描述反转一个单链表。示例示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路遍历反转即可,注意修改节点后指针之前保留下一个节点引用,别让链表断掉代码/** * Definition for singly-linked list. * public ...

2019-10-30 21:18:22 80

原创 HTTP(三):HTTP相关协议

本节主要介绍HTTP相关的各种协议。TCP/IP协议计算机网络里通信标准有两套,一套是OSI制定的标准协议,即OSI七层模型,另一套则是TCP/IP协议,即我们常说的四层模型。OSI七层模型是国际标准组织制定的标准协议,而TCP/IP协议由于在OSI七层模型出来之前已经实施多年,得到了市场的认可,因此我们现在使用的都是TCP/IP协议,OSI更多的是对TCP/IP细节上的补充,偏向于学...

2019-10-29 21:56:10 170

原创 Leetcode#203:移除链表元素[easy]

描述删除链表中等于给定值val的所有节点。示例示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路遍历比较覆盖即可,由于需要覆盖当前元素,因此需要保留前一个节点的指针,设置前后两个指针即可处理。注意事项注意链表为null,或者重复节点都在头结点...

2019-10-29 21:21:36 83

原创 Leetcode#160:相交链表[easy]

描述编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相...

2019-10-28 20:40:19 90

原创 排序算法(五):快速排序

基本思想在数组中选取一个数作为基准值,进行一个partition过程,将小于该数的放在左边,大于的放在右边,等于的放在中间,再对左右分别进行该操作。时间复杂度:每次partition可以将一个数字位置确定,将数组划分为两部分,因此想要有序,理想情况每次刚好两边大小一样,则一共需要logn次partition过程,每次partition过程时间复杂度O(n),因此最好时间复杂度O(nlogn...

2019-10-28 13:39:06 196

空空如也

空空如也

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

TA关注的人

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