自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java设计一个栈,实现O(1)获取max,min (ACM模式)

//设计一个栈,实现O(1)获取最大最小值的栈,pop、push、getMin、getMax 操作的时间复杂度都是O(1)//解题思路:可以使用两个栈,第一个栈stack用于存放压入的数据,// 第二个栈min用于存放当前入栈数据中的最小数,与栈顶元素比较大小,若小于栈顶元素,则入栈成为新的栈顶元素,// 若大于栈顶元素,则入栈原先的栈顶元素。max同理// 当stack pop元素时,min也跟着pop元素。import java.util.Scanner;import java.util.S

2021-08-04 19:52:28 549

原创 leetcode:ACM模式删除链表倒数第N个节点

题目来源:添加链接描述删除链表倒数第N个节点ACM模式的链表输入要掌握好,这里比较复杂。import java.util.Scanner;import java.util.Stack;//ACM模式删除链表倒数第N个节点。leetcode题目public class deleteNode { public static class ListNode { int val; ListNode next; ListNode() {}

2021-07-29 15:22:05 985

原创 http相关知识

http1.xHTTP/1.0一次只允许在一个TCP连接上发起一个请求。【短连接】HTTP/1.1使用的流水线技术也只能部分处理请求并发,仍然会存在队列头阻塞问题。因此客户端在需要发起多次请求时,通常会采用建立多连接来减少延迟。【长连接:在一个TCP连接上可以传送多个HTTP请求和响应】【怎么实现长连接?】使用长连接的HTTP协议,会在响应头加入这行代码:Connection:keep-alive在使用长连接的情况下,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会

2021-07-28 19:44:54 141

原创 list && set 对比

List (列表)Set (集合)存储的数据是有序的存储的数据是无顺序的值允许重复不允许重复可插入多个null元素只许插入一个null元素支持通过下标来遍历,也可以用迭代器(Iterator)只能用迭代遍历ArrayArrayList存储基本数据类型和对象存储对象指定固定大小大小自动扩展内置方法少addAll、removeAll、iteration【tips】Arrays.asList(array):Array...

2021-07-28 19:36:40 122

原创 序列化 && 反序列化

java.io.Serializable接口实现序列化序列化:把一个Java对象变成二进制内容,本质上就是一个byte[]数组。 序列化后可以把byte[]保存到文件中,或者把byte[]通过网络传输到远程。这样,就相当于把Java对象存储到文件或者通过网络传输出去了。反序列化:把一个二进制内容(也就是byte[]数组)变回Java对象。有了反序列化,保存到文件中的byte[]数组又可以“变回”Java对象,或者从网络上读取byte[]并把它“变回”Java对象。...

2021-07-28 15:36:42 95

原创 接口 && 抽象类区别

接口是对动作的抽象,是行为规范;抽象类是对类的抽象,是一种模板设计抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。一个类只能继承一个类(抽象类)但可以实现多个接口抽象类接口extends关键字关键字implements有构造器没有构造器public、protected和default修饰符默认public单继承多继承可以有静态方法没有静态方法抽象类能使用 final 修饰吗?不能,定义抽象类就是让其他类继承的,可以实现.

2021-07-28 14:23:10 61

原创 == 和 equals

== 和 equals功能:判断两个对象是不是同一个对象。== : 基本数据类型 比较的是值,引用类型比较的是内存地址equals():类没有覆盖 equals() 方法:相当于通过“==”比较这两个对象。类覆盖了 equals() 方法:比较两个对象的内容相等。一般都会覆盖 equals() 方法(像Int,String类)Tips:object的equals方法是比较的对象的内存地址,而String(重写了)的equals方法比较的是对象的值/内容。重写equals的同时,需

2021-07-28 11:16:49 48

原创 操作字符串的类 && final

字符串的类操作字符串的类有:String、StringBuffer、StringBuilderString 声明的是不可变 (Final) 的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象。==特点:这样不仅效率低下,而且大量浪费有限的内存空间。而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,添加直接用.append();在经常改变字符串内容的情况下最好不要使用 String。StringBuffer 是线程安

2021-07-28 10:50:18 579

原创 mybatis-plus小结

mybatis-plus简介mybatis-plus是mybatis的增强工具,在 myBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。分页插件自定义ID生成器:雪花算法、UUID乐观锁配置,@version字段IDEA插件

2021-07-26 11:51:05 67

原创 dp动规规划Day3

题目来源:dp专题:打家劫舍198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 +

2021-07-16 09:51:18 138 1

原创 dp动态规划练习

题目来源:LeetCode dp专题dp套路1.basecase特殊情况讨论2.状态转移方程3.缓存中间结果,建dp数组4.顺序性,执行的方向(1->n 或者 n->1)**优化:**如果方程只与前面的一两个数有关,可以做空间复杂度优化,舍掉dp数组,只更新每次的前一两个数即可,具体实施可以参考下面题目解法。Day1 509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是

2021-07-13 11:21:02 59

原创 求两数的最小公倍数【java版ACM模式代码】

题目描述正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例输入 :5 7输出 : 35分析过程求解两数a, b 的最小公倍数先考虑特殊情况:由于都为正数,因此不用考虑0;当a =b 时候,直接返回其中一个数即可当a .> b 时候,遍历循环从I=1开始,当i*a % b==0时候,即这个数既可以整除a ,又可以整除b,也就是最小公倍

2021-04-14 10:36:06 462 2

原创 ACM模式自己写输入输出

文章目录1. Scanner类获取键盘输入2.Integer.parseInt和Integer.valueOf的区别3.ACM模式:连续子数组之和在平时的刷题过程中一般会遇到题目要求写的是ACM模式代码,即自己写输入输出,下面对自己写输入输出的模式进行了总结。1. Scanner类获取键盘输入Scanner 类是获取键盘输入的一个类,首先先创建 Scanner 对象Scanner sc = new Scanner(System.in);接下来通过Scanner 类的方法来获取输入,在调用方法

2021-04-05 11:21:36 3941 1

原创 dp动态规划解题套路 & 剑指offer 42连续子数组的最大和

文章目录动态规划解题套路四步法剑指offer 42连续子数组的最大和题目分析代码动态规划解题套路很多面试笔试题目涉及到的大部分都是DP的题目,这部分试题灵活性较高,而其中最重要的就是找出状态转移方程,方程找的好相当于成功了一半。这类题目需要不断地刷题来总结套路,总结就是多做题多总结多分析。四步法[0] 定义特殊情况。这部分的主要任务就是把特殊情况先列明解决掉,比如数组为null时候,直接return .....【这一步有时候题目没有特殊情况的时候是可以省略的】[1] 定义dp数组这一

2021-04-04 14:08:01 2878 5

原创 合并两个排序的链表

题目描述剑指 Offer 25–合并两个排序的链表输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路1.链表要先定义2个指针;2.dum指针是不能移动的; cur指针是要移动的,根据具体情况进行移动的;3.跳出循环的条件:l1或者l2为空时候;4.若(l1.val>l2.val),旧cur的下一个节点变为l2并将他

2021-03-08 15:24:45 116 1

原创 位运算的知识点及题目

位运算难点知识整理程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算说穿了,就是直接对整数在内存中的二进制位进行操作。1表示负数,0表示正数这里列举三个比较容易混的位运算:左移,右移,无符号右移项目符号计算左移<<左边丢弃,右边补0右移>>右边丢弃,左边原为0补0,原为1补1无符号右移>>>不管正负,统一补0相关题目剑指15-二进制中1的个数请实现一个函数,输入一个整数(以二进制串形式),

2021-03-08 11:23:07 109

原创 .ziw文件是什么?如何打开.ziw文件?

.ziw文件是为知笔记的一种文档格式打开方式:找到为知笔记的官网,下载它的windows安装包即可[缺点:该软件会有一个使用的有效期]打开.ziw文件时,右击选择发送到“为知笔记”,选择相应的文件夹保存即可...

2021-03-05 15:04:18 12081 1

原创 平衡二叉树是什么?平衡二叉树的解题思路。

目录该题目出自:剑指 Offer 55 - II. 平衡二叉树题目描述:知识点解题思路代码块该题目出自:剑指 Offer 55 - II. 平衡二叉树题目描述:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。示例 :给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。知识点1.什么是平衡二叉树?   如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。

2021-03-04 10:46:46 218 1

原创 剑指 Offer 50. 第一个只出现一次的字符【java版本】

目录题目描述解题思路代码块题目描述在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = "abaccdeff"返回 "b"s = "" 返回 " "解题思路【利用数组解决】1.将所给的字符串转成字符数组;2.创建一个新的整型数组arr,大小为26;3.对字符数组进行遍历,在数组arr上实现累加操作;4.再次循环查看数组arr中哪个数字第一次为1,即为题所求元素;5.否则就返回空元素。代码块class Solution {

2021-03-02 19:49:55 90

原创 剑指 Offer 18. 删除链表的节点【java版本】

题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 :输入: head = [4,5,1,9], val = 5输出: [4,1,9]解题思路这是一道关于删除链表结点的题目1.初始化定义一个头结点指向head,定义cur结点指向head.next;2.当要删除的结点为头结点时候,此时return head.next即可;3.否则就执行while循环,条件为cur结点非空 和 cur.val !=val :执行双指针分别向右移动一位

2021-03-02 16:57:26 84

原创 剑指 Offer 57. 和为s的两个数字【Java实现】

目录题目描述解题思路代码块反思?题目描述难易程度:容易输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]解题思路使用双指针解法进行解答。1.先定义左指针i=0,定义右指针j=nums.length-1。2.开始循环遍历数组元素,循环条件为左指针<右指针。由于这是一个递增数组,对左右指针所对应的元素进行相

2021-03-01 21:45:11 80

原创 剑指 Offer 03. 数组中重复的数字【Java实现】

#题目描述【难度:简单】找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 :输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3...

2021-03-01 17:15:21 87

空空如也

空空如也

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

TA关注的人

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