1822. 数组元素积的符号

已知函数 signFunc(x) 将会根据 x 的正负返回特定值:

如果 x 是正数,返回 1 。
如果 x 是负数,返回 -1 。
如果 x 是等于 0 ,返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。

返回 signFunc(product) 。

示例 1:输入:nums = [-1,-2,-3,-4,3,2,1]
输出:1
解释:数组中所有值的乘积是 144 ,且 signFunc(144) = 1示例 2:输入:nums = [1,5,0,2,-3]
输出:0
解释:数组中所有值的乘积是 0 ,且 signFunc(0) = 0示例 3:输入:nums = [-1,1,-1,1,-1]
输出:-1
解释:数组中所有值的乘积是 -1 ,且 signFunc(-1) = -1

提示:

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

解题思路

因为函数 signFunc(x) 将会根据 x 的正负返回特定值,而我们需要返回的结果为 signFunc(product)(product 为数组 nums 中所有元素值的乘积),所以我们不需要关心我们最后乘积的大小,我们只需要关心乘积的正负号。因此我们只需要处理:

  1. 一旦出现为0的元素,那么整个结果必将为0,所以我们可以直接返回0,不需要进行后面的计算
  2. 一旦出现负数,将原来的符号置为相反数,如果原来为1,则转化为-1.如果原来为-1,则转换为1.
  3. 如果遇到的是正数,对当前的符号没有影响,因此不需要做任何的处理
  4. 一开始初始化的符号应该为1

代码

class Solution {public:int arraySign(vector<int>& nums) {int sum=1;for (auto c:nums) {if (c==0) return 0;if (c<0) sum=-sum;}return sum;}
};
  • 时间复杂度O(n),n为nums数组的长度
  • 空间复杂度O(1),只需要使用一个变量表示符号

1822. 数组元素积的符号相关推荐

  1. LeetCode 1822. 数组元素积的符号

    文章目录 1. 题目 2. 解题 1. 题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返回 -1 . 如果 x 是等于 0 ...

  2. LeetCode简单题之数组元素积的符号

    题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 . 如果 x 是负数,返回 -1 . 如果 x 是等于 0 ,返回 0 . 给你一个整数数组 nu ...

  3. shell自定义数组元素分隔符

    公司人员命名图片习惯的加上了空格,今天有个需求,要批量下载这个写图片,这下蛋疼了 正确的url 是这样的 http://url  2119 01.jpg http://url  001.jpg 写到文 ...

  4. 【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )

    文章目录 一.多维数组操作模型 1.取出某个数组元素地址 2.取出某个数组元素值 总结 一.多维数组操作模型 以 // 声明一个多维数组int array[2][3]; 二维数组为例 ; 1.取出某个 ...

  5. numpy np.sum()函数(求给定轴上的数组元素的总和)(与ndarray.sum()函数等价)

    from numpy\core\fromnumeric.py def sum(a, axis=None, dtype=None, out=None, keepdims=np._NoValue, ini ...

  6. python计算数组元素的和_python中数组的运算

    Python中进行数组的运算需要调用NumPy包. 其官网是:http://www.numpy.org/​www.numpy.org NumPy是Python语言的一个扩充程序库.它支持高级大量的维度 ...

  7. 数组元素替换_Linux Shell 通俗简要的讲解数组操作

    Shell 数组 什么是数组?学过计算机编程语言的同学们都知道,数组的特性就是一组数据类型相同的集合 Bash Shell 数组中可以存放多个值,且只支持一维数组(不支持多维数组),初始化时不需要定义 ...

  8. c++string转char数组_C++ 算法题解:打印沙漏、素数对猜想、数组元素循环右移问题...

    作者:鲸90830  链接:https://www.cnblogs.com/whale90830/p/10688802.html DS_起步自测 中国大学MOOC_陈越.何钦铭_数据结构_起步能力自测 ...

  9. linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...

    嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...

最新文章

  1. Reactive Extensions for .NET (Rx)
  2. linux安装ppp服务器,服务器_最简单的Linux系统上的pptpd服务器安装,1. rpm -qa|grep ppp 检查ppp版本, - phpStudy...
  3. MySQL调优(六):分区设计,分区优化案例
  4. Failed to issue method call: Unit mysql.service failed to load: No such file or directory解决的方式...
  5. LeetCode之Merge Sorted Array
  6. 【SPFA】Party(jzoj 1328)
  7. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
  8. 【蓝桥杯单片机】DS1302时钟芯片+DS18B20单总线温度传感器(官方驱动源码改写)
  9. 三菱Q系列总线型项目程序全套,三菱PLC程序+proface触摸屏双屏+电气图纸+程序注释规划表
  10. 大白菜U盘制作工具V3.0教程
  11. 创宇猎幽斩获“2022年网络安全优秀创新成果大赛”三等奖!
  12. python数据可视化神器,我就服它
  13. Art Blocks:生成艺术的自动售货机
  14. LayaBox ARPG游戏副本之《帮派联赛》水晶占领核心玩法详解
  15. 深信服防火墙之安全评估与动态检测技术
  16. RTSP安防网络摄像头/海康大华硬盘录像机网页无插件直播之EasyNVR流媒体服务器系列产品直播延时问题解析
  17. 网络功能虚拟化:NV和NFV的区别
  18. 防火墙、IDS、IPS的区别
  19. 新闻聚合阅读应用Facebook Paper的幕后功臣Origami
  20. (速记系列)机器学习

热门文章

  1. 在win10上使用Vmware安装Mac OS
  2. 线程创建-结束-回收 教程
  3. 已成功拿下字节、腾讯、脉脉offer,吐血整理
  4. 利用Kinect将投影变得可直接用手操控
  5. 通过NSNotification来监听键盘弹出和弹回
  6. 解决解决鼠标右键被锁定
  7. 【转来警醒自己】最近的一些面试感悟
  8. ElasticSearch、Logstash和Kiabana三个开源工具。
  9. oracle数据库 日志满了
  10. RUNOOB python练习题27 递归逆向输出字符串