c++
文章平均质量分 55
lccrun
这个作者很懒,什么都没留下…
展开
-
求最大质因数
给出一个整数,求出其最大质因数。思路1:最蠢的方法是对所有小于该数的整数,判断是否为给出数的因数且为质数(最蠢的方法判断),然后输出最大的。这种方法的复杂度很高。思路2:可以使用该数的因数对该数进行分解,再继续对分解后的数求最大质因数,这样我们的计算量将极大缩小。int getMaxPrime(int n) { int i = 2; int res = 1; while (n > 2)...原创 2018-07-01 15:30:39 · 13232 阅读 · 2 评论 -
求非连续最大子数组
题目:给出一个数组,求出最大非连续子数组,返回该子数组元素之和。要求子数组中元素在原数组中不能相邻。示例:数组{3,5,7,9,-2},最大非连续子数组为{5,9},返回14.思路:使用max数组记录截止到第i个元素时,最大非连续子数组元素之和,max[0]=arr[0],max[1]=Max(max[0],arr[1]), max[i]=Max(max[i-1],max[i-...原创 2018-07-02 11:26:01 · 1246 阅读 · 0 评论 -
数组子元素之和问题
题目:给定一个数组和一个数字,判断数组中是否有子元素之和为该数字。如数组{3,5,7,9},给出数字6,返回False,给出数字8,返回True.int IsFit(vector<int> arr,int sum,int i) { if (sum == 0) return true; else if (arr[i] == sum) return true; else if (...原创 2018-07-02 13:21:53 · 351 阅读 · 0 评论 -
01背包问题
01背包问题描述:有编号分别为a,b,c,d,e的五件物品,它们的重量分别是2,2,6,5,4,它们的价值分别是6,3,5,4,6,每件物品数量只有一个,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和?思路:采用递归的方式,将问题分解为多个子问题,先解决子问题,然后层层向上解决出原问题。例如在背包还能承重10,还有5件物品时可以装入物品的最大价值总和的问题分解为物品e不装入背...原创 2018-07-02 15:30:59 · 421 阅读 · 0 评论 -
完全背包问题
完全背包问题描述:有编号分别为a,b,c,d的四件物品,它们的重量分别是2,3,4,7,它们的价值分别是1,3,5,9,每件物品数量无限个,现在给你个承重为10的背包,如何让背包里装入的物品具有最大的价值总和?分析:物品数量无限个,则在取完一种物品后,还要看是否还能再取该物品,以及取了该物品后背包中总物品的价值和不取该物品后背包中总物品的价值,递推公式为status[i][j]=Max{statu...原创 2018-07-05 18:29:58 · 223 阅读 · 0 评论