自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lambda表达式

函数式接口

2021-11-09 21:00:03 92

原创 下一个排列,字符串排列

一个整数的下一个排列实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。算法推导以 1,2,3,4,5,6 为例,其排列依次为:123456 123465 123546 … 654321可以看到有这样的关系:123456 < 123465 < 123546 <… < 654321。

2021-10-27 21:43:42 185

原创 二叉排序树

二叉排序树(Binary Sort Tree),又称二叉查找树。它是一颗空树,或者具有下列性质:若它的左子树不为空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不为空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树分别为二叉排序树。二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5 / \ 2

2021-10-22 20:37:50 156

原创 从上到下打印二叉树 (双括号初始化、实例初始化块)

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]bfs广度优先 class Solution { public int[] levelOrder(TreeNode root) { if(root == null)return new int[.

2021-10-19 11:58:05 133

原创 螺旋数组 模拟

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 100 0 <= matrix[i].length <.

2021-10-16 15:37:12 51

原创 找出 表示数字的字符串

思路与算法根据上面的描述,现在可以定义自动机的「状态集合」了。那么怎么挖掘出所有可能的状态呢?一个常用的技巧是,用「当前处理到字符串的哪个部分」当作状态的表述。根据这一技巧,不难挖掘出所有状态:起始的空格符号位整数部分左侧有整数的小数点左侧无整数的小数点(根据前面的第二条额外规则,需要对左侧有无整数的两种小数点做区分)小数部分字符 \text{e}e指数部分的符号位指数部分的整数部分末尾的空格下一步是找出「初始状态」和「接受状态」的集合。根据题意,「初始状态」应当为状态 1,而「接

2021-10-04 17:56:51 69

原创 打印从1到最大的n位数(包含大数情况)

打印从1到最大的n位数输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1 输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印 n 为正整数方法一:字符串 -->数字public class MAain { StringBuilder res; int n; char[] num, loop = {'0', '1',

2021-10-02 14:18:17 239

原创 简单理解快速幂

简单理解快速幂

2021-10-01 11:07:35 60

原创 二进制中1的个数

方法一:循环检查二进制位public class Solution { // you need to treat n as an unsigned value public int hammingWeight(int n) { int count = 0; for(int i = 0; i < 32; i++){ //int型一共三十二位 if((n & (1 << i)) != 0){

2021-09-30 16:02:08 71

原创 剪绳子 01

给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。示例 1:输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1示例 2:输入: 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 × 3 × .

2021-09-28 20:49:31 56

原创 java 笔记

java笔记

2021-09-26 11:16:04 56

原创 javase - String

stringbuffer 添加时左闭右开 (2,4) 则是换掉其中的3,4位数

2021-09-26 11:15:30 41

原创 跳跃数组 03

这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]。请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。注意,不管是什么情况下,你都无法跳到数组之外。示例 1:输入:arr = [4,2,3,0,3,1,2], start = 5 输出:true 解释: 到达值为 0 的下标 3 有以下可能方案:下标 5 -> 下标 4 -> 下标 1 -> 下标 3 .

2021-09-26 10:43:47 56

原创 类型转换 多态 反射

类型转换多态与向上类型转换

2021-09-26 08:39:16 53

原创 跳跃数组 02

给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4] 输出: 2提示:1 .

2021-09-26 02:36:07 182

原创 跳跃数组 01

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后.

2021-09-25 15:48:08 204

原创 索引,存储过程,事件,游标,触发器

索引在MYSQL中,索引(index) 也叫做键(key), 它是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对性能的影响就预发重要。索引优化应该是对查询性能优化最有效的手段。-- create index indexName ON mytable(uesrname);create Index index_dept_dname on dept(dname);drop index index_dept_dname on

2021-05-19 16:45:24 263

原创 表的约束

数据库的操作数据库的创建 :create database 数据库名 charset utfs8;查看数据库 : show​show databasel;show create database db;select database;选择数据库 : use 数据库名;删除数据库 : drop database 数据库名;修改数据库 : alter database db1 charset utf8;数据类型基本数据类型...

2021-05-17 17:12:46 205

原创 DML 增删改 事务

DMLDML之插入在表内插入:insert into 表名 value(数据1 , 数据2, …);eg:insert into dept value(50, ‘sxt’, ‘shanghai’);要求插入数据的数量, 类型和定义表的结合一致。eg :insert into dept values(50. 'sxt', 'shnanghai', 'liyi');insert into dept values(50, 'sxt');insert into dept valu

2021-05-16 11:08:45 135

原创 DQL多表关联,查询。

SQL-DQL语句DQL 单表关键字执行顺序select我们要显示 哪些列的数据,就select 哪列。from从哪中表中获取数据。where从表中获取数据的时候进行行级的数据过滤。group by对数据进行分组处理, 一组获取对应的结果。having组级过滤, 组级过滤的数据必须是分组条件或者是组函数。order by排序asc 升序(系统默认) desc 降序执行的顺序from —> where —> group

2021-05-15 22:20:37 75

原创 DQL 查询

SQLDDL数据库定义语言(定义数组库的一些组件:表, 索引…)DML数据库操作语言(增、删、改、查)CRUDDCL数据库控制语言(权限 用户管理…)DQL数据库查询语言格式 :select 列名*N from 表名 where 查询条件1 and/or 查询条件2 group by 列 Having 分组条件 Order by 排序;[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ojTNHOTQ-16

2021-05-15 11:28:37 150

原创 java 高级 01 多线程

多线程多线程程序的优点:提高应用程序的响应,对图形化界面更有意义,可增加用户体验。提高计算机系统CPU的利用率。改善程序结构。将既长又复杂的进程分为多个线程,独立运行,利于理解和修改。何时需要多线程。同时执行两个或多个任务。需要实现一些需要等待的任务时。需要一些后台运行的程序时。线程的创建和启动Java语言的JVM允许程序运行多个线程,它通过Java.lang.Thread类来体现。多线程的创建,方式一:继承于Thread类创建一个继承于Thread类的子类。

2021-05-06 21:42:50 79

原创 Java入门 19 3\26

内部类类的内部成员之五:内部类。Java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类。内部的分类:成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内)成员内部类:一方面,作为外部类的成员。调用外部类的结构。可以用static修饰。可以被四种不同的权限修饰。另一方面,作为一个类。类内可以定义属性、方法、构造器等。可以被final修饰,表示此类不能被继承,言外之意,不使用即可被继承。可以被abstract修饰。

2021-03-27 18:02:49 79

原创 Java入门 18 3\25

Java入门 18 3\25

2021-03-26 20:05:09 109

原创 java 入门 17 3\24

Java入门 17 3\24类的成员之四: 代码块(或初始化块)代码块的作用:用来初始化类、对象。代码块如果有修饰的话,只能使用static。分类: 静态代码块 vs 非静态代码块public class BlockTest{ }class Person{ //属性 String name; int age; static String desc = "我是一个人"; //构造器 public Pers

2021-03-24 21:59:26 131

原创 Java入门 16 3\23

Java入门 16 3\23单例(Singleton)设计模式

2021-03-24 10:40:34 124

原创 Java入门 15 03\22

Java入门 15 03\22关键字:staticstatic关键字的使用:static:静态的。static可以用来修饰:属性、方法、代码块、内部类。使用static修饰属性(变量):静态变量(类变量)。属性,按是否使用static修饰,又分为:静态属性 vs 非静态属性(实例变量)①实例变量:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性,当修改其中一个对象中的非静态属性时,不会导致其他对象中同样的属性值的修改。②静态变量:我们创建了类的多个

2021-03-23 19:28:38 48

原创 java入门 14 03\21

Object 类的使用Object类是所有Java类的根父类。如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类Object类只声明了一个空参的构造器。final、finally、finalize的区别?1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为

2021-03-22 09:40:42 56

原创 Java入门 13 03\21

Java入门 13 03\21Object 类的使用Object类是所有Java类的根父类。如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类Object类只声明了一个空参的构造器。final、finally、finalize的区别?1、final修饰符是一种关键字*2、finally是在异常处理时提供finally块来执行任何清除操作。3、finalize是一个方法名。三者的具体区别重写equals()重写的原则:比较两

2021-03-21 16:20:30 142 2

原创 java入门 12 3\20

Java入门 12 3\20多态性(Polymorphism):理解:可以理解为一个事物的多种形态。对象的多态性:父类的引用指向子类的对象(子类的对象赋给父类的引用)。​ eg:声明为Person , new一个Man。​ Person p2 = new Man();多态的使用: 1. 当调用**子父类同名同参数的方法**时,实际执行的是子类**重写父类的方法** ————

2021-03-20 21:08:54 88 1

原创 java入门 11 3\20

java入门 11 03\20封装性好处提高了代码的复用性.便于功能的扩展。为之后的多态性使用,提供了前提。格式:class A extends B{ } (在声明类的时候加上extends B就可)A: 子类、派生类、 subclassB : 父类、超类、基类、superclass体现 : 一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构: 属性、方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,**

2021-03-20 15:08:05 75

原创 java特辑 快捷键的使用

java 特辑 快捷键 03\15Eclipse中的快捷键:补全代码的声明: alr + /快速修复: ctrl + 1批量导包: ctrl + shift + o单行注释 : ctrl + /多行注释: ctrl + shift + \取消多行注释: ctrl + shift + /复制指定行代码: ctrl + alt + down 或者 ctrl + alt + up删除指定行代码: ctrl + d上下行移动

2021-03-16 09:42:32 64

原创 java 入门 10 03\13

java 入门 10 03\13this 关键字this关键字的使用:this 可以用来修饰、调用:属性、方法、构造器。this修饰属性和方法时:​ this理解为:当前对象。 在类的方法中,我们可以使用 “this.属性” 或者*”this.方法“*的方式,调用当前对象或方法。但是,通常情况下,我们都省略this. 。但形参和属性同名时,一定要用this 。形参和属性(局部变量)重名时:this.属性, 没有this的为形参。构造器的情况和方法相

2021-03-15 21:31:24 208

原创 Java入门 09 3\13

Java入门 09 3\13封装性封装性的引入避面客户再使用“ 对象.属性 ” 的方式对属性进行赋值,则需要将属性声明为私有的(private)。封装性的体现​ 将类的属性Xxx私有化(private),同时提供公共的(public)方法来获取(getXxx)和设 置(setXxx)此属性的值。public int getXxx(){ return Xxx;}public void setXxx(int a){ Xxx = a;}

2021-03-13 21:43:03 225

原创 3\13 蓝桥杯 第一次练习

第一题7-2 difficult string (15 分)如果一个字符串包含两个相邻的重复子串,则称它是“最容易的串”,其他串称为“困难的串”。 BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、CBABCBA都是困难的串。例如,当L=3时,前7个困难的串分别是A、AB、ABA、ABAC、ABACA、ABACAB、ABACABA。 输入保证答案不超过80个字符。输入格式:输入一对正整数n和L输出格式:输出由前L个字符组成的、字典序第n小的困难的串输

2021-03-13 16:41:40 169

原创 java入门 08 3\12

java入门 08 3\12类与对象面向对象java类及类的成员:属性、方法、构造器、代码块、内部类。面向对象三大特征:封装性、继承性、多态性(抽象性)。其他关键字:this、super、static、final、abstract、interface、package、import…概念类:对一类事物的描述,是抽象的、概念上的定义。对象:实际存在的该类事物的每个个体设计类,就是设计类的成员(属性、方法)。java类及类的成员属性:类中的成员变量。行为:类中的成员

2021-03-12 21:30:52 190 1

原创 java 07 3\9

java入门 07 3\9数组一维数组:声明和初始化: int **[ ] ids **;//声明 ids = new int [ ]{ 1001, 1002};//初始化或者一起进行String [ ] names = new String[5];调用数组:通过角标的方式调用。(从零开始到n-1结束)获取数组长度:属性(length)数组名.length eg: names.length数组元素的默认初始化值:整型:0浮点型:0.0char型:0

2021-03-12 11:28:40 73

原创 Java入门 06 3\9

Java入门 06 3\9分支结构switch – caseswitch(表达式){case 常量1 :​ 语句1;​ break;}…n个default:​ 语句:​ break;如果不加break, 进入后遇到自己的值后,还会继续向下执行。只能时一下六种类型之一:byte、short、int、char、枚举类型、String类

2021-03-09 11:19:30 79

原创 java 05 2021-03-09

Java入门 05 3\8运算符算术运算符加、减、乘、除、取余(%)、自增/减(++/–)、字符串连接(+)。取余的结果符号和被取余数的结果相同(涉及到负数取余)。赋值运算符赋值符号: =引申:+= 、 -=、 *=、 /=、 %= (不会改变变量本身数据类型)。比较运算符==、 !=、 <、>、 <=、 >=、 instanceof比较运算符结果都是boolean类型。逻辑运算符与 &(一假为假)、 或

2021-03-09 09:46:29 308 2

原创 Java入门 04 2021-03-08

Java入门 04 3\8进制二进制:**0b **或 **0B **开头。十进制:满十进一。八进制:数字0开头。十六进制: 0x 或 0X 开头进制转换二进制转换为十进制二进制最高位为符号位, 0:正数、1: 负数。负数:(取正数的原码 --> 取反 得出反码 --> 反码 + 1 --> 得出补码 )。十进制转换为二进制除二取余、余数取逆就是二进制的数。二进制转换为八进制因为是三次方,所以取三个二进制位一个单位,来计算

2021-03-08 21:34:07 70

空空如也

空空如也

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

TA关注的人

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