自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你真的知道结构体大小如何计算吗?

搞懂结构体如何分配

2022-09-06 13:17:42 148 1

原创 Spring大略学习(二)

Spring大略学习(一)文章目录Spring大略学习(一)7. Bean的自动装配1. byName自动装配2. byType自动装配3. 注解自动装@Autowired@Autowired + @Qualifier 的组合@Resource4. 存在的问题8. 使用注解开发环境配置@Component@Scope9. Java配置Spring@Configuration@ComponentScan("com.lzj.entity")@Import@Bean例子10. 代理模式1. 静态代理2. 动态代

2021-11-29 09:53:01 3707 3

原创 Spring大略学习(一)

1. Spring1.1 简介spring是一个轻量级 IOC和 AOP的框架技术spring理念:使现有技术更加容易使用,本身是一个大杂烩,整合了现有框架技术Spring官网官方文档maven导的依赖<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --> <!-- 导入这个依赖,其他的包会自动导入 --> <depend

2021-11-21 15:57:02 4218

原创 字符串哈希的映射

字符串哈希字符串哈希,是将字符串映射成哈希值(不会冲突),当我们询问每个子串的时候,我们只要将它的哈希值获取出来(时间复杂度O(1)O(1)O(1)),那么就可以进行操作。那么我们怎么哈希映射呢?我们把字符串看出一个P进制的数例如 str = “acwing”每次预处理的时候,预处理以 i 下标结尾的字符串的哈希值,(当P = 131, Q = 2642^{64}264的时候, 99.99% 不会哈希冲突,)和预处理 P的不同次方所以, 当我们用unsigned long long 来存储

2021-10-28 14:43:45 673

原创 二分的练习

二分模板二分不熟悉的可以看一下二分的模板题目练习题目描述达尔星有 n 个强大的下级战士,编号 1∼n。其中第 i 名战士的战斗力为 ri。战士 a 可以成为战士 b 的战斗导师,当且仅当 ra>rb 且两人之间不存在矛盾。给定每个战士的战斗力值以及战士之间存在的 k 对矛盾关系。请你计算,每个战士可以成为多少战士的战斗导师。输入格式第一行包含两个整数 n 和 k。第二行包含 n 个整数 r1,r2,…,rn。接下来 k 行,每行包含两个整数 x,y,表示战士 x 和战士 y 之

2021-10-24 18:53:21 165

原创 新食堂的早餐搭配 (二分做法)

题目描述新食堂的早餐搭配: 阿明在一食堂选择早餐,他的想法是选择一份主食和一款饮 料,且花费不超过 x 元。一维整型数组 main 中记录了每种 主食的价格,一维整型数组 drinks 中记录了每种饮料的价 格。请问针对不同的预设参数,共有多少种购买方案。输入格式第一行输入$n, m $(表示主食饮料种类), cost(总预算)第二行输入每个主食价格第三行输入每个饮料价格输出格式输出选择一份主食和一款饮 料,且花费不超过 cost 元,的总方案数数据范围0≤m,n≤1050\leq m

2021-10-19 17:31:10 236

原创 蓝桥杯中常用的数学算法

文章目录算数基本定义质数试除法 O(n)O(\sqrt{n})O(n​)朴素筛法求质数 (nlogn)(nlog_n)(nlogn​)埃式筛法 O(nloglogn)O(nlog_{log_n})O(nloglogn​​) ~ O(n)O(n)O(n)线性筛法 O(n)O(n)O(n)约数试除法求约数 O(n)O(\sqrt{n})O(n​)求约数个数 O(n)O(\sqrt{n})O(n​)求约数之和求最大公约数求最小公倍数欧拉函数算数基本定义任何一个合数都可以写成,若干个质数相乘n=q

2021-10-17 15:04:52 522 1

原创 Lambda表达式简化匿名内部类

Lambda表达式快速入门,帮助大家看懂框架中的lambda表达式

2021-10-14 10:07:40 465

原创 到底什么是匿名内部类?

文章目录匿名内部类什么是匿名内部类?匿名内部类的适用场景如何创建匿名内部类?格式注意:例子:继承一个abstract抽象类实现一个interface接口匿名内部类什么是匿名内部类?之前我们已经知道了内部类,说人话匿名内部类是没有类名的名的内部类匿名内部类的适用场景匿名内部类适合那种只创建适用一次的类,我们用匿名内部类来简化代码如何创建匿名内部类?格式new 类名(){ //继承该类 //todo}或者new 接口(){ //实现该接口 //todo}

2021-10-11 12:46:33 1092

原创 java内部类

什么是内部类在一个类的内部在定义一个类用法例如我们定义一个People类package com.test;public class People { public void speak(){ System.out.println("I'm People"); } class teacher{ private String s = "I'm a teacher"; public void speak(){

2021-10-08 22:12:13 125

原创 Mybatis入门

Mybatis入门先创建空的Maven项目Maven仓库中找依赖包先Maven的pom.xml中添加Mybatis的依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

2021-10-06 00:19:50 97

原创 并查集的基本操作和用法

并查集并查集的作用:1.合并区间2.判断两个数是否再同一个集合之中3.寻找联通子图的的个数并查集的关键函数find(x)与p[]数组 寻找x的祖宗节点/* find函数用于寻找祖宗节点*/int find(int x){ if (p[x] != x) find(p[x]) return p[x];}/* p[N] 存储每个节点的祖宗节点 初始化p[N] 一开始每个节点的祖宗是他自己, 一个数作为一个集合*/for (int i = 1; i <

2021-10-01 17:37:24 377

原创 Tires树数据结构

TriesTries树是用来高效的 存储、查找字符串集合的数据结构例如下面五个字符串的Tries如下abbccaadacaabccbccac并且将每个字符结尾单词节点标记一下(表示存在已该点结尾的单词)可以高效的查找一个字符串是否再集合中出现,与出现的次数例如查找 “bcc”root -> b -> c -> c(有标记查找成功)查找 “abbc”root -> a -> b -> b -> c (此处c节点没有标记, 不存在以c

2021-10-01 17:16:36 361

原创 七周打卡剑指offer《调整数组顺序使奇数位于偶数前面》

调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序。使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。样例输入:[1,2,3,4,5]输出: [1,3,5,2,4]题解双指针问题,用两个指针i,j指向两端j从后往前扫描遇到奇数停下,i从前向后扫描遇到偶数停下 交换顺序i == j 的时候停止代码class Solution {public: void reOrderArray(vector<int> &

2021-09-29 17:09:59 74

原创 七周打卡剑指offer《 删除链表中重复的节点》

删除链表中重复的节点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留。样例样例1输入:1->2->3->3->4->4->5输出:1->2->5样例2输入:1->1->1->2->3输出:2->3题解同一个数组记录每个节点出现的次数,模拟的时候当大于1的就跳过有几个特殊情况需要考虑1.原来是空链表2.给的链表都是相同数字代码/** * Definitio

2021-09-28 16:06:46 69

原创 七周打卡剑指offer《二进制中1的个数》

题目描述输入一个 32 位整数,输出该数二进制表示中 1 的个数。注意:负数在计算机中用其绝对值的补码来表示。样例样例1输入:9输出:2解释:9的二进制表示是1001,一共有2个1。样例2输入:-2输出:31解释:-2在计算机里会被表示成11111111111111111111111111111110, 一共有31个1。题解lowbit(x) 是求出一个数二进制中最右边一个1的数 x & -x注意负数的补码 = 反码 + 1例如5 = (0101)2(

2021-09-28 15:58:54 94

原创 七周打卡剑指offer《数值的整数次方》

数值的整数次方题目描述实现函数double Power(double base, int exponent),求base的 exponent次方。不得使用库函数,同时不需要考虑大数问题。只要输出结果与答案的绝对误差不超过 10−2 即视为正确。注意:不会出现底数和指数同为0的情况当底数为0时,指数一定为正样例样例1输入:10 ,2输出:100样例2输入:10 ,-2 输出:0.01题解:正常来说就是一个模拟问题,但是指数是int范围直接O(n)O(n)O(n)循环一

2021-09-27 19:06:13 72

原创 快速幂模板

快速幂题目描述给定 n 组 ai,bi,pia_i,b_i,p_iai​,bi​,pi​,对于每组数据,求出 aibia_i^{b_i}aibi​​ % pip_ipi​ 的值。输入格式第一行包含整数 n。接下来 n 行,每行包含三个整数 ai,bi,pia_i,b_i,p_iai​,bi​,pi​。输出格式对于每组数据,输出一个结果,表示 aibia_i^{b_i}aibi​​ % pip_ipi​ 的值。每个结果占一行。数据范围1≤n≤100000,1≤n≤100000,1≤n≤

2021-09-27 19:02:04 92

原创 动态规划完全背包问题《自然数的拆分》

自然数的拆分给定一个自然数 N,要求把 N 拆分成若干个正整数相加的形式,参与加法运算的数可以重复。注意:拆分方案不考虑顺序;至少拆分成 2 个数的和。求拆分的方案数 mod2147483648 的结果。输入格式一个自然数 N。输出格式输入一个整数,表示结果。数据范围1≤N≤4000输入样例:7输出样例:14...

2021-09-25 19:45:49 523

原创 七周打卡剑指offer《剪绳子》

剪绳子题目描述给你一根长度为 nnn 绳子,请把绳子剪成 mmm 段(m、n 都是整数,2≤n≤582≤n≤582≤n≤58 并且 m≥2m≥2m≥2)。每段的绳子的长度记为k[1]、k[2]、……、k[m]k[1]、k[2]、……、k[m]k[1]、k[2]、……、k[m]k[1]k[2]…k[m]k[1]k[2]…k[m]k[1]k[2]…k[m] 可能的最大乘积是多少?样例例如当绳子的长度是 8 时,我们把它剪成长度分别为 2、3、3 的三段,此时得到最大的乘积 18。输入:8输

2021-09-25 15:54:21 78

原创 七周打卡剑指offer《机器人的运动范围》

机器人的运动范围题目描述地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼n−1。一个机器人从坐标 (0,0) 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格。但是不能进入行坐标和列坐标的数位之和大于 k 的格子。请问该机器人能够达到多少个格子?样例1输入:k=7, m=4, n=5输出:20样例2输入:k=18, m=40, n=40输出:1484解释:当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。

2021-09-25 00:24:09 73

原创 七周打卡剑指offer《斐波那契数列》

斐波那契数列题目描述输入一个整数 n ,求斐波那契数列的第 n 项。假定从 0 开始,第 0 项为 0。(n≤39)样例输入整数 n=5 返回 5题解斐波那契数列:前两项为1, 从第三项之后,每一项的纸是前两项的和f(x)={1,x = 11,x = 2f(x−1)+f(x−2),x > 2f(x) = \begin{cases} 1, &\text{x = 1} \\ 1, &\text{x = 2}

2021-09-24 23:56:11 58

原创 七周打卡剑指offer《旋转数组中最小的数字》

旋转数组中最小的数字题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个升序的数组的一个旋转,输出旋转数组的最小元素。例如数组 {3,4,5,1,2} 为 {1,2,3,4,5} 的一个旋转,该数组的最小值为 1。数组可能包含重复项。注意:数组内所含元素非负,若数组大小为 0,请返回 −1。样例输入:nums = [2, 2, 2, 0, 1]输出:0题解:二分根据二分的本质我们发现除了最后没几个数字和nums[0]相同其他都满足二段性所以先把

2021-09-23 18:52:10 76

原创 七周打卡剑指offer《矩阵中的路径》

矩阵中的路径题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。注意:输入的路径不为空;所有出现的字符均为大写英文字母;样例:matrix=[ ["A","B","C","E"], ["S","F","C","S"], ["A","D","E","E"]]str="BCCE" , re

2021-09-23 18:18:35 85

原创 动态规划的背包问题《数字组合》

数字组合题目描述给定 N个正整数 A_1, A_2,…,A_N,从中选出若干个数,使它们的和为 M,求有多少种选择方案。输入格式第一行包含两个整数 N 和 M。第二行包含 N 个整数,表示 A_1,A_2,…,AN。输出格式给定 N 个正整数 A1,A2,…,AN,从中选出若干个数,使它们的和为 M,求有多少种选择方案。输入格式第一行包含两个整数 N 和 M。第二行包含 N 个整数,表示 A1,A2,…,AN。输出格式包含一个整数,表示可选方案数。数据范围1≤N≤100,1

2021-09-22 15:00:30 294

原创 七周剑指offer《从尾到头打印链表》

从尾到头打印链表输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Soluti

2021-09-22 12:55:13 54

原创 七周剑指offer《替换空格》

替换空格请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是 1000。注意输出字符串的长度可能大于 1000。样例输入:"We are happy."输出:"We%20are%20happy."代码:class Solution {public: string replaceSpaces(string &str) { string ans; for (auto c : str){

2021-09-22 12:52:06 46

原创 javascript快速入门

一、JavaScript的组成ECMAScript:(核心)规定Js语法和基本对象DOM: 文档对象模型 处理网页内容的方法和接口 标记型文档 html 操作文档元素BOM: 浏览器对象,操作浏览器二、JavaScript的引入内部脚本方式 <script type = "text/javascript"> //type 可省略 //Js脚本内容 从上到下顺序执行 </scrpit> <

2021-09-21 14:59:35 191

原创 七周打卡剑指offer《二维数组中的查找》

二维数组中的查找题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为5,则返回false。暴力做法 O(n2n^2n2)思路:先扫描第一行找出比target小的最大数字记录

2021-09-21 13:48:26 86

原创 你知道二分的实质吗?怎么样的模板才能一次就通过?

二分算法的实质二分的实质是两段性:首先根据题目提取一个命题P(x)[1,n]有些中是符合P(x)命题,是真命题[1,n]有些数字中不符合P(x)命题,是假命题根据[1,n]之中的真假命题将集合一分为二第一种情况真命题在前...

2021-09-20 22:02:55 181

原创 七周打卡剑指offer《不修改数组找出重复的数》

不修改数组找出重复的数字给定一个长度为 n+1 的数组nums,数组中所有的数均在 1∼n 的范围内,其中 n≥1。请找出数组中任意一个重复的数,但不能修改输入的数组。样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。思考题:如果只能使用 O(1) 的额外空间,该怎么做呢?抽屉原理n个抽屉放n+1个苹果至少有一个抽屉里面放了两个以上的苹果根据题目一个有n个数字但是nums[]里面一共选了n+1个数字,必然有一个数字选中了两次,这个时候我们

2021-09-20 20:58:39 92

原创 七周打卡剑指Offer《找出数组中重复的数》

1.找出数组中重复的数字给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。时间复杂度O(N) 空间复杂度O(1)由于每个数如果合法都在0~n-1那么我们把每个数都放到它

2021-09-18 15:33:47 101

原创 你知道Java线程的生命周期吗?

线程的生命周期1.新建​ new关键字创建了一个线程后,改线程处于新建状态​ JVM为线程分配内存,初始化成员变量值2.就绪​ 当线程对象调用了start()方法后改线程处于就绪状态​ JVM为线程创建方法栈和程序计数器,等待线程调度器调度3.运行​ 就绪状态的线程获得CPU资源,开始运行run()方法,该线程进入运行状态4.阻塞​ 发生如下情况就会阻塞线程调用sleep()方法主动放弃所占用处理器资源线程调用了一个阻塞式IO方法,在该方法返回前,该线程被阻塞线程试

2021-09-08 17:15:31 69

原创 Java多线程你知道有几种实现方式?

多线程的四种实现1. 继承Thread​ 1.创建一个MyThread 类继承Thread​ 2. 并且重写run()方法pakage com.lzj;public class MyThread extends Thread{ @Override public void run(){ for (int i = 1; i < 20; i++){ System.out.println("我是 "+Thread.currentThrea

2021-09-08 16:29:33 127

原创 post与get请求的区别以及转发和重定向的区别

post 与get请求的额区别比较角度GETPOST请求的数据是否在url上显示会 url?参数名=参数值(不安全)不会 在Form Data中(安全)是否是表单的默认提交方式是不是执行效率高低(相对于GET)提交数据大小最大是1024字节理论上没有限制默认的编码格式ISO-8859-1不能存中文可以存中文转发与请求重定向的区别一般提交成功响应重定向输入失败跳转到登陆界面请求转发​转发重定向转发不可以跨

2021-08-24 00:00:31 519

原创 Java for循环的两种实现

for循环的两者方式及其特点1.普通的for循环优点:支持高并发(在多线程的状态下不会有问题)缺点:写法相较于增强for循环比较复杂for(int index = 0; index < arr.length(); index++){ System.out.println(arr[index]); } 2.增强for循环写法:for(集合内元素类型 集合类元素的变量名(自己取) :集合名)优点:写法简单缺点:不支持高并发(在多线程状态下会有问题)

2021-08-23 00:43:54 301

原创 Java的三大特性——多态

什么是多态多态就是父类引用变量指向子类对象多态的条件: 具有父子关系多态的形式 :父类 父类变量 = new 子类();父类变量只能调用子类对象所继承父类对象的方法和属性 或者重写父类的方法和属性class Person{ public void eat(){ } public void say(){ System.out.println("我是人"); } public void play(){

2021-08-23 00:17:45 202

原创 递推与递归分析

递推与递归递推和递归算是dp的基础入门题递推的本质在于找规律从结论出发递推,确定初始值变可以通过自底向上递推递归则是确定边界条件先自顶向下 →\rightarrow→ 自底向上p1255 数楼梯题目描述楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入格式一个数字,楼梯数。输出格式输出走的方式总数。分析:​ 递推公式研究,一次又两种走法:一步一阶,一步两阶当走到第n阶时又f[n]个走法,n阶可以通过从n-1阶走一步实现,和从n.

2021-08-21 08:55:26 189

原创 动态规划思想篇

从集合的角度思考动态规划动态规划之所以能够高效的解决问题是因为他所划分的都是某一类集合问题,每次枚举一类集合,那么最后的效率会快很多当然此篇只是思想篇,具体还要看用法篇细细分享动态规划分为两个步骤1.状态表示f[n]状态表示是一个化0为整的一个过程,每次枚举一个集合, 根据一类集合划分成一个数f[n]集合:根据题目所划分的一类集合(怎么划分还是要靠刷题经验)属性:集合所想表示的属性通常是Max, Min, Count,是否存在2.状态计算f[n]状态计算通常是一种化整为0的过

2021-08-18 19:22:22 92

原创 MySQL大略学习(二) 表格的操作 增删查改

二 表的操作2.1 表中结构的修改基础语法1. 添加字段alter table table_name add 属性名 属性类型2. 删除字段alter table table_name drop 属性名3. 重命名字段alter table table_name change 旧属性名 新属性名 旧属性类型4. 修改字段类型alter table table_name modify 属性名 修改后属性类型5. 设置主键alter table table_name add p

2021-06-16 09:43:06 3186 1

空空如也

空空如也

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

TA关注的人

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