- 博客(9)
- 收藏
- 关注
原创 Java反射相关
Java反射相关笔记????一、反射的作用二 Java reflection三 Java程序在计算机的三个阶段四、反射的优点和缺点五、反射的调试六、获取class对象一、反射的作用反射在框架学习的使用中特别多,即通过外部文件配置,在不修改源码的情况下来控制程序,这是符合设计模式ocp原则(开闭原则:不修改源码也可以拓展功能)。二 Java reflection1、反射机制允许程序在执行期间借助于reflection api取得任何类的内部信息(如成员变量,构造方法,成员方法等)并且能操作对象的属性和
2021-04-24 15:24:22
147
1
原创 kmp算法
kmp算法一、字符串匹配问题二、解决方案1.暴力求解2.kmp算法一、字符串匹配问题string1 = “hellldwarld”string2 = ‘ld’判断string1中是否含有string2,如果存在返回第一个出现的位置,否则返回-1;二、解决方案1.暴力求解public static int bfMethod(String str1, String str2) { char[] chars1 = str1.toCharArray(); char[] chars2 =
2021-04-16 09:13:03
135
原创 数据结构与算法-动态规划
数据结构与算法-贪心算法一、动态规划二、动态规划可解决的问题?1.计数2.求最值3.求存在性三、动态规划相关题型1.leetcode 5092.leetcode 623.leetcode 1214.leetcode 705.leetcode 2796.leetcode 221一、动态规划动态规划三要素:1、起始状态。2、中间状态。(通过状态转移方程式进行推算)3、终止状态。二、动态规划可解决的问题?1.计数有多少种方法/方式机器人从左上角移动到右下角的路径有多少种?(计数)2.求最值
2021-04-09 17:59:19
202
原创 数据结构与算法-滑动窗口法
滑动窗口法一、滑动窗口法二、滑动窗口法相关题型1.leetcode 209 长度最小的子数组2.leetcode 1456 定长子串中元音的最大数目一、滑动窗口法目的是为了减少 while 循环。用于解决数组中定长问题二、滑动窗口法相关题型1.leetcode 209 长度最小的子数组给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其
2021-04-07 17:40:12
293
原创 数据结构与算法-双指针算法
双指针算法一、双指针类型1、普通双指针2、对撞双指针3、快慢双指针二、双指针题型1.leetcode 141 环形链表2.leetcode 881 救生艇一、双指针类型1、普通双指针两个指针往同一个方向移动2、对撞双指针两个指针面对面移动3、快慢双指针慢指针+快指针二、双指针题型1.leetcode 141 环形链表给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表
2021-03-31 16:05:55
242
原创 Java队列和环形队列的简单实现
队列和环形队列的简单实现队列环形队列推广队列底层维护一个数组,实现队列的入队\出队操作。public class Queue { int capcity = 5; int front, rear; int[] queue = new int[capcity]; public Queue() { this.front = -1; this.rear = -1; } //首先要有一个判断对列是否为空的函数 priv
2021-03-29 20:23:55
325
2
原创 leetcode200 岛屿数量(经典面试题)
leetcode 200 岛屿数量leetcode 200 岛屿数量leetcode 200 岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”],[“1”,“1”,“0”,“1”,“0”],[“1”,“1”,“0”,“0”,“0”],[“0”,“0”,
2021-03-29 16:20:37
1682
3
原创 二分查找法
二分查找法一、二分查找(Binary Search)实现1、递归实现二分查找2、非递归实现二分查找二、时间复杂度三、二分查找法相关试题1. leetcode 704 二分查找2. leetcode 35 搜索插入位置3. leetcode 162 寻找峰值1. leetcode 704 二分查找四、二分查找法相关面试题一、二分查找(Binary Search)实现限制:必须是对于有序数列,才能使用二分查找法注意:mid = ( l + r ) / 2 可能会造成整型溢出,所以一般使用中间的索引mid
2021-03-27 17:41:08
277
原创 Java实现单例模式(懒汉模式、饿汉模式)
Java实现单例模式为什么要实现单例模式?懒汉模式实现1实现2饿汉模式实现1为什么要实现单例模式?首先单例模式是一种软件的设计模式。在实际的开发过程中,如果系统中某个对象希望只存在一个即可,不断的实例化对象是对内存资源的一种浪费,由此产生了单例模式的设计理念。单例模式保证系统中一个类只有一个实例切实例可以被外界访问到,来实现对实例化对象个数的限制,控制资源。懒汉模式懒汉加载法,懒加载的好处: 有的对象构建开销是比较大的,所以需要在真正使用的时候再加载,若没有被调用过就造成了空间浪费。但是该方法线程不
2021-03-26 15:32:34
172
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人