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;
    }
};
目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
华人学生团队获国际神经网络验证大赛佳绩:总分第一,五大单项第一
由来自卡内基梅隆大学、美国东北大学、哥伦比亚大学、加州大学洛杉矶分校的成员共同开发的工具α,β-CROWN 获得了第二届国际神经网络验证大赛总分第一,以及 5 个单项第一!其中该团队的学生作者均为华人。
320 0
华人学生团队获国际神经网络验证大赛佳绩:总分第一,五大单项第一
|
3月前
|
人工智能 供应链 机器人
CEO的优先事项:新年展开之际的关注重点
CEO的优先事项:新年展开之际的关注重点
|
4月前
|
项目管理 测试技术
初创团队如何做好第一个项目
初创团队如何做好第一个项目
643 2
|
机器学习/深度学习 人工智能 供应链
OpenAI再建顶级团队,重金招聘核心岗成员,阻止超级AI的威胁!
OpenAI再建顶级团队,重金招聘核心岗成员,阻止超级AI的威胁!
119 0
为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
年底了,还有几天就要过年了,年后必定又是一波跳槽季,我们为什么要跳槽,为什么公司不能满足我们加薪的需求? 说到这个话题,想必从事码农的各位都清楚的一个道理:工资都是跳出来的,其他行业我不太清楚,但在 IT 行业,这是铁定的事实。公司即使加薪,也只是普调、阳光普照、雨露均沾而已,特别人、特别岗位除外。
111 0
|
程序员 定位技术
很多人都在埋怨没有遇到好的团队,但好的团队不可能凭空出现,一流的团队不能仅靠团队成员努力,作为Leader,要有可行的规划,并坚定地执行、时势地调整(转)
 《西游记》中的唐僧团队历经千难万险,终于求得真经,目标明确、分工合理为这支队伍最终走向成功奠定了基础。唐僧从一开始,就为这个团队设定了西天取经的目标,虽然经历各种挫折与磨难,但目标从未动摇。悟空探路、八戒牵马、沙僧挑担,几位徒弟一起肩负着保护唐僧的任务。
1346 2
浮游植物初级生产力与丰富度关系研究获进展
中国科学院南京地理与湖泊研究所研究人员张民等,通过对长江流域71个湖泊采样分析,详细阐述了浮游植物初级生产力增加过程中,浮游植物群落结构和丰富度的变化过程,并对不同变化阶段的驱动因子进行了定量分析。
1609 0