- 博客(19)
- 收藏
- 关注
原创 科普论文:漫谈社团检测
1 引言社团检测(Community Detection,又译作社区发现)是一种在网络中找出关系密切的结点的集合(社团)的技术。随着当今互联网尤其是社交网络的发展,这一研究领域也越来越被人们所重视。目前已经有多种用于进行社团检测的方法,而随着大数据时代网络规模的急剧增大,社团检测领域的发展也迎来了新的挑战和机遇。 2 社团和社团检测2.1 网络中的社团 什么是...
2018-07-30 11:40:55 8656 6
原创 读书笔记:Overlapping Community Detection at Scale: A Nonnegative Matrix Factorization Approach
本文是对在2013年ACM大会上发表的一篇论文所做的读书笔记,原文可以查看:https://www.researchgate.net/publication/262272761_Overlapping_community_detection_at_scale_a_nonnegative_matrix_factorization_approach 文章概述 ...
2018-07-30 11:39:21 6494 3
原创 Exactly 4SAT
算法概论第八章习题8.8:证明精确的4SAT为NP完全问题首先了解精确的4SAT的定义:In the EXACT 4SAT problem, the input is a set of clauses, each of which is a disjunction of exactly four literals, and such that each variable occurs at m
2017-07-14 23:28:08 447
原创 robber问题的动态规划解法
接上一篇:http://blog.csdn.net/coronia/article/details/73173765在此之后,本人在一次测试中也遇到了类似的问题。这一次,我参考了该题的思路并写下了如下动态规划方法:06.classSolution {07.public:08. intmaxSum(vectorint>& A) {09.
2017-06-26 02:19:56 515
原创 对House Robber问题的探究
题目要求:假设强盗要掠夺一排房子,但掠夺相邻的房子会触发警报。每座房子里的财产已知,问在不触发警报情况下可以获得的财产总量。即:对于一个数列,求一个子列,满足子列中各元素在数列中不相邻,同时使其和最大。本人采用了递归算法求解:首先考虑掠夺该座房子后接下来发生的事。由于直接跳到四个房子之后可以分解为分别跨越两个,而这样显然收益更大。因此,这里的跳跃情况只有两个:跳到下两个或下三个。
2017-06-13 12:53:06 405
原创 常规算法解决矩阵内路径问题
https://leetcode.com/problems/unique-paths/https://leetcode.com/problems/unique-paths-ii/这两道题都要求找出从矩阵左上到右下的所有路径,不同之处在于第二题有障碍物。用和解决矩阵最短路径类似的方法:创建一个计数二维向量,记录到达每一个格子的最大路径数。在左边和上边的格子路径数自
2017-05-31 00:38:41 767
原创 常规算法解决矩阵内最短路径问题
问题描述:给定一个整数二维数组,要求算出从左上角到右下角的“最短路径”。即每次移动只能取相邻元素,而要保证总路线经过的元素之和最小。这道题本来可以用动态规划来做,但是本人采用了比较容易理解的常规算法:先创造一个用于计数的二维向量,使其大小与目标矩阵一致,然后,由于求最短路径的情况下,左侧和上面的一行一列必定是取它左边/上面的元素与自身之和,因此先算出这两条边。而对于矩阵内部的元素,其取
2017-05-24 09:15:35 2994
原创 Arithmetic Slices
https://leetcode.com/problems/arithmetic-slices/该题会给出一个递增数组,要求你找出所有长度大于三的,并且其中各相邻元素差值相等的数组。例如对于数组[1,2,3,4],满足条件的数组即为[1,2,3], [2,3,4], [1,2,3,4]我采用的算法是从第三位开始遍历这个递增数组,比较该位置与其上两位之间的差值。若两者相同,则
2017-05-20 00:21:55 299
原创 Super Washing Machines
https://leetcode.com/problems/super-washing-machines/该题目会给出一个数组,然后让它的所有元素都转化为它们的平均值。要求每次进行转换时,只能是某个元素往相邻的一个元素给出1.一次操作时,每个元素都允许同时进行最多一次的操作,问最少的操作数。首先先判断能否取平均数,即构建一个向量,向量的每一项都是上一项与该项对应的数组元素之
2017-05-15 01:35:03 486
原创 最长连续序列
https://leetcode.com/problems/longest-consecutive-sequence/该题目要求从一个数组中找出可以组成的最长连续序列,即该序列的所有元素每次递增1,要求输出这个序列的长度。首先将这个数组由大到小排序。之后通过遍历数组,比较当前元素和上一个的大小来判断是否为连续序列。判断的结果有三种:1、相差为1,则表明连续,计数值加1;2、相差为0
2017-05-02 22:31:22 378
原创 糖果问题的一种解法
https://leetcode.com/problems/candy/该题目可以简单概括为:有一个向量A,现要求你填入另外一个对应的向量B,使得对于B中的每一个元素B[i],都能够满足A[i-1], A[i]和A[i+1]之间的大小关系。问B中元素之和最小可以是多少。显然,要想让总和最小,最好的方法是让相邻的元素之差为1,构成一个“斜坡”。但是这道题并没有看起来的那么容易。我一开
2017-04-25 02:04:40 795
原创 Queue Reconstruction by Height
https://leetcode.com/problems/queue-reconstruction-by-height/,不知道这题的中文名叫什么好:P该题简单来说就是给一系列的二元组,要求将二元组重新排列,使得对于每一个位置,在它之前位置的第一元素大于改位置的个数恰等于该位置的第二元素。采用贪心算法,即首先将第一元素较大的集中起来,这样一来就可以减少后面第二元素的“开支”。即设
2017-04-17 23:24:11 335
原创 Trapping Rain Water
原题地址:https://leetcode.com/problems/trapping-rain-water/该题会给出一个整数类型的向量,模拟的是高度。如果有下雨的话,那雨水就会被收集在低洼的地带。现要计算一个这样的向量能够“收集”多少雨水。首先考虑单向遍历向量的方法,这样若低洼的右端高于左端,即可以进行正常统计;但是反过来说,若左端高于右端,则无法进行统计。于是改用双向遍历法,从头
2017-04-09 22:58:25 511
原创 DFS的进一步运用——扫雷问题
原题目:https://leetcode.com/problems/minesweeper/该题用一个二维字符向量来模仿扫雷游戏。一开始有地雷的地方会填上M,其他的则是B。当点击一个格子,即输入它的坐标时,如果该点是地雷,则会变成X;若不是,则会揭示与其相连的所有非地雷的格子,并将靠近地雷的格子进行数字标识,数值为周围地雷的个数。该题可以使用深度优先算法解决:对于一个不是地雷的格子,可以对
2017-04-05 23:28:43 791
原创 用DFS解决两个二叉树问题
原题地址:https://leetcode.com/problems/find-bottom-left-tree-value/https://leetcode.com/problems/find-largest-value-in-each-tree-row/这两道题都要求用DFS进行二叉树的操作。第一题要求找到二叉树最底层的最靠左的元素,第二题则要求找到二叉树每一层的最
2017-03-27 01:00:34 539
原创 用栈进行二叉树的后序遍历
原题:https://leetcode.com/problems/binary-tree-postorder-traversal/本题要求对二叉树进行后序遍历。一般来说,如果是用直接输出的方式进行,则非常简便:先先后对左右两侧结点进行遍历,之后将当前元素输出,然后递归代回即可。但是本题目则要求将结果存至向量内输出。一开始我试图采用原本的方法,但是这样只能输出最左边的结点。代码如图:
2017-03-19 23:56:16 3920 1
原创 Is Subsequence
原题目:https://leetcode.com/problems/is-subsequence本题其实非常简单:先取s的第一个元素,对t进行遍历,如果有匹配该元素的就代入第二个元素,然后在此基础初上继续遍历。当遍历过程完成后,判断是否所有的元素都被遍历即可。但是做这道题时,我一开始没看清题意,以为是“只要t里含有s的元素”就行,没有考虑到顺序。因此我一开始采用的做法是先排序后二分
2017-03-13 21:13:43 296
原创 判断一个数字是否在升序矩阵中
原题:https://leetcode.com/problems/search-a-2d-matrix-ii/该题目要求输入二维向量形式的矩阵matrix以及数字target,要求判断target是否在该矩阵里。本题的特点在于矩阵为升序,即从左到右,从上到下都是递增的。利用这一特点,我们就可以跳过繁琐的遍历过程,使用简便的方法来查找到该元素。假设我们从开头开始搜索,那么如果该元素小于目
2017-03-06 01:08:15 1328
原创 Brutal Force求解向量形式的数独
原题目出自:https://leetcode.com/problems/sudoku-solver该题目是求解数独问题,而这个数独则用向量形式存储。本人曾经查过网上的一些代码,基本上都是用于解决二维数组形式的数独。于是本人结合之前参考的一些资料,设计出了向量形式数独的解法。与网上通用的解法相比,这种解法使用了暴力求解,代码上是轻松了不少,不过效率可能会相对低一些。这里我用了
2017-02-26 20:59:08 990
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人