首页 > 其他分享 >2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。 在筛选过程中,每轮选择一个孩子时,所有尚未选

2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。 在筛选过程中,每轮选择一个孩子时,所有尚未选

时间:2024-09-10 10:23:13浏览次数:13  
标签:幸福 04 int 孩子 复杂度 go happiness


2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。

在筛选过程中,每轮选择一个孩子时,所有尚未选中的孩子的幸福值都会减少 1。需要注意的是,幸福值不能降低到负数,只有在其为正数时才能减少。

我们的目标是尽可能使选中的k个孩子的幸福值之和最大化。

输入:happiness = [1,2,3], k = 2。

输出:4。

解释:按以下方式选择 2 个孩子:

1.选择幸福值为 3 的孩子。剩余孩子的幸福值变为 [0,1] 。

2.选择幸福值为 1 的孩子。剩余孩子的幸福值变为 [0] 。注意幸福值不能小于 0 。

所选孩子的幸福值之和为 3 + 1 = 4 。

答案2024-09-04:

chatgpt

题目来自leetcode3075。

大体步骤如下:

1.对孩子的幸福值数组 happiness 进行降序排序。

2.从排序后的数组中选择前 k 个幸福值最高的孩子。这些孩子的幸福值之和即为所求。

3.在选出的 k 个孩子中,逐个孩子判断幸福值是否大于等于当前所在位置的索引值,如果是,将幸福值与当前索引值相减,并累加到最终的结果中,表示该孩子的贡献幸福值。

4.最终返回累加的结果作为最大化幸福值之和的输出。

时间复杂度分析:

  • 排序的时间复杂度为 O(n*log(n)),n 为孩子的数量。
  • 选 k 个孩子时,需要遍历最多 k 个元素,时间复杂度为 O(k)。
  • 因此,总的时间复杂度为 O(n*log(n) + k)。

空间复杂度分析:

  • 需要常量级别的额外空间来进行计算,因此总的额外空间复杂度可以看作是 O(1)。

Go完整代码如下:

package main

import (
	"fmt"
	"slices"
)

func maximumHappinessSum(happiness []int, k int) (ans int64) {
	slices.SortFunc(happiness, func(a, b int) int { return b - a })
	for i, x := range happiness[:k] {
		if x <= i {
			break
		}
		ans += int64(x - i)
	}
	return
}

func main() {
	happiness := []int{1, 2, 3}
	k := 2
	fmt.Println(maximumHappinessSum(happiness, k))

}

2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。 在筛选过程中,每轮选择一个孩子时,所有尚未选_后端

Rust完整代码如下:

fn maximum_happiness_sum(happiness: &mut Vec<i32>, k: usize) -> i64 {
    happiness.sort_by(|a, b| b.cmp(a));
    let mut ans: i64 = 0;

    for (i, &x) in happiness.iter().take(k).enumerate() {
        if x <= i as i32 {
            break;
        }
        ans += x as i64 - i as i64;
    }

    ans
}

fn main() {
    let mut happiness = vec![1, 2, 3];
    let k = 2;
    println!("{}", maximum_happiness_sum(&mut happiness, k));
}

2024-09-04:用go语言,给定一个长度为n的数组 happiness,表示每个孩子的幸福值,以及一个正整数k,我们需要从这n个孩子中选出k个孩子。 在筛选过程中,每轮选择一个孩子时,所有尚未选_开发语言_02


标签:幸福,04,int,孩子,复杂度,go,happiness
From: https://blog.51cto.com/moonfdd/11969551

相关文章

  • 在执行django定时任务中,遇到的celery woker生命周期问题
    在执行django定时任务中,遇到的celerywoker生命周期问题问题描述:当我celeryworker正常启动时,我的定时任务在admin也正常跑,可总是跑完之后和预期结果对不上,结果我发现了个问题,只能在生产环境测的出来,本地一点问题也没有,先看代码。我的定时任务task.py部分代码如下:frompo......
  • 离线标注 - mastergo - 资源社区 - 插件广场 (设计稿打包离线页面)- marklion+figma 平
    离线标注-mastergo-资源社区-插件广场(设计稿打包离线页面)-marklion+figma平替同事用的标记狮marklion做的设计稿,离线包特别好,但是需要配合figma或者苹果的设计器。国内的话,可以用mastergo里面有个离线标注插件,功能一样。又找了个xd的下载,回头试试和mar......
  • COMP2230/COMP6230 Algorithms
    TheUniversityofNewcastle,AustraliaSchoolofInformationandPhysicalSciencesCOMP2230/COMP6230AlgorithmsAssignment1Marks100Weight15%IndividualSubmissionviaCanvas1LearningOutcomesThisassignmentwillrequirestudentsto:Applyspecific......
  • PHP 程序员学会了 Go 语言就能唬住面试官吗?
    大家好,我是码农先森。唬住了50k,唬不住就5k。这句话一直是PHP程序员之间相互吹捧、吹牛逼的笑点,每次面试过后都会挠挠头上仅剩的几根头发,回想自己是否吹牛逼会过了头。我经常在微信程序员撕逼群里,看到群友因为某个技术点而争执不休,时而讨论这个技术能不能在面试过程中突出自......
  • Python与Go在AIGC领域的应用:比较与分析
    1.引言AIGC(ArtificialIntelligenceGeneratedContent,人工智能生成内容)近年来在图像生成、自然语言处理、代码生成等多个领域取得了重大进展。无论是文本生成、图像创作,还是自动代码生成,AIGC都在推动内容创作进入一个全新的高度。Python凭借其简洁的语法和丰富的机器学习、深度学......
  • Go语言编译时为exe添加图标和属性信息的方法
    在使用Go语言开发应用程序时,有个非常方便的地方就是编译得到的可执行文件可以不依赖任何动态链接库、并且不需要任何运行环境即可运行,这一点Java就没那么方便了。不过在Windows上编译得到的exe文件,默认是不带图标和任何属性信息的,那么怎么才能让我们编译得到的可执行文件带上图标......
  • 【Django开发】前后端分离django美多商城项目第10篇:收货地址,1. 展示地址接口设计和定
    本教程的知识点为:项目准备项目准备配置1.修改settings/dev.py文件中的路径信息2.INSTALLED_APPS3.数据库用户部分图片1.后端接口设计:视图原型2.具体视图实现用户部分使用Celery完成发送判断帐号是否存在1.判断用户名是否存在后端接口设计:用户部分JWT什......
  • Win11系统提示找不到rdvgogl32.dll文件的解决办法
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个rdvgogl32.dll文件(挑选合适的版本文件)把它......
  • Leangoo领歌:一站式敏捷缺陷管理平台,助力产品迭代
    ​在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的重要性更加凸显。Leangoo领歌​​​​​​​作为一款敏捷研发全流程管理工具,提......
  • golang 合成的图片
    packagepicture_serviceimport( "errors" "github.com/nfnt/resize" "image" "image/draw" "image/jpeg" "image/png" "log" "net/http" "os")typePictureServi......