zhenjen 发表于 2023-6-6 11:31:20

找最大子区间的算法,改改应该用

zhangjinxuan 发表于 2023-6-6 11:32:25

zhenjen 发表于 2023-6-6 11:31
找最大子区间的算法,改改应该用

{:10_277:}

那么我们怎么求出每个子区间的最大公因数呢

zhenjen 发表于 2023-6-6 11:36:44

不知道,但可以上网查找

zhangjinxuan 发表于 2023-6-6 11:37:26

zhenjen 发表于 2023-6-6 11:36
不知道,但可以上网查找

网上找不到我才问的,chatgpt 回答的也是 O(N^2) 算法。

zhenjen 发表于 2023-6-6 11:40:40

时间复杂度要求是o(n)?

zhangjinxuan 发表于 2023-6-6 11:41:09

zhenjen 发表于 2023-6-6 11:40
时间复杂度要求是o(n)?

是的,因为你看,1 <= n <= 1000000,但是 1 <= a_i <= 1000000,可以根据这一条下手

zhenjen 发表于 2023-6-6 11:42:53

n是数据范围,那a_i是什么?

zhangjinxuan 发表于 2023-6-6 11:43:18

zhenjen 发表于 2023-6-6 11:42
n是数据范围,那a_i是什么?

n 是数组长度,a_i 表示 a 的任一元素

zhenjen 发表于 2023-6-6 11:44:18

n是长度,a是数字?

zhangjinxuan 发表于 2023-6-6 11:45:19

zhenjen 发表于 2023-6-6 11:44
n是长度,a是数字?

n 是长度,a 是一个数组,a_i 表示 a 的第 i 个元素,在这里可能不太清晰,这个意思就是,a 的所有元素都大于等于 1,小于等于 1000000

zhenjen 发表于 2023-6-6 11:46:20

时间复杂度没有要求。

zhangjinxuan 发表于 2023-6-6 11:47:52

zhenjen 发表于 2023-6-6 11:46
时间复杂度没有要求。

时间复杂度自己想,想一想怎样的时间复杂度才能在 1s 以内通过此题。

zhenjen 发表于 2023-6-6 11:56:13

zhangjinxuan 发表于 2023-6-6 11:47
时间复杂度自己想,想一想怎样的时间复杂度才能在 1s 以内通过此题。

我推荐看下找最大子区间的算法.算法时间复杂有on

zhangjinxuan 发表于 2023-6-6 12:07:44

zhenjen 发表于 2023-6-6 11:56
我推荐看下找最大子区间的算法.算法时间复杂有on

但是这里还有最大公因数,只有求和都会做嗷。

zhangjinxuan 发表于 2023-6-6 20:28:00

zhangjinxuan 发表于 2023-6-7 10:07:19

zhangjinxuan 发表于 2023-6-8 14:14:06

yinda_peng 发表于 2023-6-8 20:53:38

maybe,可以分治?我不会,你可以试试要求GPT写出O(n)复杂度的代码

zhangjinxuan 发表于 2023-6-8 21:07:05

yinda_peng 发表于 2023-6-8 20:53
maybe,可以分治?我不会,你可以试试要求GPT写出O(n)复杂度的代码

分治{:10_257:}

说详细点呢?说个“也许”有点半对不对的感觉。

我问了 GPT 的,大多都是 O(n^2)

tommyyu 发表于 2023-6-10 09:33:17

例子里面不应该是 gcd(9, 8, 16, 24) + 9 + 8 + 16 + 24 = 58 么?{:10_277:}
页: 1 [2] 3
查看完整版本: 区间 gcd 与总和的和最大值问题,这个问题有点不会,望高人赐教,谢谢【重金悬赏】