6060. 找到最接近 0 的数字
给你一个长度为 n 的整数数组 nums ,请你返回 nums 中最 接近 0 的数字。如果有多个答案,请你返回它们中的 最大值 。
示例 1:
输入:nums = [-4,-2,1,4,8]
输出:1
解释:
-4 到 0 的距离为 |-4| = 4 。
-2 到 0 的距离为 |-2| = 2 。 1 到 0 的距离为 |1| = 1 。 4 到 0 的距离为 |4| = 4 。 8 到 0 的距离为 |8| = 8 。 所以,数组中距离 0 最近的数字为 1 。
示例 2:
输入:nums = [2,-1,1]
输出:1
解释:1 和 -1 都是距离 0 最近的数字,所以返回较大值 1 。
提示:
1 <= n <= 1000
-105 <= nums[i] <= 105
解题思路:
第一步,求出每个数到0的距离
for i in nums:
n.append(abs(i-0))
第二步,最小距离的索引值
m = [x for x ,y in list(enumerate(n)) if y ==min(n)]
第三步,距离0最近的数字
for k in m:
p.append(nums[k])
第四步,返回较大值
return max(p)
代码整合:
class Solution(object):
def findClosestNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
n = []
p = []
m = []
for i in nums:
n.append(abs(i-0))
m = [x for x ,y in list(enumerate(n)) if y ==min(n)]
for k in m:
p.append(nums[k])
return max(p)
优化后:
class Solution(object):
def findClosestNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort(key = lambda x : (abs(x), -x))
return nums[0]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/147444.html