【问题标题】:Partition Negative and Positive in an Array in java在java中的数组中划分负数和正数
【发布时间】:2021-10-30 14:55:56
【问题描述】:

给定一个包含 n 个整数的数组,包括正数和负数。您需要将它们划分为两个不同的数组,而无需直接将任何元素与 0、1、-1 或任何其他固定值进行比较。将 0 视为正数。如果 arr[0] 是正数,则在输出的第一行以给定顺序打印所有正数,然后在输出的第二行以给定顺序打印所有负数,反之亦然。 笔记: 如果数组只包含正数,则在第一行打印正数,在第二行打印“数组没有负数”。 如果数组只包含负数,则在第一行打印负数,在第二行打印“数组没有正数”。

输入:输入应采用以下格式: 第一行应该是数组中元素的数量。 第二行应该是n个元素的数组空间分隔。

输出:输出应采用以下格式: 如果 arr[0] 是负数,则在输出的第一行以给定顺序打印所有负数,然后在输出的第二行以给定顺序打印所有正数,反之亦然。 每个输出行的每个元素都应该用空格分隔。

【问题讨论】:

  • 为了帮助更好地回答问题,您需要提供您尝试过的代码/配置 sn-ps、您遇到的错误以及您查找的文档。请考虑改进您的问题。理想情况下,问题应该包括您迄今为止为解决该问题所做的工作的总结,以及您在解决该问题时遇到的困难的描述。

标签: arrays


【解决方案1】:

您可以通过添加两个数字来实现这一点,从中您可以找出哪个数字是正数

int sum = s1 + s1; // 
 //eg 1+2=3 if sum is greater than both numbers , both are positive
if(sum>=s1 && sum>=s2 ){
   // Both are positive
}
//eg -1-2=-3 if sum is lesser than both numbers , both are negative
else if (sum<s1 && sum<s2){
  //Both are negative
}
/* 
 *If none of the above case don't pass, we can confirm that only one of
 * the number is negative ,so the lesser number is negative and other one 
 * is positive
*/
else if (s1<s2){
  // s1 is negative and s2 is positive
} 
else{
  // s2 is negative and s1 is positive
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-22
    • 2014-08-31
    • 2014-12-05
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多