自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所有。..

2021-03-31 23:46:31 160

原创 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-c...

2021-03-31 17:12:55 164

原创 古董键盘

小扣在秋日市集购买了一个古董键盘。由于古董键盘年久失修,键盘上只有 26 个字母 a~z 可以按下,且每个字母最多仅能被按 k 次。小扣随机按了 n 次按键,请返回小扣总共有可能按出多少种内容。由于数字较大,最终答案需要对 1000000007 (1e9 + 7) 取模。示例 1:输入:k = 1, n = 1输出:26解释:由于只能按一次按键,所有可能的字符串为 "a", "b", ... "z"示例 2:输入:k = 1, n = 2输出:650解释:由于只能按两次.

2021-03-31 16:43:53 464

原创 不用加减乘除做加法

题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。示例1输入1,2返回值3理解:首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2。第二步:计算进位值,得到10. 如果这一步的进位值为0,那么第一步得到的值就是最终结果。第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。同样我们可以用三步走的方式计算二进制值相加: 5-101,7-111 第一步:相加各位.

2021-03-26 10:43:31 109

原创 2021-03-26

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。示例1输入7返回值8理解!!!import java.util.*;public class Solution { public int GetUglyNumber_Solution(int index) { if(index<=0) return.

2021-03-26 10:05:01 49

原创 跳台阶扩展问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。f(n-1) = f(0) + f(1) + f(2) + ... + f(n-2) + f(n-1)f(n) = f(0) + f(1) + f(2) + ... + f(n-2) + f(n-1) + f(n)两式相减得,f(n) = f(n-1) * 2 ;public class Solution { public int jumpFloorII(int ...

2021-03-22 20:17:54 278 1

原创 2021-03-22

题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?比如n=3时,2*3的矩形块有3种覆盖方法:递归:当 target = 0 , 结果为 1 ; 当 target = 1,结果为 1 ; 当 target = 2,结果为 2;后面 递归:第一个长方形有两种方法,竖着放, 剩下的长方形 有 rectCover(target - 1) 种放法;横着放,则 第二个长方形也只能横着放,剩下的长方...

2021-03-22 19:45:32 62

原创 数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。import java.util.PriorityQueue;import java.util.Comparator;public class Solution { //小顶堆 p..

2021-03-20 21:05:37 54

原创 序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得到的序列化字符串结果str,重构二叉树。例如,我们可以把一个只有根节点为1的二叉树序列化为"1,",然后.

2021-03-19 20:33:45 89

原创 二叉树中和为某一值的路径

题目描述输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。示例1输入{10,5,12,4,7},22返回值[[10,5,7],[10,12]]示例2输入{10,5,12,4,7},15返回值[]import java.util.ArrayList;/**public class TreeNode { int val = 0..

2021-03-18 21:35:25 57

原创 构造回文

给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子1:abcdagoogle输出例子1:22思路:将该字符串 a 反转成 b,寻找 a 和 b 的最长公共子序列,即可找到最少的字符删除数量。...

2021-03-17 21:43:11 161

原创 树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1输入{8,8,#,9,#,2,#,5},{8,9,#,2}返回值true/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val..

2021-03-17 20:51:09 48

原创 2021-03-17二叉搜索树的后序遍历序列

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。(ps:我们约定空树不是二叉搜素树)示例1输入[4,8,6,12,16,14,10]返回值true递归:BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后.

2021-03-17 20:36:25 57

原创 (二)spring之IOC

注:参考动力结点课程1、IoC (Inversion of Control) : 控制反转 把对象的创建,赋值,管理工作都交给代码之外的容器实现, 也就是对象的创建是由其它外部资源完成。控制: 创建对象,对象的属性赋值,对象之间的关系管理。反转: 把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。 由容器代替开发人员管理对象。创建对象,给属性赋值。正转:由开发人员在代码中,使用new 构造方法创建对象, 开发人员主动管理对象。 public st...

2021-03-15 15:47:02 75

原创 (一)spring简介

spring: 出现是在2002左右,解决企业开发的难度。减轻对项目模块之间的管理,类和类之间的管理, 帮助开发人员创建对象,管理对象之间的关系。spring核心技术 ioc , aop 。能实现模块之间,类之间的解耦合。...

2021-03-15 15:37:18 115

原创 (八)mybatis之页面显示PageHelper

1、在mybatis.xml中配置插件 (在 enviroments之前)<!--配置插件--> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor" /> </plugins>

2021-03-14 16:55:39 95

原创 (七)mybatis之文件配置

1、数据库的属性配置文件把数据库连接信息放到一个单独的文件中。 和mybatis主配置文件分开。目的是便于修改,保存,处理多个数据库的信息。1)在resources目录中定义一个属性配置文件, xxxx.properties ,例如 jdbc.properties 在属性配置文件中, 定义数据,格式是 key=valuekey: 一般使用 . 做多级目录的,例如 jdbc.mysql.driverjdbc.properties: ...

2021-03-14 16:44:35 114

原创 (六)mybatis的动态sql

1、动态sql: sql的内容是变化的,可以根据条件获取到不同的sql语句。 主要是where部分发生变化。2、动态sql的实现 使用的是mybatis提供的标签, <if> ,<where>,<foreach>1) <if>是判断条件的, 语法<if test="判断java对象的属性值"> 部分sql语句...

2021-03-14 16:29:04 94

原创 (五)mybatis的输出结果

1、resultType结果类型 指sql语句执行完毕后, 数据转为的java对象, java类型是任意的。 resultType结果类型的值 1. 类型的全限定名称 2. 类型的别名, 例如 java.lang.Integer别名是int处理方式: 1. mybatis执行sql语句, 然后mybatis调用类的无参数构造方法,创建对象。 2. mybatis把ResultSet指定列值付给同名的属性。<...

2021-03-14 16:17:57 240

原创 (五)mybatis的参数使用

传入参数: 从java代码中把数据传入到mapper文件的sql语句中。1)parameterType : 写在mapper文件中的 一个属性,表示dao接口中方法的参数的数据类型。① parameterType它的值是java的数据类型全限定名称或者是mybatis定义的别名例如:parameterType="java.lang.Integer" parameterType="int"② 注意:parameterType不是强制的,mybatis通过反射...

2021-03-14 15:45:47 384

原创 (四)mybatis的动态代理

1、动态代理:使用SqlSession.getMapper(dao接口.class) 获取这个dao接口的实现对象StudentDao dao = sqlSession.getMapper(StudentDao.class);2、使用实例(1)src/main/java/com/bipowernodel/domain/Student.javapackage com.bjpowernode.domain;public class Student { private I

2021-03-14 14:44:55 103

原创 (三)mybatis的基本使用2

1、创建 数据库 连接工具src/main/java/com/bjpowernode/utils/MyBatisUtils.javapackage com.bjpowernode.utils;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache

2021-03-14 14:22:59 69

原创 (二)mybatis的基本使用

1、主要类的介绍1) Resources: mybatis中的一个类, 负责读取主配置文件 InputStream in = Resources.getResourceAsStream("mybatis.xml");2)SqlSessionFactoryBuilder : 创建SqlSessionFactory对象, SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();...

2021-03-14 14:08:49 188

原创 对称的二叉树

题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。示例1输入{8,6,6,5,7,7,5}返回值true示例2输入{8,6,9,5,7,7,5}返回值false思路:对称的二叉树,有三种对称是必须的1、根节点,左右子节点,相等2、根节点的左子树的右子树,与右子树的左子树相同3、根节点的左子树的左子树,与右子树的右子树相同/*public class Tree...

2021-03-14 13:42:46 58

原创 从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。示例1输入{5,4,#,3,#,2,#,1}返回值[5,4,3,2,1]思路:使用队列进行层次遍历import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; TreeNode left = null; .

2021-03-14 12:47:17 44

原创 把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。示例1输入{8,6,10,5,7,9,11}返回值[[8],[6,10],[5,7,9,11]]递归:使用队列结构, 进行层次遍历import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*public class TreeNode { int val = 0; T..

2021-03-14 12:18:13 53

原创 二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。递归:中序遍历,左中右分析二叉树的下一个节点,一共有以下情况:1.二叉树为空,则返回空;2.节点为根节点,右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点 (D->N);3.节点不是根节点, 如果该节点是其父节点的左孩子,则返回父节点,(I->E); 否...

2021-03-13 20:57:38 148

原创 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值{1,2,5,3,4,6,7}递归法:/** * Definition for binary tree * public class Tr..

2021-03-13 20:26:41 62

原创 (一)mybatis简介

1、三层架构 界面层: 和用户打交道的, 接收用户的请求参数, 显示处理结果的。(jsp ,html ,servlet) 业务逻辑层: 接收了界面层传递的数据,计算逻辑,调用数据库,获取数据 数据访问层: 就是访问数据库, 执行对数据的查询,修改,删除等等的。三层对应的包 界面层: controller包 (servlet) 业务逻辑层: service 包(XXXService类) 数据访问层: dao包(XXXDao类)...

2021-03-13 11:27:59 662 1

原创 (三)maven的基本使用

1、在idea中设置mavenidea中内置了maven ,一般不使用内置的, 因为用内置修改maven的设置不方便。 使用自己安装的maven, 需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息 配置的入口①:配置当前工程的设置, file--settings ---Build, Excution,Deployment--Build Tools --Maven M...

2021-03-13 10:55:48 175

原创 (二)maven的内容

1、maven的目录结构假定有一个 Hello 项目Hello/ ---/src ------/main #放你主程序java代码和配置文件 ----------/java #你的程序包和包中的java文件 ----------/resources #你的java程序中要使用的配置文件 ------/test #放测试程序代码和文件的(可以没有) ----------/java ...

2021-03-13 10:13:28 234

原创 (一)maven简介

1、完成java项目,需要做哪些工作1.分析项目要做什么,知道项目有哪些组成部分。2.设计项目,通过哪些步骤,使用哪些技术。需要多少人, 多长的时间。3.组建团队,招人, 购置设备,服务器, 软件, 笔记本。4.开发人员写代码。 开发人员需要测试自己写代码。 重复多次的工作。5.测试人员,测试项目功能是否符合要求。 测试开发人员提交代码-如果测试有问题--需要开发人员修改--在提交代码给测试 --测试人员在测试代码-如果还有问题-在交给开发人员-开发人员在提交-在测试 直到-测试代...

2021-03-13 09:57:07 65

原创 平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。示例1输入{1,2,3,4,5,6,7}返回值true方法一:递归public class Solution { public boolean IsBalanced_Soluti.

2021-03-12 20:44:37 45

原创 二叉搜素树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的TreeNode结点。示例1输入{5,3,7,2,4,6,8},3返回值{4}说明按结点数值大小顺序第三小结点的值为4 方法一:借助 ArrayList, 先序遍历搜索树,得到递增的数列/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public..

2021-03-12 20:30:42 65

原创 二叉树的深度

题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。示例1输入{1,2,3,4,5,#,6,#,#,7}返回值4方法一:递归(先序遍历)/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) {.

2021-03-11 19:48:10 86

原创 二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。比如: 源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5示例1输入{8,6,10,5,7,9,11}返...

2021-03-11 19:31:56 52

原创 复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)/**解题思路:*1、遍历链表,复制每个结点,如复制结点A得到A1,将结点A1插到结点A后面;*2、重新遍历链表,复制老结点的随机指针给新结点,如A1.random = A.random.next;*3、拆分链表,将链表拆分为原链表和复制后的..

2021-03-10 11:34:12 45

原创 链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。方法一:使用 HashMap 的特性import java.util.HashMap;class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}public class Solution { public ListNode ..

2021-03-10 10:51:57 71

原创 两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的方法一:找出两个链表的长度差 r,长的链表先走 r 步,之后两个链表同步向后查找。import java.util.HashMap;class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }..

2021-03-10 09:55:05 42

原创 删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5示例1输入{1,2,3,3,4,4,5}返回值{1,2,5}class ListNode { int val; ListNode next = null; ListNode(int val) { this.

2021-03-09 17:53:44 43

空空如也

空空如也

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

TA关注的人

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