2441. 与对应负数同时存在的最大正整数

2441. 与对应负数同时存在的最大正整数

给你一个 不包含 任何零的整数数组 nums ,找出自身与对应的负数都在数组中存在的最大正整数 k

返回正整数k ,如果不存在这样的整数,返回 -1

示例 1:

输入:nums = [-1,2,-3,3]
输出:3
解释:3 是数组中唯一一个满足题目要求的 k 。

示例 2:

输入:nums = [-1,10,6,7,-7,1]
输出:7
解释:数组中存在 1 和 7 对应的负数,7 的值更大。

示例 3:

输入:nums = [-10,8,6,7,-2,-3]
输出:-1
解释:不存在满足题目要求的 k ,返回 -1 。

提示:

  • 1 <= nums.length <= 1000
  • -1000 <= nums[i] <= 1000
  • nums[i] != 0

思路:首先排序,然后将所有正数放入set中,接着遍历负数,如果set中存在取反后相等的正数即返回,从下标0开始遍历负数(已经排序了)

 

复制代码
class Solution {
    public int findMaxK(int[] nums) {
        Set<Integer> set = new HashSet<>();
        Arrays.sort(nums);
        int idx = 0;
        for (int i = nums.length-1;i >= 0;--i) {
            if (nums[i] < 0) {
                break;
            }
            set.add(nums[i]);
            idx = i;
        }
        
        for (int i = 0;i < idx;i++) {
            if (set.contains(Math.abs(nums[i]))) {
                return Math.abs(nums[i]);
            }
        }
        return -1;
    }
}
复制代码

 

posted on   HHHuskie  阅读(34)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-05-13 Anaconda安装第三方包(whl文件)(含torch下载链接)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示