Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2021-08-21:给定一个数组arr,长度为N > 1,从中间切一

2021-08-21:给定一个数组arr,长度为N > 1,从中间切一

原创
作者头像
福大大架构师每日一题
修改于 2021-08-23 03:17:37
修改于 2021-08-23 03:17:37
2910
举报

2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多的切法中,每一种都有:绝对值(左部分最大值 – 右部分最大值)。返回最大的绝对值是多少?

福大大 答案2021-08-21:

max-arr0和max-arrN-1取最大值。

时间复杂度:O(N)。

空间复杂度:O(1)。

代码用golang编写。代码如下:

代码语言:txt
AI代码解释
复制
package main

import (
    "fmt"
    "math"
)

func main() {
    arr := []int{1, 2, 3}
    ret := maxABS3(arr)
    fmt.Println(ret)
}

func maxABS3(arr []int) int {
    max := math.MinInt64
    for i := 0; i < len(arr); i++ {
        max = getMax(arr[i], max)
    }
    return max - getMin(arr[0], arr[len(arr)-1])
}

func getMin(a int, b int) int {
    if a < b {
        return a
    } else {
        return b
    }
}

func getMax(a int, b int) int {
    if a > b {
        return a
    } else {
        return b
    }
}

执行结果如下:

图片
图片

左神java代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多
2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多的切法中,每一种都有:绝对值(左部分最大值 – 右部分最大值)。返回最大的绝对值是多少?
福大大架构师每日一题
2021/09/03
2860
2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多
2021-05-20:给定一个数组arr, 返回如果排序之后,相邻两数
2021-05-20:给定一个数组arr, 返回如果排序之后,相邻两数的最大差值。要求:时间复杂度O(N) 。
福大大架构师每日一题
2021/05/20
3640
2021-05-20:给定一个数组arr, 返回如果排序之后,相邻两数
2021-08-22:定义什么是可整合数组:一个数组排完序之后
2021-08-22:定义什么是可整合数组:一个数组排完序之后,除了最左侧的数外,有arri = arri-1+1,则称这个数组为可整合数组,比如{5,1,2,4,3}、{6,2,3,1,5,4}都是可整合数组。返回arr中最长可整合子数组的长度。
福大大架构师每日一题
2021/08/22
2400
2021-08-22:定义什么是可整合数组:一个数组排完序之后
2021-11-27:给定一个数组arr,长度为N,做出一个结构,
2021-11-27:给定一个数组arr,长度为N,做出一个结构,可以高效的做如下的查询:
福大大架构师每日一题
2021/11/27
2480
2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的
2021-10-26:给定一个数组arr,arri = j,表示第i号试题的难度为j。给定一个非负数M。想出一张卷子,对于任何相邻的两道题目,前一题的难度不能超过后一题的难度+M。返回所有可能的卷子种数。
福大大架构师每日一题
2021/10/26
3310
2021-08-10:给定一个正数数组arr,返回arr的子集不能累加
2021-08-10:给定一个正数数组arr,返回arr的子集不能累加出的最小正数。1)正常怎么做? 2)如果arr中肯定有1这个值,怎么做?
福大大架构师每日一题
2021/08/10
3890
2021-08-10:给定一个正数数组arr,返回arr的子集不能累加
​2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。
2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。返回最大的异或结果。
福大大架构师每日一题
2021/05/14
5650
​2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。
2021-05-12:给定一个数组arr,只能对arr中的一个子数组排
2021-05-12:给定一个数组arr,只能对arr中的一个子数组排序, 但是想让arr整体都有序。返回满足这一设定的子数组中,最短的是多长?
福大大架构师每日一题
2021/05/12
5260
2021-05-12:给定一个数组arr,只能对arr中的一个子数组排
2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分
2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分,每一种方案都有,min{左部分累加和,右部分累加和},求这么多方案中,min{左部分累加和,右部分累加和}的最大值是多少? 整个过程要求时间复杂度O(N)。
福大大架构师每日一题
2021/04/07
3560
2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分
2021-06-15:返回一个二维数组中,子矩阵最大累加和。
根据昨天的每日一题计算出0 ~ 0行,0 ~ 1行,0 ~ 2行,……0~N行的子数组最大累加和。
福大大架构师每日一题
2021/06/15
5900
2021-06-15:返回一个二维数组中,子矩阵最大累加和。
2021-07-10:请返回arr中,求子数组的累加和,是<=K
2021-07-10:请返回arr中,求子数组的累加和,是<=K的并且是最大的。返回这个最大的累加和。
福大大架构师每日一题
2021/07/10
4430
2021-07-10:请返回arr中,求子数组的累加和,是<=K
2021-04-25:给定一个数组arr,和一个正数M,返回在
福大大 答案2021-04-25: 前缀和+左大右小的双端队列。时间太晚了,所以写得简单。 代码用golang编写。代码如下: package main import ( "container/list" "fmt" ) func main() { arr := []int{1, 2, -3, 4, -5} ret := maxSum(arr, 5) fmt.Println(ret) } // O(N)的解法,最优解 func maxSum(arr []int,
福大大架构师每日一题
2021/05/04
4030
2021-04-25:给定一个数组arr,和一个正数M,返回在
2021-07-06:股票问题3。给定一个数组,它的第 i 个元素是
2021-07-06:股票问题3。给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
福大大架构师每日一题
2021/07/06
3940
2021-07-06:股票问题3。给定一个数组,它的第 i 个元素是
2021-08-13:给定一个每一行有序、每一列也有序,整体可
2021-08-13:给定一个每一行有序、每一列也有序,整体可能无序的二维数组 ,在给定一个正数k,返回二维数组中,最小的第k个数。
福大大架构师每日一题
2021/08/13
3920
2021-08-13:给定一个每一行有序、每一列也有序,整体可
​2021-05-13:数组中所有数都异或起来的结果,叫做异或和。
2021-05-13:数组中所有数都异或起来的结果,叫做异或和。给定一个数组arr,返回arr的最大子数组异或和。
福大大架构师每日一题
2021/05/13
4620
​2021-05-13:数组中所有数都异或起来的结果,叫做异或和。
2021-05-30:数组的元素个数一定大于2,请问两个不相邻元素的和的最大值是多少?
2021-05-30:数组的元素个数一定大于2,请问两个不相邻元素的和的最大值是多少?
福大大架构师每日一题
2021/05/30
5270
2021-05-30:数组的元素个数一定大于2,请问两个不相邻元素的和的最大值是多少?
2022-01-21:完美矩形。 给你一个数组 rectangles ,其中
给你一个数组 rectangles ,其中 rectanglesi = xi, yi, ai, bi 表示一个坐标轴平行的矩形。这个矩形的左下顶点是 (xi, yi) ,右上顶点是 (ai, bi) 。
福大大架构师每日一题
2022/01/21
3620
2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个
2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个元素 pricesi 表示一支给定股票第 i 天的价格。你只能选择某一天 买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
福大大架构师每日一题
2021/07/04
4920
2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个
2021-05-25:给定一个矩阵matrix,值有正、负、
2021-05-25:给定一个矩阵matrix,值有正、负、0,蛇可以空降到最左列的任何一个位置,初始增长值是0,蛇每一步可以选择右上、右、右下三个方向的任何一个前进,沿途的数字累加起来,作为增长值;但是蛇一旦增长值为负数,就会死去 。蛇有一种能力,可以使用一次:把某个格子里的数变成相反数,蛇可以走到任何格子的时候停止。返回蛇能获得的最大增长值。
福大大架构师每日一题
2021/05/25
3340
2021-05-25:给定一个矩阵matrix,值有正、负、
2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai)
2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
福大大架构师每日一题
2021/08/05
5590
推荐阅读
2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多
2860
2021-05-20:给定一个数组arr, 返回如果排序之后,相邻两数
3640
2021-08-22:定义什么是可整合数组:一个数组排完序之后
2400
2021-11-27:给定一个数组arr,长度为N,做出一个结构,
2480
2021-10-26:给定一个数组arr,arr[i] = j,表示第i号试题的
3310
2021-08-10:给定一个正数数组arr,返回arr的子集不能累加
3890
​2021-05-14:给定一个数组arr,想知道arr中哪两个数的异或结果最大。
5650
2021-05-12:给定一个数组arr,只能对arr中的一个子数组排
5260
2021-04-07:给定一个非负数组arr,长度为N,那么有N-1种方案可以把arr切成左右两部分
3560
2021-06-15:返回一个二维数组中,子矩阵最大累加和。
5900
2021-07-10:请返回arr中,求子数组的累加和,是<=K
4430
2021-04-25:给定一个数组arr,和一个正数M,返回在
4030
2021-07-06:股票问题3。给定一个数组,它的第 i 个元素是
3940
2021-08-13:给定一个每一行有序、每一列也有序,整体可
3920
​2021-05-13:数组中所有数都异或起来的结果,叫做异或和。
4620
2021-05-30:数组的元素个数一定大于2,请问两个不相邻元素的和的最大值是多少?
5270
2022-01-21:完美矩形。 给你一个数组 rectangles ,其中
3620
2021-07-04:股票问题1。给定一个数组 prices ,它的第 i 个
4920
2021-05-25:给定一个矩阵matrix,值有正、负、
3340
2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai)
5590
相关推荐
2021-08-21:给定一个数组arr,长度为N > 1,从中间切一刀,保证左部分和右部分都有数字,一共有N-1种切法,如此多
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档