2708. 一个小组的最大实力值

简介: 【9月更文挑战第2天】

给你一个下标从 0 开始的整数数组 nums ,它表示一个班级中所有学生在一次考试中的成绩。老师想选出一部分同学组成一个 非空 小组,且这个小组的 实力值 最大,如果这个小组里的学生下标为 i0, i1, i2, ... , ik ,那么这个小组的实力值定义为 nums[i0] nums[i1] nums[i2] ... nums[ik​] 。

请你返回老师创建的小组能得到的最大实力值为多少

示例 1:

输入:nums = [3,-1,-5,2,5,-9]
输出:1350
解释:一种构成最大实力值小组的方案是选择下标为 [0,2,3,4,5] 的学生。实力值为 3 (-5) 2 5 (-9) = 1350 ,这是可以得到的最大实力值。
示例 2:

输入:nums = [-4,-5,-4]
输出:20
解释:选择下标为 [0, 1] 的学生。得到的实力值为 20 。我们没法得到更大的实力值。

提示:

1 <= nums.length <= 13
-9 <= nums[i] <= 9
题解:
直接暴力跑一遍把所有非零数相乘即可判断正负,就是有些地方需要注意:

  1. 如果数组中只有一个数。不管正负都需要范围他,因为题目中说了非空。
  2. 如果全零,也要返回零。
  3. 如果是有一个负数,其余全是零,那么就应该返回0。选零要比选负数大。
  4. 如果积为负数,那么一定要除最小的负数。
class Solution {
public:
    long long maxStrength(vector<int>& nums) {
        long long ans = 1;
        sort(nums.begin(),nums.end());
        int tmp=1;
        for(int i = 0;i<nums.size();i++){
            if(nums[i]>0){
                ans=ans*nums[i];                
            }else if(nums[i]<0){
                ans=ans*nums[i];
                tmp=nums[i];   
            }
        }
        if (nums.size()==1) return nums[0];
        if(nums[0]==0&&nums[nums.size()-1]==0) return 0;
        if(nums[0]<0){
            if(nums.size()>=2){
                if(nums[1]==0&&nums[nums.size()-1]==0) return 0;
            }
            else return nums[0];
        }
        if (ans<0){
            ans=ans/tmp;            
        }
        return ans;
    }
};
目录
相关文章
|
5月前
|
人工智能 供应链 机器人
CEO的优先事项:新年展开之际的关注重点
CEO的优先事项:新年展开之际的关注重点
|
5月前
|
机器学习/深度学习 人工智能 安全
CIO如何制定议程以实现IT的最终平衡
CIO如何制定议程以实现IT的最终平衡
|
6月前
|
项目管理 测试技术
初创团队如何做好第一个项目
初创团队如何做好第一个项目
646 2
|
机器学习/深度学习 人工智能 供应链
OpenAI再建顶级团队,重金招聘核心岗成员,阻止超级AI的威胁!
OpenAI再建顶级团队,重金招聘核心岗成员,阻止超级AI的威胁!
130 0
|
存储 编解码 人工智能
达摩院参与制定国际视频标准,提案斩获两项第一!
达摩院参与制定国际视频标准,提案斩获两项第一!
105 0
|
监控
远程办公(2)-重新定义“雇佣关系”:交易成果,而不是时间
远程办公(2)-重新定义“雇佣关系”:交易成果,而不是时间
116 0
|
架构师 程序员 iOS开发
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(2)
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(2)
371 0
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(2)
|
运维 架构师 前端开发
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
139 0
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
|
架构师 Cloud Native 程序员
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(3)
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(3)
201 0
为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
年底了,还有几天就要过年了,年后必定又是一波跳槽季,我们为什么要跳槽,为什么公司不能满足我们加薪的需求? 说到这个话题,想必从事码农的各位都清楚的一个道理:工资都是跳出来的,其他行业我不太清楚,但在 IT 行业,这是铁定的事实。公司即使加薪,也只是普调、阳光普照、雨露均沾而已,特别人、特别岗位除外。
116 0
下一篇
无影云桌面