查找两个 int 数组之间的差异
Finding the difference between two int arrays
我无法找出找出两个整数数组之间差异的算法。 我已经有了一个排序方法,它将运行通过所以数字是按升序排列的。
例如:
SetX = { 1, 2, 3, 4, 5 }
SetY = { 0, 2, 4, 6 }
return应该是SetX中没有出现在SetY中的数字。
所以 结果集 = { 1, 3, 5 }
有时候,如果我做小数组,我会得到正确的答案,但如果我做的数组长度为 4 个或更多整数,它就会给我错误的答案 return。
有人可以查看我的代码并告诉我我做错了什么吗?
public static int firstFruit(int[] setX, int usedSizeSetX, int[] setY, int usedSizeSet2, int[] resultSet) {
int a = 0, b = 0, c = 0;
while( a < usedSizeSetX && b < usedSizeSetY){
if(setX[a] == setY[b]) {
a++;
} else if(setX[a] == setY[b]){
b++;
} else {
resultSet[c++] = setX[a++];
b++;
}
}
return c;
}
我认为您的条件语句有点胡扯。处理应该是:
- 如果 setX[a] > setY[b] -> b++
- 如果 setX[a] < setY[b] -> a++
- Else -> 将 setX[a] 添加到结果中,a++, b++
我无法找出找出两个整数数组之间差异的算法。 我已经有了一个排序方法,它将运行通过所以数字是按升序排列的。
例如:
SetX = { 1, 2, 3, 4, 5 }
SetY = { 0, 2, 4, 6 }
return应该是SetX中没有出现在SetY中的数字。
所以 结果集 = { 1, 3, 5 }
有时候,如果我做小数组,我会得到正确的答案,但如果我做的数组长度为 4 个或更多整数,它就会给我错误的答案 return。
有人可以查看我的代码并告诉我我做错了什么吗?
public static int firstFruit(int[] setX, int usedSizeSetX, int[] setY, int usedSizeSet2, int[] resultSet) {
int a = 0, b = 0, c = 0;
while( a < usedSizeSetX && b < usedSizeSetY){
if(setX[a] == setY[b]) {
a++;
} else if(setX[a] == setY[b]){
b++;
} else {
resultSet[c++] = setX[a++];
b++;
}
}
return c;
}
我认为您的条件语句有点胡扯。处理应该是:
- 如果 setX[a] > setY[b] -> b++
- 如果 setX[a] < setY[b] -> a++
- Else -> 将 setX[a] 添加到结果中,a++, b++