我有两个数组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语法中的答案会有所帮助。 提前谢谢
答案 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];
}
答案 1 :(得分:0)
提示:
1)创建hashmap来存储已处理的值
2)迭代第一个数组:如果当前值存储在map中,则填0,否则将该值存储在HashMap中并将值复制到新数组