- 博客(18)
- 收藏
- 关注
原创 生成合法的括号
给定一个数字n,生成包含2n括号的合法序列 n=3 [((())), (()()), (())(), ()(()), ()()()] 暴力法 public List<String> generateParenthesis(int n ){ List<String> res=new ArrayList<>(); generateAll(new char[n*2],res,0); return res; } private void generateAll
2020-10-31 10:08:14
280
原创 树的前序遍历方法
递归 package com.cbx; import com.cbx.LeetCode.树.TreeNode; import java.util.ArrayList; import java.util.List; /** * @Author:cbx * @Date:2020/10/27/11:25 */ public class preOrder { public List<Integer> preorderTraversal(TreeNode root) {
2020-10-27 11:47:04
534
原创 整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常
2020-10-24 14:03:30
155
原创 查找共同的字符串
“bella”,“abe”,“roer” 结果返回 e public List<String> commonChars(String[] A) { int[] minfreq = new int[26]; Arrays.fill(minfreq, Integer.MAX_VALUE); for (String word: A) { int[] freq = new int[26]; int lengt
2020-10-24 13:38:42
507
原创 回退字符串
遇到#就后退一个字符串 “a##c” =="#a#c" “y#fo##f” ==“y#f#o##f” "#c"意思是这种情况就是生成 c 利用栈 /** * 利用栈操作 开辟了额外的空间 * @param S * @param T * @return */ public boolean backspaceCompare(String S, String T) { return newStr(S).equals(newStr(T
2020-10-24 13:32:05
420
原创 划分字符串--尽可能多的划分片段
字符串 S 由小写字母组成。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。返回一个表示每个字符串片段的长度的列表 输入:S = “ababcbacadefegdehijhklij” 输出:[9,7,8] 解释: 划分结果为 “ababcbaca”, “defegde”, “hijhklij”。 每个字母最多出现在一个片段中。 像 “ababcbacadefegde”, “hijhklij” 的划分是错误的,因为划分的片段数较少。 public List<Integer>
2020-10-24 13:03:42
834
原创 首尾交换链表
1->2->3->4->5 ==> 1->5->2->4->3 使用线性表 将节点依次放入集合中,通过索引交换 /** * 将链表的节点放入顺序表中,这样方便获取最后一个节点 * 1->2->3->4 * 1->4->2->3 */ public void recordList(ListNode head){ if (head==null) return
2020-10-22 20:18:02
942
原创 两两交换链表中的节点
1->2->3->4->5 ==》 2->1->4->3->5 非递归求解 public ListNode swapPairs(ListNode head) { if (head==null||head.next==null) return head; ListNode pre=new ListNode(0); pre.next=head; ListNode temp=pre;
2020-10-22 20:13:24
111
原创 java设计模式之观察者模式
定义 定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象, 当主题对象发生变化时,它的所有依赖者收到通知并更新 package com.cbx.Observer; import java.util.ArrayList; import java.util.List; /** * @Author:cbx * @Date:2020/10/22/14:02 */ public class ObserverTest { public static void main(String[
2020-10-22 14:19:15
111
原创 反转链表
给定一个链表进行反转 1->2->3->4->null null->4->3->2->1 双指针法 public ListNode reverseList2(ListNode head){ ListNode pre=null; ListNode cur=head; ListNode temp; while (cur!=null){ temp=cur.next
2020-10-22 13:20:49
214
原创 回文子串
https://leetcode-cn.com/problems/palindromic-substrings/ 输入:“aaa” 输出:6 解释:6个回文子串: “a”, “a”, “a”, “aa”, “aa”, “aaa” package com.cbx.LeetCode.动态规划; /** * @Author:cbx * @Date:2020/09/14/18:50 * https://leetcode-cn.com/problems/palindromic-substrings/solut
2020-10-19 22:20:26
98
原创 Try catch fianlly包含return的情况
在我们的常规开发中,如果代码被try catch finally包含,发生异常之后,先去执行catch块,去处理一些逻辑,然后再执行finally块,一般用于关闭一些资源。 但是在含有return关键字后,就会出现一些不一样的情况。 1.正常情况 //1.正常情况 public void demo1(){ try { int i=1/0; } catch (Exception e) { System.out.prin
2020-10-19 13:41:08
125
原创 欧几里得算法(求最大公约数)
package com.cbx; /** * @Author:cbx * @Date:2020/10/16/18:36 * 求最大公约数的经典算法 */ public class BiggestCommonDivisor { public static int commonDivisor(int m,int n){ if (n==0) return m; int r=m%n;
2020-10-16 18:42:18
330
原创 List可以边遍历边删除吗?
当问到List几个一边遍历一边删除时我想第一时间就会写出以下的代码 /** * @Author:cbx * @Date:2020/10/16/13:12 */ public class TestList { public static void main(String[] args) { List<String> resList=new ArrayList<>(); resList.add("james"); resLi
2020-10-16 15:22:46
483
原创 ThreadLocal分析以及其解决的问题
什么是ThreadLocal ThreadLocal是线程变量,填充的变量属于当前线程。对于其他线程是隔离的,ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 如何使用ThreadLocal /** * @Author:cbx * @Date:2020/10/13/16:27 */ public class TestThreadLocal { public static void main(String[] args) { Th
2020-10-13 20:16:39
142
原创 java设计模式之单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 饿汉式 特点: 线程安全 反射不安全 反序列化不安全 静态的变量,在序列化的过
2020-10-13 14:08:55
88
原创 java设计者模式之策略模式
Java设计者模式之策略模式从模拟一个鸭子项目开始鸭子超类合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 从模拟一个鸭子项目开始 我们从面向对象的角度来设计鸭子超类,扩展超类 鸭子超类 /** * @Author:cbx * @Date
2020-10-13 12:50:12
127
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人