【发布时间】:2009-06-29 18:33:26
【问题描述】:
我需要找出大于或小于1 的数字出现在数组中的次数。
例如,如果我有一个数组:
{1,1,1,2,3,-18,45,1}
这里大于或小于一的数字只出现一次
另一个例子,如果我有一个数组
{1,1,1,2,3,-18,45,1,0}
这里大于或小于一的数字出现两次,即倒数第二个出现1,之后出现0
再举一个例子
{1,1,2,3,1,-18,26,1}
这里大于或小于一的数字出现两次,一组是{2,3},那是一次,另一组是{-18,26},所以那是两次。
到目前为止,我能够循环数组,但我卡住了.. 怎么做
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine(isOneBalanced(new int[] { 1, 1, 1, 2, -18, 45, 1 }));
}
static int isOneBalanced(int[] a)
{
foreach(int a1 in a)
{
}
return 0;
}
}
如何做到这一点有人可以帮助我吗?
【问题讨论】:
-
你能改写这个“如果我有一个数组 {1,1,1,2,3,-18,45,1} 这里大于或小于一个的数字只出现一次”我不确定你在说什么。
-
我的意思是介于 1s 之间的数字组只出现一次,即如果数组是 {1,1,2,3,1,4,5,1} 那么从 {2 ,3} 和 {4,5} 出现在 1s 之间应该算两次
-
基本上需要统计数组中每一项不为1的序列的个数,这样对吗?如果是这样,艾伦的回答是正确的(至少当他删除 -1 的提及时,正如我所指出的那样)。
-
urm... 我不太明白艾伦给出的答案,我的意思是,我们可以设置一个布尔值来查看我们是否在非 1 系列中,但我们如何计算整个非1 系列为 1
-
@Jarus:这并不是他所说的布尔值的意思。该值决定了您是否已经为这个特定的非 1 系列增加了计数器……因此,请确保添加一次,但只添加一次。您可以在下面查看我的答案以了解有关此问题的更多详细信息,但 Alan 在基础知识方面非常接近(我认为只有他在“-1”上的那一点让我觉得错了。)
标签: c# comparison iteration