当前位置:网站首页 > Java教程 > 正文

java蓝桥杯算法教程



    本篇文章是跟着B站的一位大佬(UP:只学算法找工作)学习制作的,本篇文章的内容都是观看该视频所记录下的笔记,希望能对大家有所帮助。(原B站UP视频连接:保姆级 | 零基础备赛蓝桥杯java组 | )

    这篇是本栏目的第一篇内容,主要学习JAVA的基础数据类型和输入输出以及数组。在未来也会继续更新下去,直到学习完毕。

    在本栏目编写过程中,也会对视频内容的一些知识进行变化,并且会增加一些我自己的思考。所以本栏目的内容不是和视频一样一成不变的知识。只是为了我自己能够更好的理解或者拓展所以做了一些些的修改,希望对大家能够有所帮助。如果发现我的文章编写内容有错误的话,欢迎大家在评论区留言或者自己私信我,我会第一时间进行更改的!

 

本文章只记录做题常用到的基础数据类型.

  1. Int (整型)
    • 数据类型是32位
    • 最小值是-2^31
    • 最大值是2^31 -1
    • 默认值是0
  2. Long (长整型)
    • 数据类型是64位
    • 最小值是-2^63
    • 最大值是2^63 -1
    • 默认值是0
  3. float (单精度浮点数)
    • 数据类型是单精度32位
    • 默认值是0.0
    • PS:不能表示精确的值
  4. double (双精度浮点数)
    • 数据类型是双精度64位
    • 默认值是0.0
    • PS:同样也不能表示精确的值
  5. boolean (布尔类型)
    • 数据类型表示1位信息
    • 只有"true"和"false"
    • 默认值是"false"
  6. char(字符类型)
    • 单一的16位Unicode字符
    • 案例
       

在这里插入图片描述

代码示例:

 

在这里插入图片描述

与的区别

区别就在于next()就是敲下空格键之后就停止

在这里插入图片描述

而nextLine()会打印一整段的内容,不会因为空格而失去接收信息

在这里插入图片描述

在这里插入图片描述

 

特点介绍

  • 数组中的元素在内存中是依次紧密排列的有序的.
  • 数组一旦初始化完成,其长度就是确定的,而数组的长度一旦确定就不能修改.
  • 数组的索引是从0开始的.

代码语句

 

完整代码

 

经典例题

image-20240220010347415

答案

在这里插入图片描述


特点介绍

  1. 是一个不允许出现重复元素,并且无序的集合,主要有HashSet实现类。
  2. 在判断重复元素的时候,Set集合会调用hashCode(和equal0方法来实现。
  3. 注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素.
  4. 用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复.

特点:

  • 可以用来去重
  • 元素无序

代码语句

image-20240220011547588

 

完整代码

 
 
 

在Java中,是用来判断集合中是否包含元素1的方法。它返回一个布尔值,表示是否包含该元素。因此,将返回一个布尔值,并将其赋值给变量。

如果将代码改为,则会导致编译错误。因为返回的是一个布尔值,而不是一个集合对象。所以不能将布尔值赋给集合对象。

如果你想要判断集合中是否包含元素1,并将结果赋给变量,可以使用以下方式:

 

经典例题

https://www.luogu.com.cn/problem/P4305

image-20240220013826109

答案

在这里插入图片描述


特点介绍

ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。

image-20240222092930576比较常用的是前三个方法

代码语句

 

完整代码

 

特点介绍

  1. HashMap是一个散列表,它存储的内容是键值对(keyi-value)的映射.
  2. HashMap实现了Map接口,可以根据键的HashCode值存储数据,具有很快的访问速度.
  3. HashMap是无序的,即不会记录插入的顺序.

image-20240222103940484

注意:方法四中的需要大写!!!

代码语句

 

完整代码

 

经典例题

image-20240222105438886

链接: https://www.luogu.com.cn/problem/P1102

答案

image-20240222105818127

特点介绍

Stack的特点:先进后出.

image-20240222110419737

代码语句

 

经典例题

image-20240222110443382链接:https://www.luogu.com.cn/problem/P1427

image-20240222110657212链接:https://www.luogu.com.cn/problem/P1739

答案

第一题答案

image-20240222110640809

第二题答案

image-20240222110821687


特点介绍

队列的特点是先进先出

常用方法:

  1. 从队尾压入元素,返回是否压入成功.
  2. 删除并且返回对头被删除的那个元素.
  3. 返回对头元素,但是不删除
  4. 删除队列是否为空

代码语句

 

经典例题

image-20240223234556023

链接:https://www.luogu.com.cn/problem/P1996

答案

image-20240223235327485

特点介绍

数组排列

通过方法对一个数组所以元素进行排序,并且默认按从小到大的顺序排列.

集合排列

通过方法对一个集合的所以元素进行排列,并且从小到大的顺序.

代码语句

数组排列
 
 
 
集合排列
 
 

经典例题

image-20240224212707467

链接:https://www.luogu.com.cn/problem/P1739

答案

image-20240224212735241

特点介绍

  1. String类都代表的是字符串,也就是java程序中的字符串文字,都被实现为此类.
  2. String类代码是由final修饰的,它们的值在创建后不能被更改.字符串缓冲区支持可变字符串.
  3. 因为String对象是不可变的,他们可以被共享.

特点:

  • String通过new创建的字符串对象,每一次new都会申请一个内存空间,虽然内容相同,但是地址不同.
  • 以双引号方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM都只会建立一个String对象

image-20240224224354302

image-20240224224416923

代码语句

 
 

经典例题

image-20240224224806799

链接:https://www.luogu.com.cn/problem/B2109

第一题

image-20240224224901938

链接:https://www.luogu.com.cn/problem/B2124

第三题

image-20240224225142172

链接:https://www.luogu.com.cn/problem/B3640

答案

image-20240224224844561

第二题答案

image-20240224224941218

时间复杂度时间复杂度是用来分析算法执行时间随着问题规模增大而增长的速度。它衡量了算法的执行效率。常数级别(O(1))、对数级别(O(leg n))、线性级别(O(n))、线性对数级别(O(nlog n))、平方级别(O(n2))、立方级别(O(n3))和指数级别(O(2n))等.

计算机1s可以计算10的8次方,所以我们解题的时候,要控制代码的时间复杂度在10~8以内!

代码语句时间复杂度该代码的时间复杂度为o(n)该代码的时间复杂度为o(n*n)``该代码的时间复杂度为o(logn)

image-20240224231551101

image-20240224231612054

版权声明


相关文章:

  • 僵尸塔教程java版2024-12-24 12:02:01
  • java核心编程教程2024-12-24 12:02:01
  • java画乌龟教程2024-12-24 12:02:01
  • java翻页教程2024-12-24 12:02:01
  • java ee教程书籍推荐2024-12-24 12:02:01
  • java编写drawable教程2024-12-24 12:02:01
  • java开发教程手机版2024-12-24 12:02:01
  • java编矩阵教程2024-12-24 12:02:01
  • java程序设计教程实验手册2024-12-24 12:02:01
  • java版本教程2024-12-24 12:02:01