
leetcode
surepeng26
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode32 求最长有效括号
题目:给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解析:有效的括号子串可以分为两种,一种是()(),一种是((())),针对这两种括号的任意组合,我们可以求出状态转移方程如下,从...原创 2019-08-02 20:00:43 · 136 阅读 · 0 评论 -
合并k个链表
合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6有三种方法1、把所有元素入最小堆,再输出堆顶实现,堆可以用java的PriorityQueue实现2...原创 2019-08-07 01:41:42 · 299 阅读 · 0 评论 -
回溯法总结
回溯法类似DFS算法,如果没走过则可以往下走,当回溯时记得把走过的状态清空到初始状态,如果是链表加数则要去掉最近加的一个数,求不重复元素的回溯法要用到剪枝,剪枝的首要条件是要保证列表有序,然后如果前一个分支nums[i-1]和当前分支nums[i]走到的元素相同,且前一个分支的visited[i-1]=0,说明程序已经回退到前一个分支和当前分支的上层且马上要走到当前重复的分支了,这时continu...原创 2019-08-07 01:48:51 · 224 阅读 · 0 评论 -
BFS的主要思想
DFS之前在回溯法中已经介绍过了BFS主要是用队列实现,具体模版是入队第一个元素,当队列不为空时进行循环,如果需要记录每层的数据(层数),就保存队列的长度,在队列不为空的循环里进行for长度的循环,先出队第一个元素,进行条件判断,满足条件的节点入队。BFS主要应用于二叉树层次遍历相关、二叉树的右视图、求二叉树/简单图的最短/最小路径,拓扑排序,单词接龙等,图的遍历、克隆图、由图判树、连通快...原创 2019-08-13 01:45:41 · 505 阅读 · 0 评论