算法
zjxxyz123
这个作者很懒,什么都没留下…
展开
-
Manacher算法
Manacher算法算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和拓展kmp算法有很多共通支出,所以在这里介绍一下。Manacher算法是查找一个字符串的最长回文子串的线性算法。在介绍算法之前,首先转载 2017-11-18 17:58:47 · 162 阅读 · 0 评论 -
边界都是1的最大正方形大小
问题描述给定一个N*M的矩阵matrix, 在这个矩阵中, 只有0和1两种值, 返回边框全是1的最大正方 形的边长长度。 例如: 0 1 1 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 1 0 1 0 1 1 其中, 边框全是1的最大正方形的大小为4*4, 所以返回4问题分析首先明确一个问题,便是如果枚举一个N*M的矩阵中的所有的子矩阵,时原创 2018-01-27 21:46:14 · 1138 阅读 · 0 评论 -
用栈实现队列与用队列实现栈
问题描述用两个栈实现队列用两个队列实现栈问题分析用两个栈实现队列 stackPush 用作 Push 操作,Push 是直接 push 进这个栈。stackPop 用作 Pop 操作,若 stackPop 当前不为空,那么直接 pop ,若为空,那么将 stackPush 全部倒入 stackPop 中,然后 stackPop 再 pop 出一个元素用两个队列实现栈 ...原创 2018-04-09 16:30:33 · 2084 阅读 · 1 评论 -
K Sum 问题
相关问题总结Leetcode-1. Two SumLeetcode-264. Two Sum II - Input array is sortedLeetCode 15. 3SumLeetCode 18. 4SumLeetCode 16. 3Sum ClosestLeetCode 454. 4Sum IIK Sum ?源自 LeetCode Discuss代码实现...原创 2018-04-15 21:52:20 · 166 阅读 · 0 评论 -
三路快排中的Partition过程
现将三路快排中的Partition过程代码注释如下://荷兰国旗问题:// 思路:用到了partition()方法中的分三个区的思想,此时的pivot值为中间的那个元素public class MyNetherlandsFlag { public static int[] partition(int[] arr, int l, int r, int pivot) ...原创 2018-04-11 17:26:35 · 623 阅读 · 0 评论 -
递归,记忆化搜索与动态规划
下列图片主要解释从一个递归问题,可以用记忆化搜索来优化,也可用动态规划来解决。 拿斐波那契数列数列举例: 递归树如下,可以看到存在大量重复计算 如果设置一个全局的数组,初始化全为 -1,用来来保存子问题的答案 记忆化搜索和递归大致思路一样,是一种自顶向下的思路,而动态规划则是一种自底向上的思路 那么究竟什么是动态规划呢? 三者之间的联系,一般考虑一个问题,我们习惯是自顶向...原创 2018-04-30 10:02:01 · 2172 阅读 · 0 评论 -
二叉树三种遍历方式的递归实现,非递归实现
先序遍历:LeetCode 144. Binary Tree Preorder Traversal中序遍历:LeetCode 94. Binary Tree Inorder Traversal后序遍历:LeetCode 145. Binary Tree Postorder Traversal原创 2018-04-20 14:11:24 · 158 阅读 · 0 评论 -
什么是动态规划
* 转载自公众号 程序员小灰 var write_sceen_time = (+new Date()); 漫画:什么是动态规划?(整合版) ...原创 2018-04-26 09:42:06 · 233 阅读 · 0 评论 -
最长公共子序列(Longest Common Subsequence)问题
问题描述给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。Example : 给出”ABCD” 和 “EDCA”,这个LCS是 “A” (或 D或C),返回1 给出 “ABCD” 和 “EACB”,这个LCS是”AC”返回 2牛客地址LintCode地址问题分析最长公共子序列问题是动态规划经典题目,我将从暴力递归,到记忆化搜索,到动态规划,一步步讲解。暴...原创 2018-05-11 10:14:53 · 4951 阅读 · 0 评论 -
最长公共子串问题
问题描述给出两个字符串,找到最长公共子串,并返回其长度。Example : 给出A=“ABCD”,B=“CBCE”,返回 2牛客地址LintCode地址问题分析与 最长公共子序列(Longest Common Subsequence)问题 不同,该题是求最长公共子串的长度,子串必须要求连续,而子序列则可以不连续。针对子串这一特点,设置的状态也有所不同。最长公共子序列是属...原创 2018-05-11 15:00:26 · 1321 阅读 · 0 评论 -
Leetcode-264. Ugly Number II
问题描述:Write a program to find the n-th ugly number. Ugly numbers are positive numbers whose prime factors only include 2, 3, 5. For example, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 is the sequence of the fi原创 2018-01-14 22:03:19 · 200 阅读 · 0 评论 -
Leetcode 149-Max Points on a Line
问题描述:Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.二维平面上组成一条直线的最多点,给定一组点的横坐标和纵坐标。 问如果只能画一条直线, 最多能共线几个点?leetcode链接解决方法:基本问题:LeetCode 44...原创 2017-12-30 10:24:20 · 169 阅读 · 0 评论 -
Leetcode-282. Expression Add Operators
问题描述:Given a string that contains only digits 0-9 and a target value, return all possibilities to add binary operators (not unary) +, -, or * between the digits so they evaluate to the target valueEx原创 2017-12-31 17:18:35 · 211 阅读 · 0 评论 -
Leetcode-316.Remove Duplicate Letters
问题描述:Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure your result is the smallest in lexicographical or原创 2018-01-01 17:41:31 · 298 阅读 · 0 评论 -
Rand5ToRand7等相关随机器构造问题
问题描述:给你等概率返回1~5的随机函数, 这是唯一的随机源。 请做出等概率 返回1~7的随机函数。给你以p概率返回0, 以1-p概率返回1的函数p, 这是唯一的随机源, 请 做出等概率返回0和1的随机函数。给你等概率返回1~m的随机函数, 这是唯一的随机源。 请做出等概率 返回1~n的随机函数。思路分析:第一个问题和第三个问题类似,第一个问题是第三个 问题的具体情况。先分析第一个问原创 2018-01-01 21:39:05 · 239 阅读 · 0 评论 -
正数数组的最小不可组成和问题
问题描述:给定一个正数数组arr, 其中所有的值都为整数, 以下是最小不可组成和的概念:把arr每个子集内的所有元素加起来会出现很多值, 其中最小的记为 min, 最大的记为max。在区间[min,max]上, 如果有数不可以被arr某一个子集相加得到, 那么其中最小的那个数是arr的最小不可组成和。在区间[min,max]上, 如果所有的数都可以被arr的某一个子集相加得到, 那么max+1是原创 2018-01-02 17:31:58 · 997 阅读 · 1 评论 -
Leetcode-330. Patching Array
问题描述:Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum of some elements in the array.原创 2018-01-03 10:56:08 · 200 阅读 · 0 评论 -
Leetcode-9. Palindrome Number
问题描述:Determine whether an integer is a palindrome. Do this without extra space.给定一个整数, 判断该数是否是回文数some hints: Could negative integers be palindromes? (ie, -1) If you are thinking of conver原创 2018-01-13 20:44:48 · 222 阅读 · 0 评论 -
Leetcode-264. Two Sum II - Input array is sorted
问题描述:Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two n原创 2018-01-22 14:46:45 · 204 阅读 · 0 评论 -
Leetcode-1. Two Sum
题目描述:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use th原创 2018-01-22 15:43:41 · 212 阅读 · 0 评论 -
链表调整问题
问题描述:给定一个链表list, 如果: list = 1 调整之后1。 list = 1->2 调整之后1->2 list = 1->2->3 调整之后1->2->3 list = 1->2->3->4 调整之后1->3->2->4 list = 1->2->3->4->5 调整之后1->3->2->4->5 list = 1->2->3->4->5->6 调整之后1->4-原创 2018-01-22 20:58:41 · 647 阅读 · 0 评论 -
N皇后(N-Queens)问题详解
具体见 LeetCode 的两道题。 LeetCode 51. N-QueensLeetCode 52. N-Queens II原创 2018-04-29 10:03:56 · 1730 阅读 · 0 评论