自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣 - 135 - 分发糖果

找出最小的数,数组两边都放置这个最小数,然后按照上面的方法求两个数组。贪心求,定义两个数组 left、right 用来存储糖果数量。例:[1,2,87,87,87,2,1]最终舍弃最有边的糖果。

2023-07-28 19:13:27 82

原创 力扣 - 440 - 字典序的第K小数字

例:n = 365, k = 299。算法步骤:先求出当前节点下的所有节点。

2023-07-28 12:36:36 44

原创 力扣-4-寻找两个正序数组的中位数

剩下两个数组长度不一致,此时判断B2 > C1 则B2为第五小,否则排除B2两个数组调用函数一得到的上中位数即为第五小。(因为排除A2、B2,再调用函数一得到第三小,即1+1+3=5)因为只排除掉4个数,剩余两个数组长度为3,调用函数一后获取的上中位数为第3小,4 + 4 = 7 小于8,所以两个数组都排除掉一个最小数,此时4 + 2 + 2 = 8;k取2,两个数组都取2个数,调用函数一得到的上中位数即第二小的数。k取8,D2至多第七小,所以排除A2、B2、C2、D2;

2023-07-27 11:25:43 172

原创 力扣-41-缺失的第一个正数

因为题目要求返还最小正整数,当数组全为负数时最小为1,当数组全为大于1且有序递增的数时最小为n+1。题目要求空间复杂度为O(1),时间复杂度O(n)输入:nums = [3,4,-1,1]

2023-07-25 17:56:43 48

原创 力扣-72-编辑距离

四种情况: 样本对应模型(字符串比较最后一个字符,选择最小的答案)

2023-07-25 14:12:18 103

原创 布隆过滤器

布隆过滤器由位图和多个哈希函数构成,解决类似黑名单问题。必定会存在误差率。

2023-07-18 16:10:01 29

原创 ReentrantLock源码

ReentrantLock源码。

2023-02-23 13:30:44 46

原创 MySQL索引创建/删除

MySQL索引创建

2023-02-18 19:25:42 75 1

原创 快速排序

冒泡排序算法思想:选择数组中一个数为基准数(通常选择第一个数)。从数组最后一个开始,将大于这个基准数的数移动到基准数左边,将大于基准数的数移到基准数右边。算法过程举例:Java代码实现:public void quickSort(int[] arr, int left, int right){ if (left > right){ return; } int low = left; int high = r

2020-12-05 21:51:28 70

原创 Mysql中limit和offset的使用

select * from user limit 2,6;select * from user limit 4,offset 3;第一个语句查询第3、4、5、6、7、8行第二个语句查询第4、5、6、7行limit后面跟两个参数,第一个代表从第(i+1)行开始查询,第二个代表总共查询返回几行limit后面跟一个参数,代表查询返回多少行offset后面一个参数代表,从第(i+1)行开始查询...

2020-11-18 21:20:59 194

原创 MySQL的UPDATE或DELETE中子查询遇到的坑

题目描述删除emp_no重复的记录,只保留最小的id对应的记录。CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primary key,emp_no int(11) NOT NULL,title varchar(50) NOT NULL,from_date date NOT NULL,to_date date DEFAULT NULL);delete from titles_testwhere id not in .

2020-11-18 21:10:18 527

原创 Map的四种遍历方式

Map的四种遍历方式获取所有的键值对集合,迭代器遍历Map 的 values() 方法,单纯拿到所有值的 Collection获取所有的键值对集合,for 循环遍历keySet() 获取到 key 的 Set,遍历 Set 根据 key 找值(不推荐使用原因是多出了根据 key 找值的消耗)package maptest;import java.util.HashMap;import java.util.Iterator;import java.util.Map;publi

2020-11-17 10:46:58 73

原创 冒泡排序

冒泡排序算法思想:遍历序列,相邻两个数比较,较大的数往后移,即前面的数大于后面的数就交换两个数的位置。算法过程举例:原数组{6,2,5,1,4,3}第一次排序后{2,5,1,4,3,6}第二次排序后{2,1,4,3,5,6}第三次排序后{1,2,3,4,5,6}第五次排序后{1,2,3,4,5,6}时间复杂度:O(n^2)空间复杂度:O(n)稳定性:稳定Java代码实现:public class BubbleSort { public static void

2020-09-25 13:16:54 70

原创 选择排序

选择排序算法思想:选择排序,从头至尾扫描数组,找出最小的一个元素,将最小的元素与第一个元素交换,接着从剩下的元素中继续按这种方式,最终得到一个有序序列。算法过程举例:原数组{6,2,5,1,4,3}第一次排序后{1,2,5,6,4,3}第二次排序后{1,2,5,6,4,3}第三次排序后{1,2,3,6,4,5}第四次排序后{1,2,3,4,6,5}第五次排序后{1,2,3,4,5,6}时间复杂度:O(n^2)空间复杂度:O(n)稳定性:不稳定Java代码实现:p

2020-09-23 00:11:00 114

原创 单例模式

什么是单例单例在整个过程中只能被创建一次。单例类自己创建自己的对象,并且只能被创建一次。使用场景全局使用消耗大量系统资源:数据库连接池、工厂类、数据源等单例的两种实现实现限制条件构造器私有自己创建实例静态方法对外提供实例饿汉式public class Singleton {public static final Singleton INSTANCE = new Singleton(); //私有化构造器 private Singleton(){

2020-08-29 01:15:10 81

原创 win10环境下安装Anaconda和Opencv

win10环境下安装Anaconda和OpencvAnaconda下载官网下载清华镜像源我这里下载的版本是Anaconda3-4.1.1-Windows-x86_64 对应 python3.5Anaconda安装默认所有用户(这里影响不大)选择自定义路径默认就行检查是否安装完成Opencv下载安装下载地址选择版本,我这里选择opencv_python-4.1.2+contrib-cp35-cp35m-win_amd64.whl。 cp35

2020-08-25 00:46:44 237

原创 Java集合

Java集合为什么要使用Java集合数组弊端:1.数组一旦初始化,长度就已经不可再改变2.数组声明的类型初始化就决定数组类型,不可更改3.数组数据有序,可重复Collection父接口,对象的集合,单列集合常用方法add(Object obj)添加元素addAll(Collection coll)添加一个集合size()集合大小isEmpty()判断集合是否为空clear()清空集合contains(Object obj)判断是否包含某元素,通过元素的equals方法来判断c

2020-08-25 00:43:43 128

原创 枚举类的使用

枚举类的使用自定义枚举类class Season{ private final String name; private Season(String name) { this.name = name; } public static final Season SPRING = new Season("春天"); public static final Season SUMMER = new Season("夏天"); public static final Season FAL

2020-08-25 00:40:21 72

原创 多线程的使用

多线程的使用四种多线程的创建,线程通信,同步程序,进程,线程概念程序程序是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码,静态对象。进程进程是程序的一次执行过程,或是正在运行的一个程序。是一个动态的过程:有它自身的产生、存在和消亡的过程。——生命周期。线程进程可进一步细化为线程,是一个程序内部的一条执行路径。多线程多线程就是多个线程同时运行或交替运行。单核CPU的话是顺序执行,也就是交替运行。多核CPU的话,因为每个CPU有自己的运算器,所以在多个CPU中可以同时运

2020-08-25 00:39:11 142

原创 包装类的使用

包装类的使用基本数据类型+包装类+String类的相互转化八种基本数据类型byte,short,int,long,float,double,boolean,char八种基本数据类型对应的包装类Byte,Short,Integer,Long,Double,Boolean,Character基本数据类型+包装类+String类的相互转化public class Wrapper { public static void main(String[] args) { //JDK1.5以前 /

2020-08-25 00:37:01 88

原创 面向对象三个基本特征

面向对象三个基本特征封装、继承、多态封装什么是封装封装就是隐藏对象的属性和实现细节,仅向外界暴露该暴露的接口。代码举例public class Person { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String ge

2020-08-25 00:34:38 751

原创 参数传递机制

基本数据类型和引用数据类型参数传递不同基本数据类型package com.jmu;public class PassValue { public static void main(String[] args) { int a = 10; int b = 20; PassValue pv = new PassValue(); System.out.println("初始: a=" + a + ", b="+b); pv.swap(a,b); System.out.print

2020-08-25 00:32:52 248

原创 算法

算法介绍二分法package com.jmu;public class ArrayTest4 { public static void main(String[] args) { int array[] = new int[] {1,2,3,4,5,6,7,8,9}; // 查询某元素的索引 int target = 7; int begin = 0; int end = array.length - 1; boolean flag = true; while

2020-08-25 00:30:53 82

原创 Java数组

数组介绍数组概述定义数组(Array): 所谓数组,是有序的元素序列。例如 int[5] = {1,2,3,4,5};数组本身是引用数据类型,而数组中的元素可以是任何数据类型,包括基本数据类型(byte,short,int,long,char,float,double,boolean)和引用数据类型(类(class),接口(interface),数组(array))。创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。组成组成部分: 数组名、下标(索引)、

2020-08-25 00:27:46 86

原创 JVM学习

什么是JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM体系结构图多数的...

2020-08-24 23:56:04 87

原创 三层架构与mvc

系统架构所谓系统架构是指,整合应用系统程序大的结构。经常提到的系统结构有两种:三层架构与MVC。这两种结构既有区别,又有联系。但这两种结构的使用,均是为了降低系统模块间的耦合度。三层架构View(视图层):用于接收用户提交请求的代码Service(服务层):处理系统业务逻辑Dao(持久层):直接操作数据库的代码为了更好的降低各层间的耦合度,在三层架构程序设计中,采用面向抽象编程。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相

2020-08-19 18:56:31 178

原创 redis安装

安装Redis下载地址https://github.com/MicrosoftArchive/redis/releases注意选择安装路径,然后一路next安装完成后双击打开 redis-server.exe正常情况如下图如果报错 Creating Server TCP listening socket 127.0.0.1:6379: bind: No error配置redis.windows.conf文件cmd到redis目录下,执行redis-cli.ex

2020-08-19 18:54:52 81

原创 mysql安装

mysql安装官网下载mysql,下载zip版本,地址 https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压,打开目录新建文件夹data和my.ini文件打开my.ini,添加以下内容,保存[mysqld]#mysql安装目录basedir=D:\develop\MySQL\mysql-5.7.30-winx64\#数据存放目录datadir=D:\develop\MySQL\mysql-5.7.30-w

2020-08-19 18:52:21 143

原创 jdk环境配置

JDK环境配置官网下载JDK(现在需要账号下载,自行百度可以获取账号)将下载好的JDK安装打开环境变量配置新建变量变量名 JAVA_HOME变量值(JDK安装路径) D:\develop\JDK再新建一个变量变量名 CLASSPATH变量值(JDK安装路径) .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar编辑PATH变量1: %JAVA_HOME%\bin变量2: %JAVA_HOME%\jr

2020-08-19 18:30:43 68

原创 遗传算法解决TSP问题

遗传算法什么是遗传算法遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,不需要确定的规则就能自动获取和指导优化的搜索空间,自适应地调整搜索方向。遗...

2019-11-19 23:49:28 601

原创 蚁群算法介绍

什么是蚁群算法蚁群算法就是模拟蚂蚁寻找食物的过程,它能够求出从原点出发,经过若干个给定的需求点,最终返回原点的最短路径。这也就是著名的旅行商问题。蚁群算法原理1.蚂蚁在路径上释放信息素。2.碰到还没走过的路口,就随机挑选一条路走。同时,释放与路径长度有关的信息素。3.信息素浓度与路径长度成反比。后来的蚂蚁再次碰到该路口时,就选择信息素浓度较高路径。4.最优路径上的信息素浓度越来越大。...

2019-11-05 20:05:48 1370

空空如也

空空如也

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

TA关注的人

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