网易首页 > 网易号 > 正文 申请入驻

2024-03-30:用go语言,集团里有 n 名员工,他们可以完成各种各

0
分享至

2024-03-30:用go语言,集团里有 n 名员工,他们可以完成各种各样的工作创造利润,

第 i 种工作会产生 profit[i] 的利润,它要求 group[i] 名成员共同参与,

如果成员参与了其中一项工作,就不能参与另一项工作,

工作的任何至少产生 minProfit 利润的子集称为 盈利计划,

并且工作的成员总数最多为 n。

有多少种计划可以选择?因为答案很大,所以 返回结果模 10^9 + 7 的值。

输入:n = 5, minProfit = 3, group = [2,2], profit = [2,3]。

输出:2。

答案2024-03-30:

来自左程云。

灵捷3.5

大体步骤如下:

这三种算法都解决了一个问题,即在给定一组工作和利润以及员工的人数限制下,找出满足最低利润要求的盈利计划数量。以下是它们的大体过程:

profitableSchemes1:

1.递归函数对组合进行深度优先搜索,尝试每种工作的所有可能性,以达到满足最低利润要求的盈利计划。

f1

2.检查每种工作是否满足人数限制,并计算利润是否达到最低要求。

3.返回满足条件的计划数量。

profitableSchemes2:

1.使用动态规划方法,创建三维数组以保存中间结果。

dp

2.递归函数逐步填充数组,记录以当前工作和利润数为基础时的计划数量。

f2

dp

3.每次计算时检查数组中是否已有记录,避免重复计算。

4.返回最终计划数量。

profitableSchemes3:

1.同样采用动态规划,但只使用二维数组,减少额外空间的使用。

dp

2.从最后一个工作向前逐步计算满足条件的计划数量。

3.根据当前工作是否选择、人数是否足够、利润是否达标,更新动态规划数组中的值。

4.最终输出满足条件的计划数量。

复杂度分析:

  • •时间复杂度:
    • •profitableSchemes1: 由于是基于递归的深度优先搜索,时间复杂度较高,为指数级别,取决于工作数量和员工人数。
    • •profitableSchemes2: 使用了动态规划并记录了每个可能情况,时间复杂度为 O(m * n * minProfit),m 为工作数量,n 为员工人数。
    • •profitableSchemes3: 类似于第二种算法,但只使用了二维数组,时间复杂度也为 O(m * n * minProfit)。
  • •空间复杂度:
    • •profitableSchemes1: 仅有递归调用的栈空间,空间复杂度取决于递归深度。
    • •profitableSchemes2: 使用了三维数组,空间复杂度为 O(m * n * minProfit)。
  • dp
    • •profitableSchemes3: 使用了二维数组,空间复杂度为 O(n * minProfit)。
  • dp

Go完整代码如下:

packagemain
import"fmt"
funcprofitableSchemes1(nint,minProfitint,group[]int,profit[]int)int{
returnf1(group,profit,0,n,minProfit)
}
funcf1(g[]int,p[]int,iint,rint,sint)int{
ifr<=0{
ifs<=0{
return1
}else{
return0
}
}
ifi==len(g){
ifs<=0{
return1
}else{
return0
}
}
p1:=f1(g,p,i+1,r,s)
p2:=0
ifg[i]<=r{
p2=f1(g,p,i+1,r-g[i],s-p[i])
}
returnp1+p2
}
varmod=1000000007
funcprofitableSchemes2(nint,minProfitint,group[]int,profit[]int)int{
m:=len(group)
dp:=make([][][]int,m)
fora:=0;adp[a]=make([][]int,n+1)
forb:=0;b<=n;b++{
dp[a][b]=make([]int,minProfit+1)
forc:=0;c<=minProfit;c++{
dp[a][b][c]=-1
}
}
}
returnf2(group,profit,0,n,minProfit,dp)
}
funcf2(g[]int,p[]int,iint,rint,sint,dp[][][]int)int{
ifr<=0{
ifs==0{
return1
}else{
return0
}
}
ifi==len(g){
ifs==0{
return1
}else{
return0
}
}
ifdp[i][r][s]!=-1{
returndp[i][r][s]
}
p1:=f2(g,p,i+1,r,s,dp)
p2:=0
ifg[i]<=r{
p2=f2(g,p,i+1,r-g[i],max(0,s-p[i]),dp)
}
ans:=(p1+p2)%mod
dp[i][r][s]=ans
returnans
}
funcmax(x,yint)int{
ifx>y{
returnx
}
returny
}
funcprofitableSchemes3(nint,minProfitint,group[]int,profit[]int)int{
dp:=make([][]int,n+1)
forr:=0;r<=n;r++{
dp[r]=make([]int,minProfit+1)
dp[r][0]=1
}
m:=len(group)
fori:=m-1;i>=0;i--{
forr:=n;r>=0;r--{
fors:=minProfit;s>=0;s--{
p1:=dp[r][s]
p2:=0
ifgroup[i]<=r{
p2=dp[r-group[i]][max(0,s-profit[i])]
}
dp[r][s]=(p1+p2)%mod
}
}
}
returndp[n][minProfit]
}
funcmain(){
n:=5
minProfit:=3
group:=[]int{2,2}
profit:=[]int{2,3}
result1:=profitableSchemes1(n,minProfit,group,profit)
fmt.Println("ResultusingprofitableSchemes1:",result1)
result2:=profitableSchemes2(n,minProfit,group,profit)
fmt.Println("ResultusingprofitableSchemes2:",result2)
result3:=profitableSchemes3(n,minProfit,group,profit)
fmt.Println("ResultusingprofitableSchemes3:",result3)
}



声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
这谁顶得住嘛!刘涛这身材,这才是尤物啊!

这谁顶得住嘛!刘涛这身材,这才是尤物啊!

冷却爱情
2024-05-11 09:09:15
2比0横扫火力全开!17岁天才少女剑指大满贯,网友:超越郑钦文

2比0横扫火力全开!17岁天才少女剑指大满贯,网友:超越郑钦文

体坛知识分子
2024-06-05 06:05:02
单身美女26岁,黑色泳衣伴海边,性感撩人令人心动!

单身美女26岁,黑色泳衣伴海边,性感撩人令人心动!

室内设计师阿喇
2024-06-04 17:19:32
2024年四川省养老金调整细则会是怎样的?看一下过去两年的变化

2024年四川省养老金调整细则会是怎样的?看一下过去两年的变化

暖心人社
2024-06-04 22:08:10
普京发出重要警告

普京发出重要警告

鲁中晨报
2024-06-03 22:31:02
曝沈导“陪睡门”,聊天、录音全都有,网友:三观都没了!

曝沈导“陪睡门”,聊天、录音全都有,网友:三观都没了!

圈里的甜橙子
2024-06-05 05:45:18
辈分变了!萨内:孔帕尼在曼城就说未来当我的教练,当时我还不信

辈分变了!萨内:孔帕尼在曼城就说未来当我的教练,当时我还不信

直播吧
2024-06-05 01:00:09
75岁大妈坦言:到了晚年才发现,有存款和退休金,也成了一种负担

75岁大妈坦言:到了晚年才发现,有存款和退休金,也成了一种负担

拾代谈生活
2024-06-04 07:18:50
她曾被称东方第一美人,因太优秀无人追,33岁嫁给企业家老公!

她曾被称东方第一美人,因太优秀无人追,33岁嫁给企业家老公!

虾剪说剧
2024-06-05 06:10:02
声称不会被ST,如今锁定退市!监管出手

声称不会被ST,如今锁定退市!监管出手

中国基金报
2024-06-05 08:16:58
王朔:凡是找你借钱的人,90%人都是看你老实本分,以为你好欺负

王朔:凡是找你借钱的人,90%人都是看你老实本分,以为你好欺负

泸沽湖
2024-06-04 11:01:38
如果中国像德国一样,技工工资超过公务员,将会发生什么?

如果中国像德国一样,技工工资超过公务员,将会发生什么?

童童聊娱乐啊
2024-06-03 19:50:48
宝马腰斩式大降价背后突出什么隐情?

宝马腰斩式大降价背后突出什么隐情?

看看娱乐与体育
2024-06-04 22:25:37
全剧终!杨振宁亮出底牌,翁帆万般无奈,只能独自扬帆起航

全剧终!杨振宁亮出底牌,翁帆万般无奈,只能独自扬帆起航

娱乐白名单
2024-05-26 18:17:30
狂热追逐伊森!合计报价惊人,火箭有望放人

狂热追逐伊森!合计报价惊人,火箭有望放人

领袖阿尔弗图
2024-06-04 22:18:58
随着国足1-0击败越南男足,全场产生六大不可思议事件!

随着国足1-0击败越南男足,全场产生六大不可思议事件!

小豆豆赛事
2024-06-05 02:08:08
2024年全国参加高考的人数不到1000万

2024年全国参加高考的人数不到1000万

书中自有颜如玉
2024-06-04 19:08:11
男领导被开除当天,把办公室打扫后离开,第二天却接到老板的电话

男领导被开除当天,把办公室打扫后离开,第二天却接到老板的电话

侃故事的阿庆
2024-06-04 20:46:01
央视三胎宣传片惹争议,评论翻车了,网友:这就是为啥我们不想生

央视三胎宣传片惹争议,评论翻车了,网友:这就是为啥我们不想生

今日搞笑分享
2024-06-04 13:14:59
独孤求败!法网19连胜!斯瓦泰克赢得大满贯冠军之争,完胜晋四强

独孤求败!法网19连胜!斯瓦泰克赢得大满贯冠军之争,完胜晋四强

大秦壁虎白话体育
2024-06-04 20:33:44
2024-06-05 09:22:44
moonfdd
moonfdd
福大大架构师每日一题
411文章数 7关注度
往期回顾 全部

科技要闻

马斯克把特斯拉5亿美元AI芯片提前调拨给X

头条要闻

大选结果揭晓 印媒:莫迪浪潮崩溃 印度发生重大转变

头条要闻

大选结果揭晓 印媒:莫迪浪潮崩溃 印度发生重大转变

体育要闻

从英国联赛到NBA,两个美国人相爱相杀

娱乐要闻

杨幂留言为热巴庆生,姐妹情深惹人羡

财经要闻

六年四换帅,茅台到底经历了什么?

汽车要闻

2.0T+云辇-P+天神之眼 方程豹豹8还配软包内装

态度原创

艺术
亲子
家居
本地
教育

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

亲子要闻

有些事情总是惊人的相似,三年前的哥哥,vs三年后的弟弟!

家居要闻

简而不冷 明朗的治愈能量

本地新闻

我和我的家乡|踏浪营口,心动不止一夏!

教育要闻

重磅2025年度QS世界大学排名!高考志愿哪些双一流进入全球百强?

无障碍浏览 进入关怀版