/images/avatar.jpg

我的个人博客

算法题记录

查找 有序数组的二分查找 链接 包含重复元素有序数组的二分查找 链接 猜数字大小 链接 在排序数组中查找元素的第一个和最后一个位置 链接 搜索插入位置 链接 搜索旋转排序数组 链接 搜索旋转排序数组2 链接 寻找排序数组中的最小值 链接 x的平方根 链接 排序 基础排序算法 链接 合并两个有序数组 链接 删除数组中的重复元素 链接 移除元素 链接 移动零 链接 数组中出现次数大于一半的数字 链接 合并排序数组 链接 寻找第K大的元素 链接 最小的K个数(topK问题) 链接 树 重建二叉树 链接 最大二叉树 链接 合并二叉树 链接 二叉搜索树中的搜索 链接 验证二叉搜索树 链接 二叉搜索树的绝对值之差 链接 二叉搜索树的众数 链接 二叉树的最近公共祖先 链接 二叉搜索树的最近公共祖先 [链接](二叉搜索树的最近公共祖先 - 二叉搜索树的最近公共祖先 - 力扣(LeetCode) (leetcode-cn.com)) 二叉搜索树的插入操作 链接 二叉搜索树的删除操作 链接 二叉搜索树的修剪 链接 将二叉树转换为累加树 链接

背包问题

0-1背包 背包问题的关键因素: 背包的重量 物品的重量以及物品的价值 如果物品不可以重复放入则是0-1背包问题 –>背包进行倒序遍历 每个物品只有两种状态:放入背包/不放入背包 –>max(dp[i-1][j],dp[i-1][j-weight[i]]+value[i]) 使用二维数组进行解决 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 package Dynamic; import java.util.Arrays; public class bean12 { public static void main(String[] args) { int[] weight={1,3,4}; int[] value={15,20,30}; int bagweight=4; int[][] dp=new int[weight.

Maven

Maven的核心概念 约定的目录结果 例如在com.maven中建立Hello项目 Hello |—src |—|—main |—|—|—java |—|—|—resources |—|—test |—|—|—java |—|—|—resources |—pom.xml POM Project Object Model,项目对象模型 pom.xml对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行设置。 坐标 使用下面三个坐标在仓库中唯一定位一个maven工程 group:公司或组织域名倒序+项目名 1 <groupid>com.maven</groupid> artifactid:模块名 1 <artifactid>Hello</artifactid> version:版本 1 <version>1.0.0</version> 1 2 3 4 5 6 7 <!--例--> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> 对应路径 C:\Users\ssl\.m2\repository\junit\junit\4.12\junit-4.12.jar 依赖 maven解析依赖信息时会到本地仓库中查找被依赖的jar包 对于我们自己开发的maven工程,使用**mvn install **命令安装后就可以进入仓库 依赖的范围

SpringBoot

1、Spring Boot简介 什么是Spring Boot : Spring Boot用于简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案 优点: 快速创建独立运行的Spring项目以及与主流框架集成 使用嵌入式的Servlet容器,应用无需打包WAR包 starters自动依赖与版本控制 大量的自动配置,简化开发,也可以修改默认值 无需配置XML,无代码生成,开箱即用 准生产环境的运行时应用监控 与云计算的天然集成 2、微服务 微服务是一种架构风格 一个应用应该是一组小型服务;可以通过HTTP的方式进行沟通; 每一个功能元素最终都是一个可独立替换和独立升级的软件单元; 基本介绍 HelloWorld 创建maven工程 引入依赖 1 2 3 4 5 6 7 8 9 10 11 12 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.4.3</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> 编写主程序 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package com.

SpringMVC

MVC 参考 首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。 M 代表 模型(Model) 模型负责封装数据在视图层显示 V 代表 视图(View) 视图是什么呢? 就是网页, JSP,用来展示模型中的数据;主要负责接受Servlet传递的内容,调用JavaBean,将内容显示给用户 C 代表 控制器(controller) 控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。主要负责所有用户的请求参数,判断请求参数是否合法,根据请求的类型调用JavaBean,将最终的处理结果交给显示层显示! 目的:将业务逻辑从页面中分离出来,进行解耦 SpringMVC基本概念 Spring MVC 是 Spring 提供给 Web 应用的框架设计 传统的模型层被拆分为了业务层(Service)和数据访问层(DAO,Data Access Object)。 在 Service 下可以通过 Spring 的声明式事务操作数据访问层,而在业务层上还允许我们访问 NoSQL ,这样就能够满足异军突起的 NoSQL 的使用了,它可以大大提高互联网系统的性能。 特点: 结构松散,几乎可以在 Spring MVC 中使用各类视图 松耦合,各个模块分离 与 Spring 无缝集成 从图 1 可总结出 Spring MVC 的工作流程如下: 客户端请求提交到 DispatcherServlet。 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。 DispatcherServlet 将请求提交到 Controller。 Controller 调用业务逻辑处理后返回 ModelAndView。 DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。 视图负责将结果显示到客户端。 Spring MVC接口 在图 1 中包含 4 个 Spring MVC 接口,即 DispatcherServlet、HandlerMapping、Controller 和 ViewResolver。

JDBC

数据的持久化 什么是JDBC JDBC API 允许用户访问任何形式的表格数据,尤其是存储在关系数据库中的数据。 JDBC(Java DataBase Connectivity, 简称JDBC)是Java中用于规范应用程序如何来访问数据库的应用程序接口(API),它提供了查询和更新数据库中数据的方法。 执行流程: 连接数据源,如:数据库。 为数据库传递查询和更新指令。 处理数据库响应并返回的结果。 在Java程序和数据库之间的一个桥梁。 JDBC架构 两层 三层 JDBC 编程步骤 加载驱动程序: 1 2 3 4 5 Class.forName(driverClass) //加载MySql驱动 Class.forName("com.mysql.jdbc.Driver") //加载Oracle驱动 Class.forName("oracle.jdbc.driver.OracleDriver") 获得数据库连接: 1 DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/imooc", "root", "root"); 创建Statement或PreparedStatement对象: 1 2 conn.createStatement(); conn.prepareStatement(sql); 完整实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 package com.