2013-08-21 42 views
-5

我有两个数组a []和b []。在另一个数组中存储重复整数序列

int a[]={3,1,1,1,7,4,6,6,3,1}; 
int b[]=new int[a.length]; 

实际问题中的数组长度可能会改变。 数组中的值必须小于所看到的数组长度的值。


输出必须是:

b = 3 1 0 0 7 4 6 0 3 1 

所以基本上,如果有相同的值的在一个[]然后只它的值的第一必须在相同的索引b中被置于[]其余的序列应该是零直到序列存在。


回答java语法将有所帮助。 预先感谢您

+4

你试过了什么?向我们展示一些努力,我们很乐意提供帮助。我们不会做的是为你写作业。 – Aurand

+1

同意。但作为一个暗示,采取这三个步骤。首先,你自己来解决问题。接下来,弄清楚你做到了。最后,代码。换句话说,抛开Java,编程,所有这一切 - 只要弄清楚你是怎么做的人。机会,因为你会使用某种逻辑的步骤。现在只需在代码中写下这些步骤即可。 – yshavit

回答

0

暗示:

1)创建散列映射来存储处理后的值

2)迭代的第一阵列上方:如果当前值被存储在地图,然后填0,否则存储此值并将其复制到新阵列中

+0

这不起作用。他只希望将相同值的序列归零。这将在第一次后删除数字的每个实例。 – resueman

+0

你说得对,我应该读得更好。然后他只需要记住以前的价值。 –

2
int a[]={3,1,1,1,7,4,6,6,3,1}; 
    int b[]=new int[a.length]; 

    int temp = a[0]; 
    b[0] = temp; 

    for(int i = 1; i < a.length; i++) { 
     if(a[i] == temp) 
      b[i] = 0; 
     else 
      b[i] = a[i]; 

     temp = a[i];  
    } 
+2

我不会downvote,因为根据常见问题,这不是“明显错误”,但请不要通过回答这些问题来鼓励这些问题。 – yshavit

+3

你能出现为他做他的测试吗? – resueman

相关问题