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()

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

  1. 通过PHP current()函数获取未知字符键名数组第一个元素的值

    在开发中经常遇到这样问题,获取数组第一个元素的值,如果是数字索引那还好,直接$array[0],如果键名是字符串,你又未知这个字符串呢?用current()函数就可以做到. 当然,你可以用array_ ...

  2. shift() 方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。

    let a = [1, 2, 3]; let b = a.shift(); console.log(a); // [2, 3] console.log(b); // 1 返回值 从数组中删除的元素;  ...

  3. 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组

    var threeSum = function(nums) {let ans = [];const len = nums.length;if(nums == null || len < 3) r ...

  4. 刷题3:给定一个数组 nums,判断 nums 中是否存在三个下标 a,b,c数相加等于targe且a,b,c不相等

    题目: 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,下标 ,a ,b , c 对应数相加等于 targe 找出所有满足条件且不重复的三元组下标 解析: ...

  5. 计蒜客-T1271 完美K倍子数组

    如果一个数组满足长度至少是 22 ,并且其中任意两个不同的元素 A_iAi​ 和 A_j (i \not = j)Aj​(i​=j) 其和 A_i+A_jAi​+Aj​ 都是 KK 的倍数,我们就称 ...

  6. php 获取数组第一个元素 以及最后一个元素 && 最后一个元素的键名

    1. current() 函数返回数组中的当前元素的值. 每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素. end() - 将内部指针指向数组中 ...

  7. 面试题-->写一个函数,返回一个数组中所有元素被第一个元素除的结果

    package com.rui.test; import java.util.Random; /** * @author poseidon * @version 1.0 * @date:2015年10 ...

  8. 16.Shortest Unsorted Continuous Subarray(最短未排序子数组)

    Level:   Easy 题目描述: Given an integer array, you need to find one continuous subarray that if you onl ...

  9. C 语言学习的第 05 课:C 语言基础(01)

    C语言程序中的绝大部分应该记录在以.c作为扩展名的文件里,这种文件叫做C语言    程序的源文件. C语言中还包括以.h作为扩展名的文件,这种文件叫做头文件. C语言中的四则运算: 加:+ 减:- 乘 ...

  10. C语言头文件组织与包含原则

    转自:http://www.cnblogs.com/clover-toeic/p/3728026.html 说明 本文假定读者已具备基本的C编译知识. 如非特殊说明,文中“源文件”指*.c文件,“头文 ...

随机推荐

  1. dev DEV控件:gridControl常用属性设置

    引用:https://www.cnblogs.com/kingsliu/articles/6145679.html 1.隐藏最上面的GroupPanelgridView1.OptionsView.Sh ...

  2. SpringCloud OpenFeign token中转

    OpenFeign 的本质是调用指定服务的 Controller. 前后端分离项目,调用 Controller 是需要传递 token 的. OpenFeign 并不会自动携带 token 去访问 C ...

  3. Python 爬虫初探

    准备部分 0x01 爬虫的简介和价值 a. 简介 自动抓取互联网数据的程序,是基础技术之一 b. 价值 快速提取网络中有价值的信息 0x02 爬虫的开发环境 a. 环境清单 Python3.7 开发环 ...

  4. nginx重新整理——————nginx 模块[十]

    前言 简单介绍一下nginx的模块. 正文 https://nginx.org/en/docs/ 这里面可以看到官方模块. 比如打开这个模块: https://nginx.org/en/docs/ht ...

  5. 重新点亮shell————语法[四]

    前言 简单介绍一下语法. 正文 数组: 定义数组: IPTS =(10.0.0.1 10.0.0.2 10.0.0.3) 显示所以数组元素: echo ${IPTS[@]} 显示数组元素的个数 ech ...

  6. css 去除浮动布局

    前言 在清楚浮动的时候呢,网上有7种,这里只介绍3种,小声哔哔,其他4种都有坑. 正文 第一种: <div class="container"> <div> ...

  7. pycharm更换主题,pycharm更换皮肤,pycharm更换不同颜色

    1.首先  点击File→进入setting 2. 在settings里面找到appearance 3.选择 Theme,下拉即可修改 4.选择不同的主题,darcula是黑色,其他两个是白色

  8. 剑指 Offer II 018(Java). 有效的回文(简单)

    题目: 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写. 本题中,将空字符串定义为有效的 回文串 . 示例 1: 输入: s = "A man, ...

  9. 力扣378(java&python)-有序矩阵中第 K 小的元素(中等)

    题目: 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素.请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素. 你必须找到一个 ...

  10. 首次公开!阿里云开源PolarDB总体架构和企业级特性

    ​简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家北侠带来了主题为<PolarDB 总体架构设计和企业级特性>的精彩演讲. 在3月2日 ...