![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
文章平均质量分 59
lccrun
这个作者很懒,什么都没留下…
展开
-
线性时间求解 最大间隙问题
问题描述:给定n个乱序的实数,求这些数在实数轴上相邻2个数之间的最大差值,假设对任何实数的下取整函数耗时O(1),设计解最大间隙问题的线性时间算法。思路:如果采用先排序,再求解最大间隙的方式,即使是采用堆排序,解处该问题的复杂度也在O(nlogn)。要在线性时间内求解,可以采用“鸽舍原理”,我们首先找到这组数的最大和最小值,将两个数之间的数轴分为n+1份,将这n个数依次放到这n+1个区间中,由...原创 2019-04-11 21:39:35 · 583 阅读 · 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 · 194 阅读 · 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 · 390 阅读 · 0 评论 -
分糖果问题
There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:Each child must have at least one candy....转载 2018-07-02 13:55:33 · 526 阅读 · 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 · 320 阅读 · 0 评论 -
求非连续最大子数组
题目:给出一个数组,求出最大非连续子数组,返回该子数组元素之和。要求子数组中元素在原数组中不能相邻。示例:数组{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 · 1199 阅读 · 0 评论 -
求最大子数组问题
题目:给定一个数组,求子数组中最大和,要求子数组中元素在原数组中是连续的。如数组{2,-1,3,5,-2}中{2,-1,3,5}为和最大子数组。思路:这道题是简单的动态规划问题,递推公式为sum = sum + arr[i] > arr[i] ? sum + arr[i] : arr[i]关键是若要与后面的元素组成一个新的子数组,自身不能为负数,不然还不如从arr[i]开始作为子数组的头。i...原创 2018-07-01 19:38:48 · 103 阅读 · 0 评论 -
求最大质因数
给出一个整数,求出其最大质因数。思路1:最蠢的方法是对所有小于该数的整数,判断是否为给出数的因数且为质数(最蠢的方法判断),然后输出最大的。这种方法的复杂度很高。思路2:可以使用该数的因数对该数进行分解,再继续对分解后的数求最大质因数,这样我们的计算量将极大缩小。int getMaxPrime(int n) { int i = 2; int res = 1; while (n > 2)...原创 2018-07-01 15:30:39 · 12990 阅读 · 2 评论 -
两人分糖果问题
题目描述:小明和小红是好朋友,但最近遇到一个棘手的问题,有一盒糖果要分成两份但是每颗糖果质量都不尽相同,但为了分配的公平每份糖的糖果数量相差不得超过1,在此条件下两份糖果的质量差距尽可能小。输入:一行数,包含一个数n,代表糖果数量,后面一次是n个整数一次表示每个糖果的质量,每个糖果的质量都是1到450之间的一个整数,每盒最多有20个糖果。输出:每个样例输出两个数字分别为两堆糖果的质量,如不相同,先...原创 2018-07-01 14:19:54 · 2195 阅读 · 0 评论 -
python 使用生成器打印出杨辉三角
原创 2019-03-14 16:03:15 · 596 阅读 · 0 评论