public static void getLength(int[] arr){
int count=0;
int i;
for(i=0;i<arr.length-1;i++){
if(arr[i]==arr[i+1])
count++;
arr[i]=arr[i+1];
}
for(int x=0;x<arr.length-count-1;x++){
System.out.print(arr[x]+" ");
}
}
这串代码还是有问题,麻烦大家用简洁点的语言写一下。我是初学者。。谢谢大家了
循环体中if条件后面的两句话应该都是这个条件分支的语句吧,用花括号把这两句括起来。
简单点,参考.
int[] array = { 1, 1, 3, 2, 1 };
HashSet hashSet = new HashSet();
for (int i = 0; i < array.length; i++) {
hashSet.add(array[i]);
}
System.out.println(hashSet);
给你说一个思路吧,每次使用一个数和剩余的数进行比较,如果相同就直接删除掉。
写了一下,还是写不出来。能不能写一下。。谢谢
写了半天,应该是对的吧,
public class Demo1 {
public static void main(String[] args) {
int arr[] = { 1, 1, 2, 3, 2, 4, 1, 1, 1, 2, 3 };
arr = test(arr);
for (int i : arr) {
System.out.print(i + " ");
}
}
public static int[] test(int[] arr) {
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
{
arr[j] = arr[len - 1];
len--;
}
}
}
}
int arr1[] = new int[len];
for (int i = 0; i < len; i++) {
arr1[i] = arr[i];
}
if (len == arr.length) {
return arr1;
}
return test(arr1);
}
}
昨晚始终觉得写和别扭,到睡觉时终于想通了,不需要用递归的
public static int[] test(int[] arr) {
int len = arr.length;
for (int i = 0; i < len; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
{
arr[j] = arr[len - 1];
len--;
j--;
}
}
}
}
int arr1[] = new int[len];
for (int i = 0; i < len; i++) {
arr1[i] = arr[i];
}
return arr1;
}