- 博客(18)
- 收藏
- 关注
原创 括号匹配问题
括号匹配问题个人思路:总共四种情况:要么 左括号多要么 右括号多要么 左右括号不匹配要么 匹配新建一个栈遇到 左括号 入栈遇到 右括号看是栈否为空 空的话 右括号多然后 和 栈顶元素 比较 看是否匹配匹配 出栈 顶元素不匹配 左右不匹配 return ;for循环走完后 如果 栈 还是非空 则左括号多 return ;全部走完后 return true ;class Solution { public boolean
2021-11-06 11:24:31
208
原创 循环队列问题
循环队列问题个人思路:设置一个 队头 front 队尾 rear 的 下标值浪费一个位置 来判断数组是否满了入队:如果满了 ,return false;如果没满,在数组的 rear 处 入队 ,即队尾处入队然后rear 走到下一个不过注意: rear 不能直接++得 this.rear = (this.rear+1)%this.elem.length ;否则 如果rear 是在最后 一个下标 就会出错出队:判断是否为空如果空了 retur fal
2021-11-06 11:22:26
450
原创 最小栈问题
需要俩个栈 一个普通栈 一个最小栈个人思路:push :普通栈一定放进去如果最小栈为空 也放进去如果最小栈不为空 和最小栈顶元素比较 如果大于栈顶元素,则不放小于等于栈顶元素,也放进去pop:普通栈顶元素小于等于最小栈栈顶元素时 最小栈栈顶元素也得删除class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; public
2021-11-06 11:19:38
160
原创 两个队列实现栈
栈: 先进后出队列:先进先出两个队列实现栈:个人思路:队列先进先出 栈先进后出所以 需要俩个队列 q1 q2然后 入栈 往非空的队列入如果都为空 ,随便入出栈的时候如果都为空 return -1;否则 ,把非空的 前 n-1个 元素 倒进 空栈此时最后一个元素就是我们要求的 然后 return q.pool;int size = qu2.size(); //循环条件//不能直接写 qu2.size()-1 会报错 因为每次去一个栈
2021-11-06 11:17:38
237
原创 两个普通栈实现队列
栈: 先进后出队列:先进先出两个栈实现队列个人思路:俩个栈 s1 s2s1只用来入栈s2只用来出栈出栈的时候 如果s2为空,就判断 s1是否也为空如果s1也为空 就 return否则 将s1的全部倒进s2 从s1 pop出来,s2 push进去for 循环条件 不能 直接 i<s1.size(); 因为是一个变量 每次出一个 就会减一peek : 全部倒进 s2 后 s2.peek() ; 就好class MyQueue { pub
2021-11-06 11:14:56
99
原创 字符串的练习一
在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写,从0开始计数)自己的思路:建一个数组 大小为128 ,然后 遍历字符串第一次遍历字符串, 将每一个字符,对应的下标,的值,加一第二次遍历字符串, 将每一个字符,对应的下标,的值,如果等于一,则返回对应的 i比如,第一次遍历,字符a 对应的下标 是 97如果 出现了 a 则在对应下标97的值加 1 ,第二次遍历,将 出现的字符对应的下标的值 和 1 作比较 ,如果是
2021-10-31 14:22:28
124
原创 String,StringBuffer,StringBulider
String类与StringBuffer类以及StringBulider类1.任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指向而已。2.通常来讲String的操作比较简单,但是由于String的不可更改特性,为了方便字符串的修改,提供StringBuffer和StringBuilder类。3.在String中使用"+"来进行字符串连接,但是这个操作在StringBuffer类中需要更改append();public class Te
2021-10-31 14:15:39
106
原创 抽象类和接口 二 二 二
排序 之 自定义对象在 sort 方法中会自动调用 compareTo 方法.compareTo 的参数是 Object其实传入的就是Student 类型(自定义)的对象.然后比较当前对象和参数对象的大小关系(按分数来算).如果当前对象应排在参数对象之前, 返回小于 0 的数字;如果当前对象应排在参数对象之后, 返回大于 0 的数字;如果当前对象和参数对象不分先后, 返回 0;public int compareTo(Object o) { Student s = (Stud
2021-10-31 14:05:33
110
原创 抽象类和接口一 一 一
抽象类的相关概念//一个方法没有被具体实现 的话 要用 abstract 修饰//抽象类:包含抽象方法的类 称为抽象类//抽象方法:没有具体实现,所以 ,用 abstract 修饰//注意:1.抽象类不能被实例化 也就是不能 new 对象//2.抽象类当中可以有和普通类当中一样的成员 就是不能够实例化//3.如果 一个普通类继承了一个抽象类 这个普通类要重写抽象类中的所有抽象方法//4.一个抽象类A 继承了抽象类B ,可以不重写抽象类B中的抽象方法但是一旦
2021-10-31 13:46:19
105
原创 继承相关和多态初识
OOP语言的三大特性 封装 继承和多态继承:优点:可以达到代码复用的效果A extends BA : 子类 派生类B : 基类 父类 超类注意:1.子类继承了父类除构造方法外的其他所有的2.子类在构造的时候,要先帮助父类来进行构造3.访问修订限定符 private < default < protected < publicprotected:不同包当中,只能是子类才能访问private : 范围在 同一包的同一个类public : 范围
2021-10-27 19:36:13
170
原创 初识MySql 一
数据库基本操作1.创建: create database2.指定: use 【数据库名称】3.查看数据库: show databases;4.删除数据库: drop database【数据库名】;数据表操作:1.创建表: create table2.查看表结果: desc【表名】3.查看当前有哪些表: show tables;4.删除表: drop table【表名】常用的数据类型:int decimal varchar textdecimal(5,2)
2021-10-27 19:16:27
98
原创 双链表的基本相关方法
双链表class Node { public Node prev; public int val; public Node next; public Node(int val) { this.val = val; }}public class MyDoubleList { public Node head ; public Node last ; //public Node head = new Node(-1);
2021-10-27 19:08:29
124
原创 单链表相关的面试题
面试题1:删除值为key的所有节点 要求只遍历一遍public Node removeAllKey(int key) { if (this.head == null) { return null; } Node prev = this.head; Node cur = this.head.next; while (cur != null) { if (cur.data
2021-10-27 19:01:52
145
原创 单链表的增删改查
初识单链表class Node{ public int data ; // 0 public Node next ; // null public Node(int data ){ this.data = data; this.next = null; } }public class MyLinkedList { public Node head; //保存单链表的头节点
2021-10-27 18:49:57
94
原创 顺序表的初步学习---Java
顺序表的初步学习线性表:是具有n个相同特性的数据元素的有限序列。常见的线性表:顺序表,链表,栈,队列,字符串。顺序表:是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。顺序表分为:1.静态顺序表:使用定长数组储存。2.动态顺序表:使用动态开辟的数组储存。适用不同场景:1 .静态顺序表适用于确定知道需要存多少数据的场景.2 .静态顺序表的定长数组导致N定大了,空间开多了浪费,开少了不够用.相比之下动态顺序表更灵活, 根据需要动态的分配空间大小.顺序表练习1
2021-10-22 20:07:52
88
原创 方法,数组及类和对象的初步认识
方法的相关定义1.public static 返回值 方法名(形式参数列表){方法体}2.方法名:采用小驼峰 maxNum3.public static : 因为当前所有的方法 写完之后 会在main方法中调用因为main方法是public static 的4.返回值 可有可无 具体看业务需求 如果有返回值 那么返回值类型需要和方法的返回值类型匹配5.形式参数列表: 形参----->实参的一份拷贝 形参相当于实参的拷贝,即传值调用6.方
2021-10-22 20:03:39
140
原创 Java的基本数据类型及运算符
1.数据类型分为 基本类型 和 引用类型基本类型:byte,short,char,int,float,double,long,boolean引用类型:数组,接口,类,string等等2.转义字符 在前面加一个 \转义类型解释\n换行\t水平制表符’单引号"双引号\反斜杠3.字符串的拼接+ 代表的是拼接任何与字符串拼接之后结果都为字符串4.变量的作用域:变量可以作用的范围 public static void main(
2021-10-12 21:28:02
260
原创 初识Java
Java的一大特性:一次编译,到处运行1.public:公有的(关键字)2.class: 定义类 结构体的高配版本3.TestDemo:类名4.类名 {类体(属性或方法)}5.static:静态的。6.String[] args 数组------------------------ 后面跟的代表的是运行时的命令行参数7.String 字符串类型8.简单类型除boolean外,赋值的时候都不能够超过最大赋值范围,如 byte a = 128; 是错的byte b = 127
2021-10-11 21:03:35
83
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人