算法和数据结构
文章平均质量分 69
自在时刻
为什么不能换头像啊啊啊
展开
-
leetcode:Find All Anagrams in a String 滑动窗口方法总结
今天做了几道滑动窗口的题,稍微总结一下。 起因源于早上在leetcode上pick one,随机到了一个easy的题目,想着随便做了,结果半天也找不到最优解,耗时300多ms,A是A了,不过就是暴力罢了。 题目是:Find All Anagrams in a String,链接在https://leetcode.com/problems/find-all-anagrams-in-a-string原创 2016-11-03 20:40:11 · 9137 阅读 · 0 评论 -
[LeetCode] Reconstruct Itinerary
题目 Given a list of airline tickets represented by pairs of departure and arrival airports [from, to], reconstruct the itinerary in order. All of the tickets belong to a man who departs from JFK. Thus原创 2017-02-07 23:37:07 · 458 阅读 · 0 评论 -
[LeetCode] 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 value. Exam原创 2017-01-17 11:28:21 · 443 阅读 · 0 评论 -
[LeetCode] Max Sum of Rectangle No Larger Than K
题目 Given a non-empty 2D matrix matrix and an integer k, find the max sum of a rectangle in the matrix such that its sum is no larger than k. Example: Given matrix = [ [1, 0, 1], [0,原创 2017-02-09 23:50:43 · 469 阅读 · 0 评论 -
kmp算法题解
题目是leetcode上的Implement strStr(),题目大意就是在字符串haystack中寻找字符串needle的是否存在,并返回位置。 地址是: https://leetcode.com/problems/implement-strstr/,可以用来训练一下KMP算法的实现。学习KMP算法的过程中,参考了这篇文章: http://blog.csdn.net/yutianzuiji原创 2016-11-11 15:35:22 · 598 阅读 · 0 评论 -
KMP的两种写法
KMP算法可以用来匹配模式字符串,或者寻找最小重复单元,比如abcabcabc,最小重复单元就是abc。qweqweqwe,最小重复单元是qwe。寻找最小重复单元就是计算出字符串的最长公共前缀的长度a,如果 a != 0 && len %(len-a) == 0即找到最小重复单元。详细内容见KMP算法 核心在于next数组的计算,因此列出getNext的不同计算方法。1、next[i]表示长度为i原创 2017-02-12 01:09:39 · 1098 阅读 · 1 评论 -
[Leetcode] Split Array Largest Sum
Given an array which consists of non-negative integers and an integer m, you can split the array into m non-empty continuous subarrays. Write an algorithm to minimize the largest sum among these m suba原创 2017-02-23 15:25:15 · 548 阅读 · 0 评论 -
[LeetCode] 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.原创 2017-02-01 23:53:40 · 296 阅读 · 0 评论 -
[LeetCode] Sliding Window Median
题目 Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So the median is the mean of the two middle value. Examples: [2,3,4] , the原创 2017-03-08 10:07:54 · 496 阅读 · 0 评论 -
[LeetCode] Remove Boxes
题目 Given several boxes with different colors represented by different positive numbers. You may experience several rounds to remove boxes until there is no box left. Each time you can choose some原创 2017-03-28 17:06:43 · 2310 阅读 · 0 评论 -
[LeetCode] Create Maximum Number
Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum number of length k <= m + n from digits of the two. The relative order of the digits from the same array原创 2017-03-15 10:13:02 · 631 阅读 · 0 评论 -
[LeetCode] Longest Increasing Subsequence
Given an unsorted array of integers, find the length of longest increasing subsequence. For example, Given [10, 9, 2, 5, 3, 7, 101, 18], The longest increasing subsequence is [2, 3, 7, 101], t原创 2017-02-06 01:01:02 · 317 阅读 · 0 评论 -
二分查找之美:二分查找及其变体的正确性以及构造方式
二分查找究竟有多重要?《编程之美》第2.16节的最长递增子序列算法,如果想实现O(n2)到O(nlogn)的时间复杂度下降,必须借助于二分算法的变形。其实很多算法都是这样,如果出现了在有序序列中元素的查找,使用二分查找总能提升原先使用线性查找的算法。然而,虽然很多人觉得二分查找简单,但随手写一写却不能得到正确的结果:死循环、边界条件等等问题伴随着出现。《编程珠玑》第四章提到:提供充足的时间,仅有约转载 2016-12-28 14:16:21 · 996 阅读 · 0 评论 -
[LeetCode]Inorder Successor in BST
题目: Given a binary search tree and a node in it, find the in-order successor of that node in the BST.返回一棵BST中给定节点的中序遍历后继节点。就是在中序遍历的顺序中,给定点下一个要遍历的点。方法一:直观逻辑在BST中,进行二分搜索,找到所给节点,然后判断: 1、所给节点p有右子节点,那么后继节原创 2017-01-04 13:16:25 · 390 阅读 · 0 评论 -
Basic Calculator相关问题
实现一个计算器,这种题目很大一种可能是使用栈,但是除此之外,也有一种类似于状态机的思想。Basic Calculator 1. Implement a basic calculator to evaluate a simple expression string.The expression string contains only non-negative integers, +, -, *原创 2016-12-11 16:29:09 · 404 阅读 · 0 评论 -
动态规划解题入门
动态规划是一种算法思想,刚入门的时候可能感觉十分难以掌握,总是会有看了题不知道怎么做,但是一看答案就恍然大悟的感觉。结合这一段时间的学习,在这里做一下总结。解题思路在解题的过程中,首先可以主动寻找递推关系,比如对当前数组进行逐步拉伸,看新的元素和已有结果是否存在某种关系。 对于没有思路的题目,求解可以分为暴力递归(回溯),记忆性搜索,递归优化,时间或空间最终优化四个阶段。 在碰到一道可以使用动态原创 2016-10-28 00:06:19 · 1986 阅读 · 0 评论 -
leetcode: Largest Rectangle in Histogram,Maximal Square,Maximal Square问题
Largest Rectangle问题题目描述Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.主要思路leetcode上主要的答案集中在:原创 2016-10-25 22:32:09 · 402 阅读 · 0 评论 -
Next Permutation
Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest possibl原创 2016-12-12 16:37:41 · 304 阅读 · 0 评论 -
二叉树常见问题整理
做leetcode二叉树的题目做了不少,觉得有必要总结一下。因为题型多归多,但其实无非就是dfs和bfs,总结一些常见的解法,对于加深这两周算法的理解很有帮助。 在做dfs的时候,主要思路是可以从上到下也可以从下到上,也就是分析每一个子树的根节点,然后分析该子树的内部子树或者外部子树的根节点,以此得出递归关系,也即是分治的思想。同时,对于每个节点的处理尝试利用前序、后序、中序遍历三种方法。 做b原创 2016-11-22 19:37:19 · 4664 阅读 · 0 评论 -
[LeetCode]Word Ladder II
WordLadder I Given two words (beginWord and endWord), and a dictionary’s word list, find the length of shortest transformation sequence from beginWord to endWord, such that: Only one lette原创 2016-12-22 21:47:04 · 389 阅读 · 0 评论 -
[LeetCode] Count of Range Sum
题目: Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive. Range sum S(i, j) is defined as the sum of the elements in nums between indices i and j (i ≤ j),原创 2016-12-22 01:00:07 · 550 阅读 · 0 评论 -
[Leetcode] Count of Smaller Numbers After Self
题目: You are given an integer array nums and you have to return a new counts array. The counts array has the property where counts[i] is the number of smaller elements to the right of nums[i].Example:G原创 2016-12-21 00:19:53 · 737 阅读 · 0 评论 -
回文串问题 Palindrome
回文串问题是一个常见的问题,回文串就是一个字符串头尾指针向中间移动时每一时刻指针指向的字符都相等,比如aabbaa。 判断一个回文串,最简单的方法就是如定义一样,给一个头尾指针,向中间移动判断就行,这里不赘述。 比较巧妙的是利用回文串的性质去解题。最长回文子串问题先看一道题目,地址: https://leetcode.com/problems/longest-palindromic-subst原创 2016-12-01 22:36:10 · 569 阅读 · 0 评论 -
[LeetCode]Meeting Rooms II
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],…] (si < ei), find the minimum number of conference rooms required. For example, Given [[0, 30],[5原创 2016-12-26 21:55:53 · 1852 阅读 · 0 评论 -
[leetcode] 树状数组 BIT
Binary Index Tree关于BIT,可以参考一篇文章: http://blog.csdn.net/int64ago/article/details/7429868。个人的理解是,相当于在原数组建立了一个具备原数组某些区间和的新的数组。这个数组类似于一个数,最上面的节点又下面的节点构成。比如原数组中ak,对BIT中某些节点有影响。构建树的时候从底向上 k += k & -k 更新BIT节点,原创 2017-03-26 15:43:46 · 942 阅读 · 0 评论