随笔分类 -  Algorithm

41. 缺失的第一个正数
摘要:1 // 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。 2 // 示例 1 : 3 // 输入 : [ 1, 2, 0 ] 输出 : 3 示例 2 : 4 // 输入 : [ 3, 4, -1, 1 ] 输出 : 2 示例 3 : 5 // 输入 : [ 7, 8, 9, 11, 12 ] 输出 : 1 6 // leetcode-cn.... 阅读全文

posted @ 2019-09-22 21:26 bug睡的略爽 阅读(138) 评论(0) 推荐(0)

蒙特卡洛方法
摘要:蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。 它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。 它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。 第一个例 阅读全文

posted @ 2016-03-22 21:25 bug睡的略爽 阅读(506) 评论(0) 推荐(0)

0-1背包问题详解
摘要:动态规划是用空间换时间的一种方法的抽象。其关键是发现子问题和记录其结果。然后利用这些结果减轻运算量。比如01背包问题。/* 一个旅行者有一个最多能用M公斤的背包,现在有N件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为P1,P2,...,Pn.若每种物品只有一件求旅行者能获得最大总... 阅读全文

posted @ 2011-02-15 18:06 bug睡的略爽 阅读(174) 评论(0) 推荐(0)

kruskal算法
摘要:kruskal算法其实也是和prim算法一样求无向图的最小生成树,也属于贪心算法,不过prim算法的复杂度为O(n^2),适用于稠密图,而kruskal算法的复杂度为O(eloge),适用于稀疏图。kruskal算法描述很容易理解,如下1.设连通网N=(V,{E}),令最小生成树初始状态为只有n个顶... 阅读全文

posted @ 2011-02-02 01:48 bug睡的略爽 阅读(310) 评论(0) 推荐(0)

prim算法
摘要:prim算法其实和dijkstra算法在实现上基本上一样,也很容易理解。prim算法的基本思想:取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w。在添加的顶点 w 和已经在生成树上的顶点v 之间必定存在一条边,并且该边的权值在所有连通顶点 v 和 w 之间的边中取值最小。之后继... 阅读全文

posted @ 2011-02-01 16:46 bug睡的略爽 阅读(243) 评论(0) 推荐(0)

dijkstra算法
摘要:dijkstra算法比较容易理解,但是代码有点复杂。求从源点到其余各点的最短路径的算法的基本思想:其中,从源点到顶点v的最短路径是所有最短短路径中长度最短者。路径长度最短的最短路径的特点:在这条路径上,必定只含一条弧,并且这条弧的权值最小。下一条路径长度次短的最短路径的特点:它只可能有两种情况:或者... 阅读全文

posted @ 2011-02-01 00:05 bug睡的略爽 阅读(271) 评论(0) 推荐(0)

floyd算法
摘要:最近开始学算法,感觉存在电脑总有些不安全,没办法,这不是自己的电脑。 对于最短路径算法,floyd的算法的代码无疑是最容易写出来的,代码量少,而且很简洁。 首先要明确floyd算法的思想:从Vi到Vj的所有可能存在的路径中,选出一条长度最短的路径。 若存在,则存在路径{vi,vj}。// 路径中不... 阅读全文

posted @ 2011-01-31 23:21 bug睡的略爽 阅读(201) 评论(0) 推荐(0)

导航