首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
最大 FST 距离
[编程题]最大 FST 距离
热度指数:8089
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 128M,其他语言256M
算法知识视频讲解
给定
个元素,第
个元素具有特征值
。定义
FST 距离
如下:
请计算
中所有元素对儿中的最大 FST 距离。
输入描述:
第一行输入一个整数
。
第二行输入
个整数
。
输出描述:
输出一个整数,表示最大距离。
示例1
输入
2 4 3
输出
10
说明
。
备注:
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(141)
分享
提交结果有问题?
1个回答
33篇题解
添加回答
0
Python3
雨夜聆风1
# 方法一:暴力解法,但超时
n =
int
(
input
())
num_list =
list
(
map
(
int
,
input
().split()))
max_FST =
0
for
i
in
range
(n):
# 任意两点循环计算,将最大值通过max()选出
for
j
in
range
(n):
max_FST =
max
(max_FST,
abs
((i+
1
)**
2
-(j+
1
)**
2
)+
abs
(num_list[i]**
2
-num_list[j]**
2
))
print
(max_FST)
# 方法二:设i^2为Xi,设Ai^2为Yi,则原式可化为dist=|(Xi-Xj)|+|(Yi-Yj)|
# 若(Xi, Yi)是坐标点,则我们要求两点的横纵坐标之差的绝对值的和
# 将绝对值展开得到四个式子
# 1:(Xi±Yi)-(Xj±Yj)
# 2:(-Xi±Yi)-(-Xj±Yj) 观察可知,第二组式子可由第一组式子的基础上添加负号得来
# 故选择第一组式子,1:(Xi+Yi)-(Xj+Yj) 2:(Xi-Yi)-(Xj-Yj)
# 而上述两个式子中只出现了两种元素:Xi+Yi和Xi-Yi
# 故只需求出两者各自的max和min,相减取最大值即可
n =
int
(
input
())
num_list =
list
(
map
(
int
,
input
().split()))
jia_list = []
jian_list = []
for
i
in
range
(n):
# 存入x+y和x-y的所有值
x = (i +
1
) **
2
y = num_list[i] **
2
jia_list.append(x + y)
jian_list.append(x - y)
# 根据两个式子计算一个最大的
max_FST =
max
(
max
(jia_list) -
min
(jia_list),
max
(jian_list) -
min
(jian_list))
print
(max_FST)
发表于 2026-02-15 18:21:08
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
排序
上传者:
牛客301599号
难度:
1条回答
141收藏
3255浏览
热门推荐
通过挑战的用户
查看代码
瞳孔中的记忆
2020-08-28 23:08:19
Ryo2018...
2020-01-13 21:45:28
Jupiter_
2019-08-08 00:26:17
yang583...
2019-08-02 17:31:04
劳逸结合
2019-08-01 10:48:48
相关试题
在下列表述中,错误的是()
字符串
树
排序
评论
(43)
观察以下 `asyncio` 代码...
Python
评论
(1)
关于Vue 3的watchEffe...
Vue
评论
(1)
为了处理用户交互效果,你需要为 ....
CSS
评论
(1)
在大模型训练中,ZeRO(Zero...
大模型概念
评论
(1)
最大 FST 距离
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
2 4 3
10