算法
文章平均质量分 66
ZPLearnToRock
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Divide and Conquer
1. 概念介绍与准备知识 最常见的分治法应用有快速排序(选择pivot),堆排序等。以堆排序为例,说明三个步骤: 将排序分解为对两个大小大致相同的数组排序 递归求解子问题,直至(n=1) 用merge函数将两个已经排序的数组合并接下来要讲一个重要的分治法复杂度分析定理,大师定理: 2.实例分析 用分治思想分析,分解为两步(没有第三步合并): 以一个数v(随机选定)将数组分为三部分,原创 2017-09-25 22:51:07 · 400 阅读 · 0 评论 -
Dynamic Programming(2)
Leetcode 72.Edit Distance 编辑距离问题是一个经典问题。具体的解决方法如下: 题目代码如下: class Solution { public: int minDistance(string word1, string word2) { const int m = word2.size(); const int n原创 2018-01-20 20:49:38 · 205 阅读 · 0 评论 -
Dynamic Programming(3)
Leetcode 91.Decode Ways 代码展示 class Solution { public: int numDecodings(string s) { int n = s.size(); if(n == 0 || s[0] == '0') return 0; if(n == 1) return 1; int res = 0,fn_1原创 2018-01-20 22:19:03 · 236 阅读 · 0 评论 -
Greedy Algorithm
贪心算法的定义: 经典问题:课程安排 Leetcode 630 伪代码: 代码实现: class Solution { public: int scheduleCourse(vector>& courses) { sort(courses.begin(), courses.end(), [](vector a, vector b){原创 2018-01-20 22:29:37 · 562 阅读 · 0 评论 -
DFS
首先给出有向无环图DFS的伪代码: Leetcode 329. Longest Increasing Path in a Matrix 代码如下: class Solution { public: int longestIncreasingPath(vector >& matrix) { int row = matrix.size();原创 2018-01-20 22:45:55 · 260 阅读 · 0 评论
分享