![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 67
一些算法与数据结构
马达加斯加D
这个作者很懒,什么都没留下…
展开
-
排列和组合 Permutation and Combination
排列和组合 Permutation and Combination ---- Based on DFS and BacktrackingBasic ConceptsPermutationCombinationPermutationPermutation --- Leetcode 46String Permutation --- Lintcode 10CombinationSubsets (without duplicates) --- Leetcode 78Subsets II (with dupli原创 2021-02-07 21:40:26 · 1018 阅读 · 0 评论 -
高效维护一个有序数组
维护一个有序数组在数组大小是一定的情况下,也就是知道元素上限, 每次需要删除最大值或者最小值使用堆时间复杂度 O(logn)在不知道元素上限的情况下,数组大小不固定,元素值非常随机使用二叉树 时间复杂度 O(logn)但是当元素不够随机时,如有递增趋势,则效率会下降,时间效率会降至O(n)如果元素值不随机,可以使用自平衡二叉树,如红黑树时间复杂度 O(n)...原创 2021-08-11 11:52:25 · 691 阅读 · 0 评论 -
双指针 Two Pointers
双指针 Two Pointers双指针题型双指针题型原创 2021-01-19 18:04:32 · 506 阅读 · 0 评论 -
记忆化搜索 Memorization Search
记忆化搜索 Memorization Search什么是记忆化搜索记忆化搜索函数的三个特点记忆化搜索 vs 动态规划三种适用于DP的场景三种不适用于DP的场景Examples:Leetcode 140: 单词拆分 IILeetcode 44: 通配符匹配什么是记忆化搜索在递归函数中, 在函数返回前,记录函数的返回结果。在下一次以同样参数访问函数时直接返回记录下的结果也就是对递归树进行剪枝,遇到已经计算过的节点就不再继续往下计算,直接返回储存在hash table中的值记忆化搜索函数的三个特点原创 2021-03-04 20:09:38 · 1701 阅读 · 1 评论 -
二分查找 binarySearch
二分查找 binarySearch基本概念一般实现迭代法递归法First or Last Position of Target时间复杂度和空间复杂度如何取mid基本概念在一串有序数组中(上升或下降)找出一个key值。• 如果key小于中值,则继续查找左边(上升)或者右边(下降)• 如果key等于中值,则查找成功• 如果key大于中值,则继续查找右边(上升)或者左边(下降)一般实现迭代法public static int binarySearchRecursive(int key, int原创 2021-01-15 12:58:10 · 174 阅读 · 0 评论