前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2024-07-27:用go语言,给定一个正整数数组,最开始可以对数组中的元素进行增加操作,每个元素最多加1。 然后从修改后的数

2024-07-27:用go语言,给定一个正整数数组,最开始可以对数组中的元素进行增加操作,每个元素最多加1。 然后从修改后的数

作者头像
福大大架构师每日一题
发布2024-08-16 17:25:40
720
发布2024-08-16 17:25:40
举报
文章被收录于专栏:福大大架构师每日一题

2024-07-27:用go语言,给定一个正整数数组,最开始可以对数组中的元素进行增加操作,每个元素最多加1。

然后从修改后的数组中选出一个或多个元素,使得这些元素排序后是连续的。

要求找出最多可以选出的元素数量。

输入:nums = [2,1,5,1,1]。

输出:3。

解释:我们将下标 0 和 3 处的元素增加 1 ,得到结果数组 nums = [3,1,5,2,1] 。

我们选择元素 [3,1,5,2,1] 并将它们排序得到 [1,2,3] ,是连续元素。

最多可以得到 3 个连续元素。

答案2024-07-27:

chatgpt

题目来自leetcode3041。

大体步骤如下:

1.定义一个函数 maxSelectedElements(nums),参数为一个整数数组 nums,返回最多可选出的连续元素数量。

2.初始化一个空的映射 f 用于存储每个数字及其相邻数字出现的次数。

3.对输入的数组 nums 进行排序,确保数组中的元素是升序排列。

4.遍历排序后的数组 nums,对于数组中的每个元素 x:

  • • 更新映射 f[x+1] 为 f[x] + 1,表示 x+1 与 x 相邻的数字出现的次数。
  • • 更新映射 f[x] 为 f[x-1] + 1,表示 x 与 x-1 相邻的数字出现的次数。

5.遍历映射 f 中的所有值,取其中的最大值作为答案。

总的时间复杂度为 O(nlogn) 其中 n 是输入数组的长度,主要由排序算法造成。

总的额外空间复杂度为 O(n),用来存储映射 f。

Go完整代码如下:

代码语言:javascript
复制
package main

import(
"fmt"
"slices"
)

func maxSelectedElements(nums []int)(ans int){
    slices.Sort(nums)
    f :=map[int]int{}
for _, x :=range nums {
        f[x+1]= f[x]+1
        f[x]= f[x-1]+1
}
for _, res :=range f {
        ans = max(ans, res)
}
return
}


func main(){
    nums:=[]int{2,1,5,1,1}
    fmt.Println(maxSelectedElements(nums))
}

Python完整代码如下:

代码语言:javascript
复制
# -*-coding:utf-8-*-

defmaxSelectedElements(nums):
    nums.sort()
    f ={}
    ans =0
for x in nums:
        f[x+1]= f.get(x,0)+1
        f[x]= f.get(x-1,0)+1
for res in f.values():
        ans =max(ans, res)
return ans

nums =[2,1,5,1,1]
print(maxSelectedElements(nums))
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 大体步骤如下:
  • Go完整代码如下:
  • Python完整代码如下:
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档