富阳网站设计,wordpress 分类目录 不显示,欧洲网站设计,广告设计公司介绍文案目录 题目描述#xff1a;输入#xff1a;输出#xff1a;知识点#xff1a;代码实现#xff1a; 题目描述#xff1a; 已知函数 signFunc(x) 将会根据 x 的正负返回特定值#xff1a; 如果 x 是正数#xff0c;返回 1 。 如果 x 是负数#xff0c;返回 -1 。 如果 x … 目录 题目描述输入输出知识点代码实现 题目描述 已知函数 signFunc(x) 将会根据 x 的正负返回特定值 如果 x 是正数返回 1 。 如果 x 是负数返回 -1 。 如果 x 是等于 0 返回 0 。 给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。 返回 signFunc(product) 。 输入 nums [-1,-2,-3,-4,3,2,1] 输出 1 解释数组中所有值的乘积是 144 且 signFunc(144) 1 知识点 在Java中Integer.compare是Integer类的一个静态方法用于比较两个整数的大小。 它的用法如下 public static int compare(int x, int y)compare方法接受两个整数参数 x 和 y并返回一个整数值。返回值有以下几种情况 如果 x 小于 y则返回一个负数通常是 -1。如果 x 等于 y则返回 0。如果 x 大于 y则返回一个正数通常是 1。 下面是一个使用Integer.compare方法的简单示例 int result Integer.compare(5, 10);
System.out.println(result); // 输出 -1因为5小于10在比较整数大小时使用Integer.compare方法比较方便可以直接根据返回值来判断两个整数的大小关系。 代码实现
public class Main {public static void main(String[] args) {//测试int[] nums new int[]{41, 65, 14, 80, 20, 10, 55, 58, 24, 56, 28, 86, 96, 10, 3, 84, 4, 41, 13, 32, 42, 43, 83, 78, 82, 70, 15, -41};System.out.println(arraySign(nums));//-1}public static int arraySign(int[] nums) {//注意不要原数连乘会发生大数乘法越界的问题int res 1;for (int i 0; i nums.length; i) {if (nums[i] 0) {//由于结果只要求判断符号位则直接乘上数组中元素的符号即可res * 1;} else if (nums[i] 0) {//小于零乘上-1res * -1;} else {//等于0乘上0res * 0;}}//与0比较大于返回1小于返回-1等于返回0return Integer.compare(res, 0);}
}