自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetCodeday12

一:方法总结二:题目448.找到所有数组中消失的数字给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。思路:1-n 用数组下标值来记录,比如nums[1] =2 ;则认为数字2已经出现,在数组第二个位置做记录。最后看数组哪一个位置没被做记录,返回该位置public List<Integer> findDisappearedNumbers(int

2021-11-14 18:56:39 580

原创 leetCode刷题day11

一:方法总结二:题目98.验证二叉搜索树给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。 public boolean isValidBST(TreeNode root) { return midOrder(root); } public boolean midOrder(TreeNode node){ if (node==null) return true; if (!midOr..

2021-11-11 18:31:10 4484

原创 LeetCode刷题Day10

一:方法总结二:题目79.单词搜索给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。思路:先遍历board,找到一个能匹配的字符,确定入口,同时创建新的 vis 数组保存已经走过的路径。public boolean exist(char[][] board, String word) { boolean[][] vis = new boolean[m][n];//保存已经...

2021-11-10 17:23:37 662

原创 LeetCode刷题day09

一:方法总结1.要求线性的时间复杂度双指针,hash表2.链表问题找到倒数第k个结点:两个指针,指针A一个移动k次,再两个指针同时移动直到A到尾结点;由于A-B保持k的距离,因此B在倒数第k个结点上找中间结点:快慢指针,快指针移动2次,慢指针移动1次;慢指针移动n次,快指针移动2n次,因此满指针在中间处。判断链表是否有环以及环的长度:hash表或快慢指针,快慢指针:快指针1次,慢指针2次,第一次相遇则有环,第二次相遇慢指针走过的距离=环的长度二:题目121.买卖股票的最佳时机

2021-11-09 20:06:11 4651

原创 7.反射、动态代理

一:反射1. java.lang.class类加载过程:程序经过javac.exe命令后,会生成一个或多个字节码文件(.class结尾)再使用java.exe对某个字节码文件解释运行,就相当于把字节码文件加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的Class对象。(类加载器作用)加载到内存中的类成为运行时类,运行时类是Class的一个实例。初始化:类构造器(构造类信息的)方法是由编译期自动收集类中所有类变量的赋值动作和静态代码块中的语句合并产生

2021-11-08 23:04:38 61

原创 leetCode刷题day08

一:方法总结1.回溯当答案的长度不确定时考虑使用回溯,回溯的条件可以是答案的长度,也可以是是否搜索到了数组最后2.栈涉及比大小,并且要记录下标时可以考虑使用栈二:刷题62.不同路径一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?思路:动态分析,dp[ i ][ j ]记录到达该位置的路劲数。先初始化数组,填好.

2021-11-08 21:14:27 87

原创 LeetCode刷题Day07

一:方法总结1.旋转图像顺时针90°=水平翻转+对角线翻转2.字符串排序String.toCharArray(str) -> char[ ]new String(char[ ]) ->str3.hashMap保存一一对应的两个值,适用于hashMapmap.get(key) 返回value4.对二维数组的操作二维数组排序:Arrays.sort(int[ ],int[ ]);重写compare方法ArrayList(int [m][ ]) -> int

2021-11-07 22:40:39 97

原创 6.集合(Collection、Map)、泛型

一:分类Collection接口:单列集合,存储一个一个对象 List接口:有序,可重复的 ArrayList:底层为数组,主要实现类 LinkedArrayList:底层为双向链表 Set 接口:无序,不可重复 HashSet:底层为数组+链表,Set接口主要实现类,线程不安全,可以存null LinkedHashSet:在Hash...

2021-11-05 22:52:55 82

原创 5.异常、线程、String、时间类、比较器、枚举类、注解

一:异常1.概念分为Error与Exception,Error一般不编写代码进行处理Exception分类: 编译时异常(checked):IOException(FileNotFound文件找不到)、ClassNotFound(类找不到) 运行时异常(unchecked):空指针、脚标越界、数值类型错误、ClassCast等等2. 异常处理 try catch : try 可能出现异常的部分,...

2021-11-04 23:32:16 89

原创 leetCode刷题day06

一:方法总结1.优先队列PriorityQueue2.二分法左右两个指针i、j ,循环条件(i<=j),比较再更新指针i=(i+j)/2+1、j=(i+2)/2-1;二:题目23.合并K个升序链表思路:将每个链表的第一个结点都加入堆并按升序排序,堆弹出的为最小数结点,并将该结点的下一个结点加入堆,直到所有结点加入完public ListNode mergeKLists1(ListNode[] lists) { ListNode head = null;

2021-11-04 22:39:20 105

原创 4.面向对象

一:特性1.继承性继承:方法、属性(包括private),只是私有的不能直接调用。单继承、多层继承:只能有一个父类,但可以继承父类的父类的结构。创建子类对象时,会在堆空间加载所有父类的结构(比如静态代码块、静态属性等),并调用父类的构造器super( ),但实际只有一个对象 super( ):没有显示声明this( )、super( )时,都默认提供构造器super( )2.多态性①运行时行为: Personp=new Man( );编译时看P...

2021-11-03 16:59:44 80

原创 leetCode刷题day05

一:方法总结1.二:题目1.电话号码的字母组合

2021-11-01 21:11:06 3533

原创 leetcode刷题day04

一:方法总结二:题目1.正则表达式匹配'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素、思路:动态匹配数组dp,dp[i][j]表示字符串s前i个与字符串p前j是否能匹配。多加入一行一列表示空串的情况public static boolean isMatch1(String s, String p) { if (p == "") { if (s == "") return true;

2021-10-31 18:50:29 73

原创 leetcode刷题day03

一:方法总结二:题目1.整数反转注意:反转后的数字可能超出 int 类型能存储的范围public static int reverse(int x) { int y = 0;//记录余数 int ans = 0;//保存结果 while (x != 0) { y = x % 10; x = x / 10; if ((Integer.MIN_VALUE / 10 - y /

2021-10-28 23:20:56 75

原创 3.类的基本结构

一:内存解析堆:存放对象实例(new出来的)栈:存放局部变量方法区:被加载类信息,常量,静态变量,即时编译的代码二:变量1.变量分类局部变量:方法的形参,方法内的变量,对象.属性,构造器的形参,构造器内部变量,代码块内成员变量(属性):直接定于在类的一对{ }内形参:方法声明时的参数实参:方法调用时传递给形参的参数值2.变量的区别①:局部变量没有默认初始化值,则在调用局部变量之前一定要显示赋值。②:(非static)属性加载在堆空间中,局部变量在栈空间中3.

2021-10-28 23:12:40 439

原创 leetcode刷题day02

一:方法总结1.Stringsubstring(a,b) [a,b) 找字符子串2.StringBuilderappend(char)用于拼接字符toString() 转换为字符串二:题目1.寻找两个正序数组的中位数思路:先将两数组合并并排序,再找中位数 public static double sort1(int[] nums1, int[] nums2) { //先将两数组合并并排序,再找出中位数 int n = nums1.le

2021-10-28 00:05:35 67

原创 leetcode刷题day01

1.给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。思路:使用hashmap,设i为被减数,如果hashmap中有减数则结束public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> twoSum = new HashMap<>(); for (int i = 0; i <

2021-10-26 23:58:19 57

原创 2.java基本语法

一.变量1.数据类型1.long型以l或L结尾,float型以f或F结尾2.char可以写转义符,如'\n','\t' 'a'==97 //true ; char c=97,sout(c)->a3.运算:char、byte、short(运算结果为int)->int->long->float->double4."xxx"+"\n" or "xxx\n" 换行 "xxx\\n" ->xxx\n5.强制转换:只能大容量向小容量转,并且可能有...

2021-10-26 23:51:09 117

原创 1.JAVA概述

JDK,JRE,JVM区别JVM(Java Virtual Machine):它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。JRE(Java Runtime Environment,Java运行环境):JVM+Java核心类库;光有JVM还不能完成.class文件的执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (JR.

2021-10-26 16:42:03 54

原创 javaweb2:javascript+正则表达式

一:js基础1.变量类型数值类型number 函数类型functionjs是弱类型语言,变量类型可变化var i; i=12; alert(typeof (i)); i="abc"; alert(typeof (i));2.特殊值undefined:未定义,所有js变量未赋值的时候,默认undefinednull:空值NAN:not a number 非数字非数值,比如数字*字符串 结果是NAN3.关系比较== 做简单字面值比较 如"

2021-10-25 17:28:07 152

原创 javaweb1:html+css

一:html1.标签格式:<标签名>封装的数据</标签名>标签名对大小写不敏感标签有自己的属性:基本属性:bgcolor="red" 事件属性:onclick="alert('你好!')"标签分为单标签 <br/> <hr/> 双标签2.特殊字符< &lt;> &gt;空格 &nbsp;3.标题标签h1-h6 属性(如align对

2021-10-23 19:28:49 75

原创 DAO(Data Access Object)及其优化

一:基础版封装针对于数据表的通用操作public abstract class BaseDAO { //通用的增删改(version2.0 考虑事务) public int update(Connection connection, String sql, Object... args) { PreparedStatement ps = null; try { //1.预编译sql语句 ps = con

2021-10-21 22:56:18 133

原创 事务的概念及相关代码

一:概念数据库事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态事务处理:一个事务执行多个操作时,要么所有事物都被提交,那么这些修改永久保存;要么放弃所有修改,事务回滚到最初状态自动提交: DDL操作执行,自动提交 DML:通过set autocommit=false 取消自动提交事务ACID属性数据库并发问题脏读:T2更新字段但没提交,T1读取了,T2回滚,T1读取的是无效的不可重复读:T1读...

2021-10-21 22:50:34 151

原创 JDBC增删改查,PreparedStatement比较Statement

一:工具类(连接数据库,关闭)连接数据库public static Connection getConnection() throws Exception { //1.读取配置文件中的4个基本信息 InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties"); Properties properties = new Properti

2021-10-15 23:01:03 117

原创 JDBC概述与获取数据库连接

一:概述JDBC:JAVA数据库连接,一个独立于数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API)JDBC接口(API)包含两个层次:(1)面向应用的API:JAVA API,抽象接口,供应用开发人员(连接数据库,执行SQL语句,获得结果)使用(2)面向数据库的API:JAVA DRIVER API,供开发商开发数据库驱动程序使用二:获取数据库连接//方式一 @Test public void testConnection1() thro.

2021-10-14 19:44:47 91

原创 数据库:存储过程与函数

一:存储过程含义:一组预先编译好的sql语句的集合,理解成批处理语句1.创建语法create procedure 存储过程名(参数列表) begin 存储过程体(一组合法的sql) end注意: 1.参数列表包含三部分:参数模式 参数名 参数类型 in stuname varchar(20) 参数模...

2021-09-30 10:34:40 97

原创 数据库:视图与变量

含义:虚拟表,和普通表一样创建视图:create view 视图名 as 查询语句修改视图 create or replace view 视图名 alter view 视图名 as as 查询语句 查询语句删除视图 drop view 视图名...

2021-09-28 22:00:35 129

原创 数据库:TCL事务控制语言

一:介绍事务含义:一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行事务的特性ACID 原子性:一个事务不可再分割,要么都执行要么都不执行 一致性:一个事务执行会使数据从一个一致状态切换到另一个一致状态 隔离性:一个事物执行不受其他事物的干扰 持久性:一个事务一旦提交,则永久改变数据库的数据。事务的创建 隐式:事务没有明显的开启和结束的标记 比如insert、update、delete 显式:事务具有明显的开启...

2021-09-28 21:59:12 61

原创 数据库:标识列AUTO_INCREMENT

又称自增长列,不用手动插入值,而由系统提供默认的序列值特点:1.标识列必须和key搭配(主键,unique,外键)2.一个表至多一个标识列3.只能在int类型设置标识列4.修改步长SET auto_increment_increment=3;一.创建表时设置标识列CREATE TABLE tab_identity( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20))INSERT INTO tab

2021-09-28 10:43:18 506

原创 数据库:约束

一:常见约束含义:一种限制,限制表中的数据,为了保证表中数据的准确可靠性分类:六大约束 NOT NULL:非空 DEFAULT:默认值 PRIMARY KEY:主键,保证该字段的值具有唯一性,且非空 UNIQUE:字段值具有唯一性,但可以为空 CHECK:检查约束【mysql不支持】 FOREIGN KEY:外键,限制两个表的关系,保证该字段的值必须来自于主表关联列的值语法:列级约束(除了外键)、表级约束(除了非空、默认) ...

2021-09-27 21:48:29 92

原创 数据库:数据类型

一:整型tinyint smallint mediumint int/interger bigint1 2 3 4 5特点:不设置无符号or有符号,默认有符号(无符号:unsigned)如果插入值超出了范围,会插入临界值(如向无符号属性插入负数,会变成插入0)如果不设置长度,会有默认的长度(长度代表显示的最大宽度,搭配zerofill使用可以填充0)#1.设置有符号和无符号CREATE TAB...

2021-09-24 20:24:14 76

原创 数据库:DDL数据定义语言

一:介绍数据定义语言库和表的管理:创建、修改、删除创建create修改alter删除drop二:库的管理#1.库的创建:create database (if not exists) 库名CREATE DATABASE books;CREATE DATABASE IF NOT EXISTS books;#2.库的修改:ALTER DATABASE books CHARACTER SET gbk;#3.库的删除DROP DATABASE (IF EXISTS) books;

2021-09-24 16:23:32 44

原创 数据库:DML数据操作语言

一:介绍数据操作语言插入:insert修改:update删除:delete二:插入语句语法1:insert into 表名(列名,...) values(值1,...)语法2:insert into 表名 set 列名=值,列名=值……#1.属性为nullable,可直接省略该属性或在对应的value写null#属性的顺序可以调换#列名可以全部不写,但values里面需对应所有列名INSERT INTO beauty(id,NAME,sex,borndate,phone,ph

2021-09-24 16:21:10 83

原创 数据库查询

一:基础查询/*1.基本格式select 字段名 from 表名;2.查询常量值,字符型和日期型必须用单引号引起来3.concat():拼接字符,里面可以填入多个参数4.ifnull(字段,返回值):判断,若为null则返回指定的值,否则返回原值5.isnull(字段):判断,真为1,假为0*/#1.查询单个字段SELECT first_name FROM employees;#2.查询多个字段SELECT `first_name`,`last_name` FROM employ

2021-08-25 11:38:38 241

原创 数据库常见命令(CMD)

一:命令1.查看当前所有数据库show databases;2.打开指定库use 库名;3.查看当前库的所有表show tables;4.查看其它库的所有表show tables from 库名;5.创建表create table 表名(列名 列类型,列名 列类型,);6.查看表结构desc 表名;7.查看服务器的版本mysql --versionmysql --V二.语法规范1.不区分大小写,建议关键字大写,表名、列名小写

2021-08-23 11:37:06 1709

原创 数据库基本介绍

一:数据库概念DB(database):数据库。存储数据的仓库,保存一系列有组织的数据。DBMS(Database Management System):数据管理系统。数据库是通过DBMS创建和操作的容器。SQL(Structure Query Language):结构化查询语言,专门用来与数据库通信的语言。二:数据库特点将数据放到表中,表再放入库中。 一个数据库可以有多个表,每个表都有一个名字且名字具有唯一性。 表具有一些特性,这些特性定义了数据在表中如何存储,类似java中“类”

2021-08-23 11:11:14 83

原创 马踏棋盘问题(骑士周游问题)

问题:给定一个棋盘,马需要走完棋盘的每一个格子,问马的路径?(马只能“日”字移动)代码:public class HorseChess { //棋盘的边界 private static int X; private static int Y; private static boolean visited[][];//长度为X*Y private static boolean finished; public static void m...

2021-08-04 22:06:56 122

原创 最短路径问题(Dijkstra迪杰斯特拉、Floyd弗洛伊德算法)

题目:找出出发顶点到其他点的最短距离Dijkstra迪杰斯特拉算法:第一步:由出发顶点,遍历其他顶点并更新距离表,找出距离最近的点第二步:由第一步中距离最近的点为入口,遍历其他顶点并更新距离表,找出最近的点……重复第二步直到所有顶点都找完。更新距离表:动态规划思想,比较加入改点与不加该店的距离代码实现:public class DijkstraAlgorithm { public static void main(String[] args) { ...

2021-08-04 22:02:23 189

原创 最小生成树:prim普里姆算法+Kruskal科鲁斯卡尔算法(修路问题为例)

Prim算法:普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex ),且其所有边的权值之和亦为最小。最小生成树:题目(修路问题):public class primAlgorithm { public static void main(String[] args) { char[] data = new char[]{'A', 'B', '..

2021-08-01 11:15:12 621

原创 贪心算法(以集合覆盖问题为例)

概念:贪心算法一般按如下步骤进行:①建立数学模型来描述问题②把求解的问题分成若干个子问题③对每个子问题求解,得到子问题的局部最优解④把子问题的解局部最优解合成原来解问题的一个解题目及思路:第一次选覆盖地区最多的台(最优解),再将该台中包含的地区在其他台中划掉;第二次选覆盖地区最多的台(最优解),在将该台中包含的地区在其他台中划掉……...

2021-07-31 19:31:01 430

空空如也

空空如也

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

TA关注的人

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