分治法基础 分治法(Divide and Conquer)顾名思义,思想核心是将问题拆分为子问题,对子问题求解.最终合并结果,分治法用伪代码表示如下: function f(input x size n) if(n < k) solve x directly and return else divide x into a subproblems of size n/b call f recursively to solve each subproblem Combine the results…
链接:https://leetcode.com/tag/divide-and-conquer/ [4]Median of Two Sorted Arrays [23]Merge k Sorted Lists [53]Maximum Subarray (2019年1月23日, 谷歌tag复习) 最大子段和. 题解: follow up 是divide and conquer If you have figured out the O(n) solution, try coding another…
在计算机科学中,分治法是一种很重要的算法.分治法即『分而治之』,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并.这个思想是很多高效算法的基础,如排序算法(快速排序,归并排序)等. 分治法思想 分治法所能解决的问题一般具有以下几个特征: 问题的规模缩小到一定的程度就可以容易地解决. 问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质. 利用该问题分解出的子问题的解可以合并为该问题的解.…
[10]Regular Expression Matching [17]Letter Combinations of a Phone Number [22]Generate Parentheses (2019年2月13日) 给了一个N,生成N对括号的所有情况的字符串. n = 3 [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 题解:dfs生成. c…
第一部分---线段树:https://leetcode.com/tag/segment-tree/ [218]The Skyline Problem [307]Range Sum Query - Mutable [308]Range Sum Query 2D - Mutable [315]Count of Smaller Numbers After Self [493]Reverse Pairs [699]Falling Squares (我的线段树第一题,2019年1月24日) 在 X 轴上落…
[208]Implement Trie (Prefix Tree) (2018年11月27日) 实现基本的 trie 树,包括 insert, search, startWith 操作等 api. 题解:<程序员代码面试指南>chp5, 最后一题. 里面讲了怎么实现.这个就看代码吧.没啥好说的了. class Trie { public: /** Initialize your data structure here. */ Trie() { root = new TrieNode(); }…
[2]Add Two Numbers (2018年11月30日,第一次review,ko) 两个链表,代表两个整数的逆序,返回一个链表,代表两个整数相加和的逆序. Example: Input: ( -> -> ) + ( -> -> ) Output: -> -> Explanation: + = . /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *…
[98]Validate Binary Search Tree [99]Recover Binary Search Tree [100]Same Tree [101]Symmetric Tree [104]Maximum Depth of Binary Tree [105]Construct Binary Tree from Preorder and Inorder Traversal [106]Construct Binary Tree from Inorder and Postorder T…
[384]Shuffle an Array(2019年3月12日) Shuffle a set of numbers without duplicates. 实现一个类,里面有两个 api,structure 如下: class Solution { public: Solution(vector<int> nums) { } /** Resets the array to its original configuration and return it. */ vector<int&g…
[207]Course Schedule [210]Course Schedule II [269]Alien Dictionary [329]Longest Increasing Path in a Matrix [444]Sequence Reconstruction…