柴崎越
柴崎越
全部文章
Leetcode
代码总结(4)
毕业设计(18)
归档
标签
去牛客网
登录
/
注册
ccy的博客
学习
全部文章
/ Leetcode
(共85篇)
Leetcode 20 有效的括号
问题 分析 对于括号的问题,首先想到的就是使用栈 代码 public static boolean isValid(String s) { char[] chas = s.toCharArray(); Stack<Character> stack = ne...
栈
Leetcode
2020-01-17
0
592
Leetcode 22 括号生成
题目 分析 第一种办法就是将所有的括号的可能情况都列出来,也就是通过递归进行枚举,然后通过方法选择出合适的第二种方法就是通过深度优选遍历,就是类似二叉树的先序遍历 代码 case1: public static void main(String[] args) { ArrayList...
递归
回溯算法
深度优先遍历
Leetcode
2020-01-17
0
596
Leetcode 23 合并K个有序链表
题目 代码分析 method1:使用优先级队列,堆的方式来控制三个链表的头method2:归并排序的应用 代码展示 方法1 优先级队列 public static ListNode mergeKLists(ArrayList<ListNode> lists) { //小顶...
堆
链表
Leetcode
归并排序
2020-01-12
0
525
Leetcode 21 合并两个有序链表
题目 代码分析 首先不要考虑特殊情况,分析中间的情况,被插入的需要一个前面的指针pre,插入的指针需要一个next来保留现场,这道题就是pre和next的灵活应用。第二种方法就是递归,交替的进入递归的方法。 代码展示 public static ListNode mergeTowList(ListN...
链表
next指针
递归
2020-01-12
0
532
Leetcode 24 两两交换链表中的节点
题目 代码分析 简单版的Leetcode25 代码实现 public static ListNode swapPairs(ListNode head) { ListNode cur=head; ListNode start=null; ListNod...
链表
逆置
2020-01-10
0
552
Leetcode 25 K 个一组翻转链表
代码分析 使用next保留现场 while(cur!=null) { next=cur.next; if(count==K) { //逆置 count=0; } cur=next; ...
链表
逆置
2020-01-09
0
532
Leetcode26,27 两道双指针的问题
我的解法 leetcode27 public static int removeElement(int[] nums, int val) { int last=nums.length-1; int cur=0; while(cur!=nums.le...
双指针
Leetcode
2020-01-08
0
526
Leetcode 28 字符串的匹配
题目 题目分析 KMP算法首先是生成next数组然后就是匹配,已经写过很多次了,写几个需要注意的点1,next数组,初始化next[0]=-1,next[1]=0,我们从2开始遍历 三种情况的判断 if(match[cur-1]==match[pre]) { next[cur++]=++...
Leetcode
kmp
2020-01-07
0
545
Leetcode 29 模拟两数相除
题目 代码分析 不使用算数运算符,首先想到的就是采用位运算,先完成加减的位运算方法,再实现乘除的位运算方法 代码展示 加的位运算实现 public static int add(int a,int b) { while(b!=0) { ...
Leetcode
位运算
2020-01-06
0
612
Leetcode 30 串联所有单词的子串
题目 分析 两种解法。都使用到了hash的知识。对于第一种解法,我们比较直接的循环得到所有可能的结果,也就是和单词数组长度和相同的所有子串,从i=0开始,一直到最后,对于每一个循环得到的子串就进行判断即可,判断就是通过比较两个哈希是否相同。 for(int i=0;i<S.length()-...
滑动窗口
哈希
2020-01-01
0
536
首页
上一页
1
2
3
4
5
6
7
8
9
下一页
末页