自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 SQL语法整理

参考:SQL查询语句大全SQL基本语法入门SQL语法整理1、SQL执行顺序2、库的操作(建库,删库)2.1 DROP、TRUNCATE和DELETE区别3、增删改查3.1 增3.4 查3.4.1 聚合函数3.4.2 where条件语句查询3.4.3 分组函数group by3.4.4 排序 order by3.4.5 其他1、SQL执行顺序第一步:执行FROM ----要先确定从哪个表中取数据第二步:WHERE条件过滤-----过滤不需要的数据之后,再去操作符合条件的数据第三步:GROUP B

2021-07-26 13:04:57 301 1

原创 【操作系统二】1、进程

操作系统第二章一、进程的定义、组成、组织方式1、一、进程的定义、组成、组织方式1、单道程序的时候:引入多道程序之后:

2021-07-19 23:12:58 328 1

原创 【搜索】2、岛屿的数量(medium)

leetcode 200 岛屿的数量同是岛屿问题,同样是用网格来表示。可以复用岛屿周长的思路:基本的dfs框架;搜索遍历的停止方式。class Solution { public int numIslands(char[][] grid) { //记录岛屿数量。 int count=0; //对整个网格进行遍历 for(int i=0;i<grid.length;i++){ for(int j=0;j&lt

2021-07-19 20:10:22 197

原创 【搜索】(DFS)1、岛屿的周长(easy)

深度优先搜索DFS和广度优先搜索BFS是两种最常见的优先搜索方法,被广泛地运用在图和树等 结构中进行搜索。深度优先搜索(depth-first seach,DFS)在搜索到一个新的节点时,立即对该新节点进行遍历;遍历需要用先入后出的栈来实现,也可以通过与栈等价的递归来实现。对于树结构而言,由于总是对新节点调用遍历,因此看起来是向着“深”的方向前进。深度优先搜索也可以用来检测环路:记录每个遍历过的节点的父节点,若一个节点被再次遍历且父节点不同,则说明有环。我们也可以用之后会讲到的拓扑排序判断是否有环.

2021-07-19 19:53:20 141

原创 【操作系统一】3、中断和异常,系统调用

操作系统第一章中断和异常中断的分类小结系统调用中断和异常发生中断就意味着需要操作系统介入,开展管理工作。用户态->核心态:通过中断实现,且中断是唯一途径。核心态->用户态:通过执行一个特权指令,将程序状态字(PSW)的标志位设置为“用户态”。中断的分类外中断的处理过程:小结系统调用...

2021-07-11 22:45:47 162

原创 【操作系统一】2、操作系统的发展与分类,运行机制与体系结构

操作系统第一章操作系统的发展操作系统的发展

2021-07-08 23:14:15 143 1

原创 【二分查找】4、寻找旋转排序数组中的最小值 II(hard)

leetcode 154寻找旋转排序数组中的最小值 II

2021-07-06 16:50:54 118

原创 【操作系统一】1、操作系统的概念、功能和目标,特征

操作系统第一章操作系统的概念操作系统的功能和目标小结操作系统的概念整体印象:文字表述:操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件方便的接口和环境。是计算机系统中最基本的系统软件。操作系统的功能和目标联机命令 == 交互式命令接口。如:win+R键,输入cmd按回车进入命令解释器,使用time指令。脱机命令接口 == 批处理命令接口,如C盘中的*.bat文件。程序接口==系统调用(广义指令)。只能通过用户程序间

2021-07-05 23:46:30 159 1

原创 【二分查找】3、搜索旋转排序数组Ⅱ(medium)

leetcode 搜索旋转排序数组Ⅱclass Solution { public boolean search(int[] nums, int target) { if(nums.length==0||nums==null) return false; int left=0,right=nums.length-1; while(left<=right){ int mid= left+(right-left)/2;

2021-07-05 13:27:27 93

原创 【二分查找】2、在排序数组中查找元素的第一个和最后一个位置(medium)

leetcode 34 在排序数组中查找元素的第一个和最后一个位置

2021-07-04 21:54:38 262

原创 【二分查找】1、x的平方根(easy)

二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复杂度为 O(log n)。举例来说,给定一个排好序的数组 {3,4,5,6,7},我们希望查找 4 在不在这个数组内。第一次折半时考虑中位数 5,因为 5 大于 4, 所以如果 4 存在于这个数组,那么其必定存在于 5 左边这一半。于是我们的查找区间变成了 {3,4,5}。(注意,这里的 5 可以保留也可以不保留,并不影响时间复杂度.

2021-06-30 23:25:48 103 1

原创 【双指针】最小覆盖子串(滑动窗口)(medium)

若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。leetcode 76最小覆盖子串思路:使用滑动窗口求解,即两个指针 l 和 r 都是从最左端向最右端移动,且 l 的位置一定在r 的左边或重合。...

2021-06-30 13:19:59 137 2

原创 【框架】mybatis通过mapper接口加载sql映射文件

还是以之前入门例子,通过xml文件加载映射为例,数据表相同。新建maven工程,配置好mybatis-config.xml文件,日志属性配置log4.properties等。其中,mybatis-config.xml文件内容:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http:

2021-06-27 23:02:06 879 2

原创 【框架】mybatis属性配置说明

在mybatis入门实例中,有关于mybatis的设置,这里做一下具体的说明记录。mybatis-config.xml在下载mybatis包时,压缩包里也会有相应的说明文档。文档里有给属性xml文件的一个简单例子:这个例子里给出了配置的最主要部分。注意 XML 文档所需的 XML 标头。 environment 元素的主体包含事务管理和连接池的环境配置。 mappers 元素包含一个映射器列表——包含 SQL 代码和映射定义的 XML 文件和/或带注释的 Java 接口类。另外,官网文档中也给出了

2021-06-27 20:59:29 191 1

原创 【报错】Cannot find class: com.mysql.jdbc.Driver

在第一次使用mybatis写入门实例时,遇到了Cannot find class: com.mysql.jdbc.Driver这个错误。可以判断出来是连接数据库出问题了。mybatis框架通过在xml文件中定义一些属性值来连接数据库,所以锁定到对应的xml文件中。数据库属性配置文件内容:jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/exercise?serverTimezone=GMT%2B8jd

2021-06-25 23:17:47 5093 2

原创 【双指针】3、环形链表Ⅱ(快慢指针)

对于链表找环路的问题,有一个通用的解法——快慢指针(Floyd 判圈法)。给定两个指针,分别为 slow 和 fast,起始位置均在链表的开头。每次 fast 前进两步,slow 前进一步。如果 fast可以走到尽头,那么说明没有环路;如果 fast 可以无限走下去,那么说明一定有环路,且一定存在一个时刻 slow 和 fast 相遇。当 slow 和 fast 第一次相遇时,我们将 fast 重新移动到链表开头,并让 slow 和 fast 每次都前进一步。当 slow 和 fast 第二次相遇时,.

2021-06-24 20:23:24 146 2

原创 【框架】Mybatis入门(基于原生接口的XML版本),对数据库进行简单的增删改查操作

Mybatis是?MyBatis本是Apache的一个开源项目iBatis,地址:https://github.com/mybatis/mybatis-3。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结

2021-06-24 16:47:53 196

原创 【双指针】2、合并两个有序数组

leetcode 88. 合并两个有序数组分析:两个数组都有序。把nums2合并到nums1中去,不额外新建数组。思路:两个数组,所以一个数组放一个指针。由于数组都有序,所以指针的开始位置可以选择都从头或尾开始。由于需要把nums2合并到nums1中去,指针从头部开始遍历容易造成nums1原本数据被覆盖掉,所以选择两个指针都从数组的尾部开始。然后开始对两个数组的值进行比较。class Solution { public void merge(int[] nums1, int m, int

2021-06-23 12:01:44 1018

原创 【双指针】1、两数之和(easy)

双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针。若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索。若两个指针指向同一数组,但是遍历方向相反,则可以用来进行搜索,待搜索的数组往往是排好序的。leetcode 167. 两数之和 II - 输入有序数组分析:给定数组已排好序,寻找和为target的两个数字。思路:两个指针i,ji,ji,j分别指向数组的头和尾,移动方向相反。.

2021-06-23 11:00:02 247

原创 【贪心算法】4、用最少数量的箭引爆气球

leetcode 452 用最少数量的箭引爆气球此题与 455 分发饼干异曲同工。解决思路:贪心策略:从第一个气球开始找,只要能有1支箭的就不多用,1支箭完成不了的再用下一支箭。把所有气球的范围在同一条横轴上画出来更易理解。判断能不能用同一支箭(气球有没有重叠):气球i+1i+1i+1的左边界小于等于气球iii的右边界过程:首先对气球按右边界的大小进行升序排序。然后选标准(与哪一个气球进行比较算是相重叠),右边界设置为标准的右边界。先以第一个气球为标准,与第一个气球有重叠的气球,可共用一支

2021-06-22 13:03:25 151

原创 【贪心算法】3、种花问题(easy)

看题目就很容易想到利用贪心来解题。为了在现有地块中种上更多的花,所以贪心策略为只要有符合种花条件的地块,就在该地块上种花。所以遍历所有地块,看最多能种的花是否大于等于要种的花。判断地块iii是否能种花需要判断三处:当前地块iii,地块i−1i-1i−1,地块i+1i+1i+1,一般情况下,这三块地块的值需均为0(未种花状态)flowerbed[i]==0 && flowerbed[i-1]==0 && flowerbed[i+1]==0 特殊情况:i==0.

2021-06-21 18:15:33 302

原创 【贪心算法】2、无重叠区间(中等)

leetcode 435、无重叠区间利用贪心算法的解题思路:class Solution { public int eraseOverlapIntervals(int[][] intervals) { int n = intervals.length; if(n==0) return 0; Arrays.sort(intervals,new Comparator<int[]>(){ @Override

2021-06-21 14:52:14 143

原创 【贪心算法】1、分发饼干

贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。可用于解决分配问题e.g.leetcode 455 分发饼干解题思路:目标:尽可能满足越多数量的孩子。根据目标,可以容易想到,先去满足胃口值小的孩子。为了尽量使饼干可以满足更多的孩子,所以要把饼干尺寸大于等于孩子胃口值的饼干中挑尺寸最小的饼干给孩子。满足了这个孩子之后,再采取同样的策略去考虑剩下的孩子,直到孩子全被满足或者没有符合条件的饼干。对孩子胃口值和饼干尺寸进行排序,便于从胃口值最小.

2021-06-21 10:55:26 632

原创 常见功能测试用例整理

具体xmind文件下载

2021-06-17 10:11:36 218

原创 【互联网金融】(学习笔记)2、互联网金融概述

互联网金融的产生与发展产生因素:人均GDP增加,可支配收入增多;中小企业的快速增长,对金融的需求提高;互联网技术的提高;手机普及率,网民数提升;电子商务的发展;网络渠道的拓展,用户数量增加;(时间成本减小,营销成本减小)小微企业的融资需求促进互联网金融的发展(仅有少部分获得银行贷款)大数据和云计算的技术革命改变传统融资模式发展:萌芽(2005年之前):商务电子化推动金融电子化发展:把简单的金融业务搬到网上。网上银行、网上证券交易、网上保险等业务应运而生起步阶段(2005-2012):

2021-06-13 23:44:23 2618 4

原创 【互联网金融】(学习笔记)1、前言

互联网金融:互联网金融定义互联网+金融=互联网金融(e.g. 阿里金融,腾讯金融,百度等)金融+互联网思想=互联网金融(传统金融机构的业务逐渐迁移到互联网上去)金融+互联网思想=互联网金融(具备互联网思想的金融活动就可以称之为互联网金融)互联网金融快速发展的动因:三流统一——信息流、资金流、物流。互联网金融的模式:P2P,大数据金融,金融网销,电商小贷,众筹融资,电子支付(较成熟)供应链金融(涉及的环节是否全都由互联网来实现)大数据与互联网金融什么是大数据?大数据是无法在可承受时间范

2021-06-12 19:23:42 924 3

原创 IP地址与子网掩码

IP地址是?作用IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。常见的IP地址,分为IPv4与IPv6两大类IPv4地址用点分十进制表示,X.X.X.X (X表示的是一个10进制) 例:192.168.1.1每一个X对应的是8个二进制,长度为 32 bit;每一个X对应 1 个字节;X取值范围是 0 --255 ;结构 : 网络位 + 主机位IP地址用来在一定范围内唯一的标识一个上网的设备;(凡是需要上网的设备,必须得有I

2021-06-06 21:55:56 9610

原创 Mac系统 mysql连接工具--sequel pro

进行数据库连接如图:1、可以建一个favorite,以后可以免输入登录。2、输入对应的信息3、点击add favorite后才会保存到左侧栏中,下一次就可以直接点击连接4、connect。下一次再重新打开后就可以看见左栏中有上次添加的favorite,如图,可以直接点击连接。选择数据库连接成功后,可以直接左上角选择数据库。如果想新建的话,选择add database新建一个数据库。也可以在连接界面database栏填写对应的数据库名称,这样就可以不用在此界面进行选择了。新建数据库

2021-06-01 18:52:40 2105

原创 Mac系统 mysql常用终端命令

终端登录mysql终端输入/usr/local/MySQL/bin/mysql -u root -p,再输入密码即可。其中,/usr/local/MySQL/bin/mysql 是mysql的安装路径。登录成功如图:登录之后,可以查看有哪些数据库。命令: show databases;当前系统中是有如下这些数据库。也可以创建、删除数据库:(1)创建数据库:create database 数据库名称(2)删除数据库:drop database 数据库名称进入某个数据库可以使用命令:use

2021-06-01 15:23:05 199

原创 排序算法对比

平方阶O(n2)O(n^2)O(n2)排序:直接插入、直接选择和冒泡排序线性对数阶O(nlog2n)O(nlog_2n)O(nlog2​n)排序:快速排序、堆排序和归并排序O(n(1+δ))O(n^{(1+\delta)})O(n(1+δ))排序,δ\deltaδ是介于0和1之间的常数:希尔排序线性阶O(n)O(n)O(n)排序:基数排序,桶、箱排序论是否有序的影响:当原表有序或基本有序时,直接插入排序和冒泡排序将大大减少比较次数和移动记录的次数,时间复杂度可降至O(n)O(n)O(n);而快速.

2021-06-01 11:11:10 90

原创 排序之直接插入排序(java)

具体步骤如下:默认第一个元素已经被排序,获取下一个元素在已经排序的元素序列中从后向前扫描,如果该元素(已排序)大于新元素,将该元素移到下一位置,直到找到已排序的元素小于或者等于新元素的位置,将新元素插入到该位置重复步骤2-3public class selectsort { public static void main(String[] args) { int[] arr = {13,5,2,8,32,56,32,421,78,4}; sort(arr

2021-05-31 19:28:17 78

原创 排序之堆排序(Java)

堆排序是利用堆这种数据结构所设计的一种排序算法。堆实际上是一个完全二叉树结构。 完全二叉树:假设一个二叉树的深度为h,除第 h层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边。堆又分两种:大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;堆排序的核心步骤:将待排序的数组初始化为大顶堆,该过程即建堆。将堆顶元素与最后一个元素进行交换,除去最后一个.

2021-05-31 19:04:24 59

原创 排序之快速排序(java)

快速排序是由东尼·霍尔所发展的一种排序算法。 在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。 事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner> loop)可以在大部分的架构上很有效率地被实现出来。基本思想分治法。快速排序又是一种分而治之思想在排序算法上的典型应用。使用分治法(Divide and conquer)把一个串行(list)分为两个子串行(sub-lists)。本质.

2021-05-31 16:36:31 117

原创 IDEA2020 新建Maven项目

使用IDEA2020版 新建Maven项目,具体步骤见图:1、File - New -Project2、左侧栏选择Maven,右侧选择自己安装的SDK版本,我选的是1.8,Creat form archetype打勾,从列表中可以选择maven-archetype-quick,如果想要建一个web项目,可以选择maven-archetype-webapp。next3、“Name” “groupId”,“artifactId”,以及“version”,其中name是项目名称,groupId是公司域名

2021-05-15 21:32:10 707

原创 MySQL连接异常: The server time zone value ‘?й???????‘ is unrecognized or represents more than one time.

连接MySQL8.0.16版本时报错:Caused by: java.sql.SQLException: The server time zone value '?й???????' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to us

2021-05-14 21:10:07 187

原创 报错解决:Artifact JSP:war exploded: Error during artifact deployment.

在写一个简易的登录功能时,启动服务器后一直报bug,具体如下图:不知问题出在哪里?百度了很多,也没解决。以后遇到这种问题,首先去看log!!!tomcat Catalina log里一大堆,看下去发现:上图最后一行提示:非法的url!!检查代码发现注解里有错误,错误写法:正确写法应该是:重启tomcat服务器,bug解决!为解决这个问题,折腾了挺久,还是老老实实看log发现问题最有效。...

2021-05-09 17:10:45 846

原创 解决MySQL启动问题:can‘t connect to MySQL server on ‘localhost‘

很久没有用过MySQL,然后启动时发生了一下错误,如图:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)解决:点击计算机,右键选管理,点击左侧栏中的服务,找到MySQL,右键属性打开,选择启动。也可以把启动类型换成自动。图中因为已经启动过了,所以启动栏变为灰色无法点击。再次登陆MySQL,成功。...

2021-05-09 14:19:05 4997 1

原创 求解最短路径

迪杰斯特拉(Dijkstra)算法——计算一个节点到其他所有节点的最短路径弗洛伊德算法(Floyd)——求每一对顶点之间的最短路径参考

2021-04-13 15:22:23 48

原创 牛客 跳台阶问题编译错误

在牛客上做题时出现了以下错误:对应的代码是:public class Solution { public int JumpFloor(int target) { if(target<=2) return target; int a=1,b=2; int res=0; for(int i=3;i<=target;i++){ res=a+b; a=b;

2021-04-06 14:29:14 292

原创 动态规划的直观理解

动态规划的理解漫画直达!!!以斐波那契数列举例,简单易懂动态规划三个重要概念:边界最优子结构状态转移公式

2021-03-30 09:51:01 79

常见功能测试的测试用例.xmind

常见功能测试的测试用例.xmind

2021-06-16

空空如也

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

TA关注的人

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