- 博客(21)
- 资源 (6)
- 收藏
- 关注
原创 加油站(贪心算法)
1.贪心策略: 总存在一个加油站,仅用它的油就足够跑到下一个加油站(否则所有加油站的油量加起来将不够全程)。把下一个加油站的所有油都提前搬到这个加油站来,并把油已被搬走的加油站无视掉。在剩下的加油站中继续寻找油量足以到达下个加油站的地方,不断合并加油站,直到只剩一个加油站为止。显然从这里出发就能顺利跑完全程。2.贪心选择性: 每次选择邮箱足以到达下个加油站的地方。 归纳法证明
2018-06-25 22:39:37
2982
原创 机器学习入门指南
人工智能入门基础算法类公开课:台湾大学林轩田《机器学习》 http://c.open.163.com/coursera/courseIntro.htm?cid=1664斯坦福大学吴恩达《机器学习课程》公开课 https://www.coursera.org/learn/machine-learning加州理工《从数据中学习》http://open.163.com/special/opencours...
2018-06-25 22:36:52
466
原创 python word转pdf pdf批量合并
工作平台:window10工作环境:python2.7.13python 开发包:pywin32 /pypdf2 开发包下载命令:pip install pywin32/pip install pypdf2若出现pywin32无法安装的情况,请下载whl包:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32,使用管理员权限进行安装源代码:# -...
2018-04-08 16:24:56
2044
原创 2018校招 腾讯/百度/网易/京东 算法岗(机器学习、数据挖掘)面试准备找工作总结
不知不觉中,2018校招已经进入了中后期,各大互联网公司都完成了宣讲会,总的来说今年的就业形势不如去年,今年算法岗位找工作还算可以,开发岗位找工作相对较难,一方面是因为开发岗位需求量不是很大,另一方面在于目前互联网行业已经快趋向于饱和。目前的就业形式是各大公司都从最初的技术拓张期不如了资本扩张期,技术拓张期必然带动岗位的需求,资本扩张期就不需要太多的岗位,内部阶层相对固化,发展趋向于稳定。所以预测
2017-09-17 11:10:47
8465
7
原创 windows7 pip *.whl is not a supported wheel on this platform解决方案
windows7 pip *.whl is not a supported wheel on this platform解决方案在windows7中使用pip安装whl包时可能会出现平台不支持的问题,明明电脑是64位的为什么安装不上,这其实和你电脑Python平台有关系,需要安装和你Python平台相匹配的whl包,这个问题常出现在Python2.7中。python 版本查看Python平台版
2017-07-06 11:36:04
3173
原创 近似算法 集合覆盖问题代码实现 基于贪心策略 基于线性规划策略
一、 实验目的1. 掌握近似算法的基本思想与方法2. 掌握集合覆盖问题近似算法的设计思想和方法3. 熟练使用高级编程语言实现近似算法4. 利用实验测试给出不同近似算法的性能以理解其优缺点。二、 实验内容1.集合覆盖问题:输入:有限集X,X的自己合族F,X=US∈FS输出:C包含于F,满足(1) X=US∈FS(2) C是满足条件(...
2017-05-31 10:46:05
6207
9
原创 最小哈密顿环 广度优先 深度优先 爬山法 分支界限法 代码实现
实验内容:1、哈密顿环问题:(a)实现基于树的基本搜索算法,主要实现广度优先搜索和深度优先搜索(b)在树搜索中利用爬山法的思想,考虑在搜索过程中如何选择节点进行展开搜索,设计并实现搜索的“个性化”优化策略2、最小哈密顿环问题:实现求解最小哈密顿环问题的分支界限算法实验过程及结果(matlab):1、N个节点的无向图随机生成可以按照两种类型生成,第一种为0,1
2017-05-29 09:48:57
4202
原创 python3.5.2中pycharm中pip install xgboost出现No files/directories in...
在命令行窗口中或者在pycharm中pip install xgboost等包时可能会出现no files/directories等等问题,可以通过以下方法解决1.现实出现pip版本不符可以更新版本命令:python -m pip install --upgrade pip通过命令:pip --version 可以查看版本2.目标目录不存在问题下载whl文件,文件地址:ht
2017-04-21 21:52:01
6357
原创 求解两个数组中总体平均的差的绝对值和最小
1.贪心策略: 由于需要最小化公式,所以对于A中的数需要求其在B中差值最小的。由此的具体方案,对A和B进行排序,这在A中的第i个数分配B中第i个数进行求差值。2.贪心选择性: 给A中最小的数分配一个B中最小的数,然后在剩余的数组中重复配对,就能得到最小的绝对差值和 证明: 取i,j 是A中最小和i!=j的两个下标,且i<j,按照贪心策略配对,绝对差值为abs=|A[i
2017-04-05 20:20:00
2606
原创 x轴上树立了n块木板,他们的高度为H[i],求任意两块木板和x轴组成的容器,盛水量最大是多少
1.贪心策略: 从两段开始寻找盛水量最大值。定义两个指针i和j分别指向左端和右端,计算盛水量w =(j-i)*min(H[i],H[j]).然后指向短板的指针向内走一步,重新计算盛水量直到两指针相遇,取其中盛水量最大的作为最后的结果。2.贪心选择性: 为求盛水量的最大值,由于木桶的短板效应,放弃短板,向内寻找最大的盛水量。 证明: 盛水量的大小是和x轴距离和短板的长度
2017-04-05 20:04:55
994
原创 环路上有N个加油站,每个加油站有汽油gas[i],从每个加油站到下一个消耗cost[i],求到从哪儿个加油站出发
1.贪心策略: 总存在一个加油站,仅用它的油就足够跑到下一个加油站(否则所有加油站的油量加起来将不够全程)。把下一个加油站的所有油都提前搬到这个加油站来,并把油已被搬走的加油站无视掉。在剩下的加油站中继续寻找油量足以到达下个加油站的地方,不断合并加油站,直到只剩一个加油站为止。显然从这里出发就能顺利跑完全程。2.贪心选择性: 每次选择邮箱足以到达下个加油站的地方。 归纳法证明
2017-04-05 20:03:37
4874
原创 windy定义了一种windy数,不含前导零且前两个数字只差至少为2的正整数被称为windy数,求A和B之间windy数的个数
windy定义了一种windy数,不含前导零且前两个数字只差至少为2的正整数被称为windy数,求A和B之间windy数的个数1.优化子结构: 记d[i,j]代表i位数,其中最高位为j的Windy数个数,当最高位确定为j,根据定义,剩下的i-1位的最高位k必定与j相差2,,即d[i,j]=∑d[i-1,k](0≤k≤9且|k-j|≥2)。其中d[i-1,k]即为i-
2017-03-29 21:58:51
1626
原创 考虑三个字符串的X、Y、Z的最长公共子序列LCS(X,Y,Z)
考虑三个字符串的X、Y、Z的最长公共子序列LCS(X,Y,Z)1.举反例三个字符串分别为abc、cab、c,前两个的最长公共子序列为ab,ab和c的公共子序列为空,实际上他们都有一个字符c,所以这种做法是错误的。2.动态规划解法 其实单个字符串的最长公共子序列的算法和两个字符串的算法是一样的,只不过存子问题的时候用的是三维数组。伪代码如下:function LCS(A,B,C)
2017-03-29 21:58:09
4209
7
原创 正整数n可以拆分成若干个正整数之和,考虑拆分方案的个数
正整数n可以拆分成若干个正整数之和,考虑拆分方案的个数。1.证明当对一个数i拆分,选择j为拆分点,这其可对1~j-1拆分,也可对i-j~i进行查分。记g(i,j)表示拆分整数i时最大加数不超过j的方案个数,则g(i,j) = g(i,j-1)+g(i-j,j).2.伪代码function NumCut for i=1 to ng[i,1] = i; for
2017-03-29 21:57:02
14065
1
原创 假设有一个梯子,梯子有n层,每次可以爬1层或者2层,求有多少不同的爬梯方式
假设有一个梯子,梯子有n层,每次可以爬1层或者2层,求有多少不同的爬梯方式。1.优化子结构 如果g(n)为爬n阶的方法数,如果爬n层的时候最后达到第n层有两种方法,爬一层或者爬两层,如果爬一阶,其方法数是g(n-1),如果爬二阶,其方法数是g(n-2),即g(n) = g(n-1)+g(n-2).证明:假设g(n-1)不是跳上前n-1阶的方法个数,这里设g’(n-1)>g(n-1)
2017-03-29 21:55:17
4871
原创 给定字符串S,是的每个子串为回文子串,求最小划分次数
给定字符串S,是的每个子串为回文子串,求最小划分次数。1.优化子结构证:g[i,j]不为第i个和第j个构成的子串中回文串的最小分割次数,假设存在g’[i,j],g’[i,j]为最小分割次数,记g[j,s]为j到s的字符串的回文字符串最小分割次数,那么g’[i,s]=g’[i,j]+g’[j+1,s]+1这与g[i,j]为最小次数相矛盾,所以假设不成立,即g[i,j]为从i到j的的最小分割次
2017-03-29 21:54:01
1729
1
原创 分治法:给定平面上n个白点和n个黑点,试s合计一个分治算法江每个白点和黑点向量,所有连线互不相交
自己分析:采用分治方法,寻找合适的中间界限,将大区间问题分成左右两个子区间,不通过递归过程求解。当然在其中的选择方式有很多,我们只要找到其中一种就可以。具体思路就是把大问题分解成两个子问题,然后从子问题中递归计算。这道题也可以采用贪心算法求解,这里主要考虑分治算法。算法分析:我们设P1..Pn为白点,Pn+1..P2n为黑点。我们采取分治采取分治策略寻找序列[Pp..Pr]中的配对方案(初
2017-03-22 16:10:00
6712
原创 求数组中的逆序对 分治法
题目分析:先求前面一半数组的逆序数,再求后面一半数组的逆序数,然后求前面一半数组比后面一半数组中大的数的个数(也就是逆序数),这三个过程加起来就是整体的逆序数目了。这类似与归并排序,归并排序的思想就是把前一段排序,后一段排序,然后再整体排序。而且,归并排序的规程中,需要判断前一半数组和后一半数组中当前数字的大小。这也就是刚刚描述的逆序的判断过程了。如果前一半数组的当前数字大于后一半数组的当前数字,
2017-03-22 16:07:38
1799
原创 分治法:求给定数组A[1:n]的最大连续子数组
算法分析:将数组从中间分开,则最大子数组要么完全在左半边数组,要么在右半边数组,要么跨立在中间的分界点上,如果完全在左或右半边数组,用递归解决,如果跨立在分界点上,则一定包含左半边数组的最大后缀和右半边数组的最大前缀,因此可以从分界处向前后扫。复杂度:时间复杂度O(nlogn),空间复杂度O(1)实现步骤:int MaxSubArray(int A[],int begin,int en
2017-03-22 16:06:20
2073
原创 C++快速排序实现
快速排序快速排序使用的是分治思想,采用递归实现。#include <iostream>using namespace std;void Partition(int* data,int begin,int end){ if(end-begin<=0) return; int l = begin; int r = end; int small = l
2016-12-31 20:26:45
481
翻译 Python-sklearn入门
Python-SKLearn入门本文主要来自Sklearn官网中的文档说明,详细文档请访问该网址[http://scikit-learn.org/dev/tutorial/basic/tutorial.html] 本文构成:Python-SKLearn入门加载样本数据集学习预测模型持久化模型保存安全性和可维护局限规则类型转换refitting和更新参数多分类加载样本数据集 S
2016-12-01 22:20:47
3483
编译原理实验报告和源代码
2015-11-08
JavaEE实验
2015-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人