- 博客(12)
- 资源 (4)
- 收藏
- 关注
原创 Java设计模式(建造者模式)
package com.jxufe;import lombok.Data;@Datapublic class House { private String base; private String walls; private String roofed;}package com.jxufe;//抽象的建造者public abstract class HouseBuilder { House house = new House(); //将
2020-10-26 23:14:05
70
原创 Java设计模式(策略模式)
package com.jxufe;public interface FlyBehavior { void fly(); //子类具体实现即可}package com.jxufe;public class NoFlyBehavior implements FlyBehavior{ public void fly() { System.out.println("不会飞翔"); }}package com.jxufe;public class
2020-10-25 23:43:46
63
原创 Java设计模式(状态模式)
状态接口package com.company.statepattern;public interface State { /** * 扣除积分 */ void reduceMoney(); /** * 是否抽中奖品 * @return */ boolean raffle(); /** * 发放奖品 */ void dispensePrize();}不能抽奖状态packa
2020-10-23 10:54:45
81
原创 Java设计模式(装饰器模式)
装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。package com.company.decoratorpattern;public interface Shape {
2020-10-19 12:15:36
72
原创 Java设计模式(观察者模式)
观察者模式当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。package com.jxufe.observer.improve;//接口,让WeatherData来实现public interface Subject { void registerObserver(Observer observer); void removeObserver(Observer observ
2020-10-18 23:32:02
66
原创 preparement批量插入
Connection connection = dbOperator.getConnection();try { PreparedStatement preparedStatement = connection.prepareStatement(insertSql); for (int i=0;i<paramsList.size();i++) { for (int j=0;j<paramsList.get(i).length;j++) {
2020-10-14 14:23:38
77
原创 AC自动机【求在文本串中出现次数最多的模式串】
题目描述有 N 个由小写字母组成的模式串以及一个文本串 T。每个模式串可能会在文本串中出现多次。你需要找出哪些模式串在文本串 T 中出现的次数最多。输入格式输入包含多组数据,保证输入数据不超过50组每组数据第一行为一个整数 N ,表示有 N 个模式串,1<=N<=50.接下去 N 行,每行一个长度小于等于 70 的模式串。下一行是一个长度小于等于 10^6 的文本串 T. 保存不存在两个相同的模式串输入结束标志 N = 0输出格式对于每一组数据,第一行输出模式串最多出现
2020-10-14 08:59:41
95
原创 AC自动机【模板】
题目描述给定 n 个模式串 si 和一个文本串 t ,求有多少个不同的模式串在文本串中出现过。两个模式串不同当且仅当它们的编号不同输入格式第一行是一个整数,表示模式串的个数 n第 2 到第 (n+1) 行,每行一个字符串,第 i+1 行的字符串表示编号为 i 的模式串 si.最后一行是一个字符串,表示文本串 t.输出格式一个答案输入输出样例输入:3aaaaaaaa输出:3代码:public class Main { static class T
2020-10-14 00:29:27
69
原创 不同的子序列
给定一个字符串 S 和一个字符串 T,计算在 S 的子序列中 T 出现的个数。一个字符串的一个子序列是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围示例 1:输入:S = “rabbbit”, T = “rabbit”输出:3解释:如下图所示, 有 3 种可以从 S 中得到 “rabbit” 的方案。(上箭头符号 ^ 表示选取的字母)ra
2020-10-13 08:51:21
75
原创 KMP算法详解
package com.company;import java.util.*;/** * KMP: 求解一个字符串是否在文本串中出现 */public class Main { /** * 求出Next数组 * @param s Next数组记录s字符串中前缀等于后缀的最长长度 * @param Next Next[i]: 表示s[0:i-1]中前缀等于后缀的最长长度 */ public static void getNext(Stri
2020-10-12 13:02:38
73
原创 扰乱字符串【区间dp】
题目&&题解题解 public boolean isScramble(String s1, String s2) { int len = s1.length(); boolean[][][] dp = new boolean[len][len][len+1]; for (int i=0;i<len;i++) { for (int j=0;j<len;j++) { dp[i]
2020-10-12 09:00:31
63
原创 分割回文串
题目:给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的最少分割次数。示例:输入: “aab”输出: 1解释: 进行一次分割就可将 s 分割成 [“aa”,“b”] 这样两个回文子串。dp[i]:指 s[1:i] 切割成回文串最少需要几次每次枚举 s[j:i] 是否是一个回文串,如果是 dp[i] = dp[j-1] + 1public static int minCut(String s) { int[] dp = new int[s.
2020-10-12 00:07:33
70
基于Servlet+反射技术的模仿天猫网站开发
2019-12-25
基于SSM 梦想试衣间
2019-11-19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人 TA的粉丝