2016-05-15 42 views
-2

例如,我有此数组:如何在java中的数字(int)数组中输出序列?

int[] a = {1,1,1,1,5,5,1,1,1}; 
//output: 4 2 3 

换言之,它将打印相同数量的序列。 我已经尝试过这样的:

int doubles_count_while (int a[][], int n, int cestatic) { 
    int result = 1; 
    while (result < n && a[result - 1][cestatic] == a[result][cestatic]) { 
     result++; 
    } 
    return result; 
} 

int doubles_groups(int a[][], int n, int cestatic, int b[]) { 
    int result = 0; 
    int i = 0; 
    while (i < n) { 
     int z = doubles_count_while(a, n-i, a[i][cestatic]); 
     b[result++] = z; i += z; 
    } 
    return result; 
} 
+0

请正确格式化您的代码。你的代码不能产生正确的结果? – luk2302

+0

你在Java 8上吗? – Kayaman

+0

如果你的输入应该是一个'int []',为什么你的方法需要一个'int [] []'?我的意思是,如果你的方法甚至不接受你应该处理的数据类型,除非它有用,否则你怎么可能? – Andreas

回答

2

在发布代码,请张贴它作为MCVE这样我们就可以实际运行它。你也应该告诉我们你期望这段代码做什么它做什么而不是。尝试将其缩小到一行代码,而这些代码并没有达到您期望的效果。

这是一个相当广泛的问题,但我会尽力在一般意义上提供帮助。你需要退后一步,忘记代码。写下你的步骤会跟着,没有电脑,如果有人递给你一堆索引卡片上写着数字,并要求你将它们分组。你会如何做到这一点?

假装你有一个非常愚蠢的朋友谁不知道如何分组卡。你应该能够把你的指示交给那个朋友,并让他们跟随他们在没有任何帮助的情况下对这些卡片进行分组。记住这个朋友多么愚蠢,所以要确保你的指示尽可能小。

当你写出这些指令时,这是一个算法,你可以开始考虑用代码实现。试图深入了解代码而不清楚自己想要做什么只会给你带来很多麻烦。祝你好运。

相关问题