首页 > 其他分享 >2024-05-22:用go语言,你有一个包含 n 个整数的数组 nums。 每个数组的代价是指该数组中的第一个元素的值。 你的目标是将这个数组划分为三个连续且互不重叠的子数组。 然后,计算这三个子数

2024-05-22:用go语言,你有一个包含 n 个整数的数组 nums。 每个数组的代价是指该数组中的第一个元素的值。 你的目标是将这个数组划分为三个连续且互不重叠的子数组。 然后,计算这三个子数

时间:2024-05-22 21:33:42浏览次数:10  
标签:子数 nums 最小值 math 数组 go fi se

2024-05-22:用go语言,你有一个包含 n 个整数的数组 nums。

每个数组的代价是指该数组中的第一个元素的值。

你的目标是将这个数组划分为三个连续且互不重叠的子数组。

然后,计算这三个子数组的代价之和,

要求返回这个和的最小值。

输入:nums = [1,2,3,12]。

输出:6。

答案2024-05-22:

chatgpt

题目来自leetcode3010。

大体步骤如下:

1.初始化操作:

  • main 函数开始,创建一个整型数组 nums,其中包含 [1, 2, 3, 12]

  • 定义并调用 minimumCost 函数来计算划分成三个子数组后的最小代价之和。

2.计算最小代价:

  • minimumCost 函数中,fise 被初始化为 math.MaxInt64,表示两个最大的整数值,确保任何元素都会比它们小。

  • 对于给定的数组 nums,迭代从第二个元素开始的所有元素:

    • 如果元素 x 小于当前最小值 fi,则将第二小值 se 更新为当前最小值 fi,并更新最小值为 x

    • 否则,如果元素 x介于当前最小值 fi 和第二小值 se 之间,则更新第二小值 sex

  • 返回结果为数组第一个元素 nums[0] 与找到的两个最小值 fise 的和。

3.解问题:

  • 对于输入数组 [1, 2, 3, 12],算法将找到两个最小值为 12

  • 算法返回结果为 1 + 1 + 2 = 4,此结果表示划分三个子数组后的最小代价之和。

4.时间复杂度:

  • 迭代一次数组,需要 O(n) 的时间复杂度,其中 n 是数组的长度。

5.空间复杂度:

  • 除了输入的数组外,算法只使用了常量级别的额外空间,因此空间复杂度为 O(1)

Go完整代码如下:

package main

import (
    "fmt"
    "math"
)

func minimumCost(nums []int) int {
    fi, se := math.MaxInt64, math.MaxInt64
    for _, x := range nums[1:] {
        if x < fi {
            se = fi
            fi = x
        } else if x < se {
            se = x
        }
    }
    return nums[0] + fi + se
}

func main() {
    nums := []int{1, 2, 3, 12}
    result := minimumCost(nums)
    fmt.Println(result)
}

在这里插入图片描述

Python完整代码如下:

# -*-coding:utf-8-*-

import math

def minimum_cost(nums):
    fi, se = math.inf, math.inf
    for x in nums[1:]:
        if x < fi:
            se = fi
            fi = x
        elif x < se:
            se = x
    return nums[0] + fi + se

def main():
    nums = [1, 2, 3, 12]
    result = minimum_cost(nums)
    print(result)

if __name__ == "__main__":
    main()

在这里插入图片描述

标签:子数,nums,最小值,math,数组,go,fi,se
From: https://www.cnblogs.com/moonfdd/p/18207118

相关文章

  • Django与前端框架协作开发实战:高效构建现代Web应用
    title:Django与前端框架协作开发实战:高效构建现代Web应用date:2024/5/2220:07:47updated:2024/5/2220:07:47categories:后端开发tags:DjangoREST前端框架SSR渲染SPA路由SEO优化组件库集成状态管理第1章:简介1.1Django简介Django是一个高级的PythonWeb......
  • 蓝桥杯-子 2023 / 双子数
    题解:第一个问题A动态规划问题f[4]状态表示:f[0]表示数字是2的个数f[1]表示以2开头0结尾的个数f[2]表示以20开头2结尾的个数f[3]表示以202开头3结尾的个数f[3]就是答案代码中有详细的注释和注意事项A代码......
  • Gin 框架是怎么使用 net http 包的(gin.go)
     Gin框架是基于Go语言的标准库net/http构建的,它使用net/http提供的基础功能来构建自己的高性能Web应用框架。具体来说,Gin使用net/http的以下方面: 1,HandlerFunc:Gin使用net/http的HandlerFunc类型,这是一个可以作为HTTP处理程序的函数类型。Gin自己的路......
  • 曲线方式观察double数组
    支持功能查看折线使能查看点标记使能数据保存到文件支持数据类型double[]/float[]/int[]最常见List/List/List比较常见double[][]xy组依次排列double[][]多个y组依赖DynamicDataDisplay库使用(VisualStudio2019)dll及相关文件放入文件夹C:\Users\x......
  • PHP函数 向数组插入元素
    <?phpheader('Content-Type:text/html;charset=utf-8');define('ROOT',$_SERVER['DOCUMENT_ROOT']);includeROOT.'/assets/php/head.php';//PHP向数组插入元素/***1、使用array_unshift()函数,向数组头插入新元素;*2、使用array_push()函......
  • 2024年5月中国数据库排行榜:OP持续领跑,GoldenDB稳步上升进前八
    入夏时节,2024年5月的中国流行度排行榜排行榜如期发布。在这个骄阳似火的季节,各大数据库产品之间的竞争愈发激烈,名次间的细微变动展示了市场的动态和活力。各家厂商不断创新,通过技术升级和性能优化,力求在激烈的市场中占据更有利的位置。本月排行榜主要呈现以下几个特点:榜单产品......
  • mac code google chrome cpu占用大 风扇就开始转
    打开活动监视器,查看 code这个是占用比较大的,处理下:1)删除不需要用的,如果有C++的,删除,暂时不用,或者用其它专业ide。2)配制:code--首选项--设置 1、search.followSymlinks:false,不勾选。2、CodeActionsOnSave,编辑  "git.enabled":false参考:https://blog.cs......
  • golang微服务之go-zero零基础实战
    golang微服务之go-zero零基础实战1.环境准备mysql提供rpc服务接口后端交互存储etcd提供rpc服务注册与发现2.文件结构rpc服务接口:1.用户登录2.用户创建3.查询用户信息api服务接口:1.用户登录2.用户创建3.查询用户信息3.搭建步骤1.搭建rpc服务创建rpc......
  • Golang初学:vs code, launch.json, Run
    goversiongo1.22.1windows/amd64Windows11+amd64x86_64x86_64GNU/Linuxvscode1.89.1--- 序章在vscode开发go程序,之前总是在终端(terminal)输入命令(gorun.)来执行。不过,这不是最高效的方式。通过添加并配置launch.json可以更方便地程序仅运行(Ctrl+F5......
  • (转)Go 每日一库之 cast
    原文:https://juejin.cn/post/6844904056750620679简介今天我们再来介绍spf13大神的另一个库cast。cast是一个小巧、实用的类型转换库,用于将一个类型转为另一个类型。最初开发cast是用在hugo中的。快速使用先安装: 复制代码$gogetgithub.com/spf13/cast后使用......