
算法
文章平均质量分 87
小胖子小胖子
这个作者很懒,什么都没留下…
展开
-
LeetCode – 3Sum — 题解
题干:Problem:Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in转载 2016-03-19 22:04:56 · 1060 阅读 · 0 评论 -
算法课笔记系列(九)——近似算法(Part1)
这一周的内容是近似算法(Approximation Algorithm)。对于许多的问题的算法,我们通常目标在于设计一个可以在多项式时间内运行的算法。然而,上一节的NP问题告诉我们这样的算法不一定存在。近似算法其实是针对NP难问题的一种退让,对于许多P不等于NP的最优化问题,无法在多项式时间内找到最优解。因此,如果可以只求一个我们可以接受的解,而不是非要最优解,那么可能存在一个多项式时间的算法原创 2016-06-01 17:11:33 · 29892 阅读 · 7 评论 -
算法课笔记系列(七)—— 平摊分析Amortized Analysis
本周的内容是Amortized Analysis,是对算法复杂度的另一种分析。它的基本概念是,给定一连串操作,大部分的操作是非常廉价的,有极少的操作可能非常昂贵,因此一个标准的最坏分析可能过于消极了。因此,其基本理念在于,当昂贵的操作也别少的时候,他们的成本可能会均摊到所有的操作上。如果人工均摊的花销仍然便宜的话,对于整个序列的操作我们将有一个更加严格的约束。本质上,均摊分析就是在最坏的场景下,对原创 2016-05-17 09:41:57 · 24528 阅读 · 0 评论 -
算法课笔记系列(六)—— 图(Part2)
这一周去了一趟说走就走的治疗之旅,所以算法课都没能上。跟上周一样,这一周的内容包含几个小部分,分别为最短路径动态规划、所有点对之间的最短路径和网络流。第一部分:最短路径动态规划对于一个有向图G=(V, E), 每一条边权重为cvw(权重可为负), 问题是找到从节点s到t的最短的路径。如果边的权重中有负值,则Dijkstra方法不适用。因此我们想到一个办法,给每一个权值加上一个正常数使得原创 2016-05-11 16:04:28 · 2561 阅读 · 0 评论 -
算法课笔记系列(五)—— 图(Part1)
半期后开始的第一个算法是图。这部分内容蛮多的,老师也讲的很快。所以写作业之前还是先梳理一下。这部分会分为两次课,这是第一部分。首先是图里最简单和经典的深度优先搜索(Depth-FirstSearch)和广度优先搜索(Breadth-First Search)。先需要了解一个对图的遍历。输入一个图G=(V, E), v ∈V,如果对从v出发的所有结点u都可达,那么VISITED(u)就设为t原创 2016-05-02 20:36:28 · 3374 阅读 · 0 评论 -
算法课笔记系列(一)—— 分治算法
首先必须强调的是,我是个算法渣,多少年了~~还是渣/(ㄒoㄒ)/~~这学期在上英文算法课,机缘巧合选了英文,觉得老师讲得还不错,所以没换到中文。想要通过这样总结一下加深算法理解,考试时也方便复习。第一次课是对学习算法课需要的数学基础知识的复习,如集合以及集合的操作,函数,关系等,和一些数学证明方法的介绍,包括通过构造证明,通过对照证明(举反例,找矛盾),通过案例证明(可以理解为分情况讨论证原创 2016-03-16 22:54:13 · 6402 阅读 · 2 评论 -
算法课笔记系列(0)——Prologue and Notation
为了准备周四的期中考试,所以花时间复习前面知识的同时,也一并写一篇,就当做复习笔记了。这一部分主要介绍了一些基本的定义和数学的证明方法。首先,定义了集合的定义:集合是一些无序元素的集合,具有确定性、互异性和无序性。然后介绍了一部分集合的一些基本概念,如集合的基数,如|S|表示集合S的基数,即元素的个数;两个集合相等S=T是指S中每一个元素都在T中,T中的每个元素也都在S中;子集(可以包含空原创 2016-04-11 20:15:50 · 1645 阅读 · 2 评论 -
算法课笔记系列(四)—— 动态规划
这两周都太忙,所以上周也没总结。这周一起补上。上周讲的是Matroid,一个非常抽象的概念,中文翻译为“拟阵”。这个内容放到下一篇博文中。这篇总结一下这周讲的“动态规划(Dynamic Programming, 简称DP)”。动态规划可以应用在生物信息学,控制理论,信息理论,运筹学(Operations research)和计算机科学中的理论、图像、人工智能、编译器等等。首先,对着之前的算原创 2016-04-02 22:18:20 · 5928 阅读 · 2 评论 -
LeetCode – 4Sum (Java)题解
Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.Note:Elements in a转载 2016-03-20 17:33:50 · 1425 阅读 · 0 评论 -
LeetCode – Two Sum (Java) —题解
题干:Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the targ转载 2016-03-19 20:31:27 · 1468 阅读 · 0 评论 -
算法课笔记系列(八)——NP问题及其计算复杂性
本周的内容是NP问题,NP的全称是Non-deterministic Polynomial,即多项式复杂程度的非确定性问题。百度上对NP的解释是,P/NP问题是在理论信息学中计算复杂度理论里至今没有解决的问题。通俗的说,是将不可知的问题转化为已知的问题,进而计算器复杂度。首先介绍多项式时间的约减,即Polynomial-Time Reductions,通过解决另一个不同问题的假设的子程序,使用原创 2016-05-24 10:36:47 · 16197 阅读 · 4 评论