在数组中查找和等于10的元素-Java
我想从一个和等于10的数组中找到所有的数字对,我试图改进这里的代码:在数组中查找和等于10的元素-Java,java,arrays,sorting,Java,Arrays,Sorting,我想从一个和等于10的数组中找到所有的数字对,我试图改进这里的代码: for (int j = 0; j < arrayOfIntegers.length - 1; j++) { for (int k = j + 1; k < arrayOfIntegers.length; k++) { int sum = arrayOfIntegers[j] + arrayOfIntegers[k]; if (sum == 10)
for (int j = 0; j < arrayOfIntegers.length - 1; j++)
{
for (int k = j + 1; k < arrayOfIntegers.length; k++)
{
int sum = arrayOfIntegers[j] + arrayOfIntegers[k];
if (sum == 10)
return j + "," + k;
}
}
for(int j=0;j
但是,我在移动阵列时遇到问题。以下是我目前掌握的情况:
int[] arrayOfIntegers = {0, 5, 4, 6, 3, 7, 2, 10};
Arrays.sort(arrayOfIntegers);
System.out.println(Arrays.toString(arrayOfIntegers));
int left = arrayOfIntegers[0];
int right = (arrayOfIntegers[arrayOfIntegers.length - 1]);
while (left < right)
{
int sum = left + right;
if (sum == 10) //check to see if equal to 10
{
System.out.println(left + "," + right);
}
if (sum > 10) // if sum is more than 10, move to lesser number
{
right --;
}
if (sum < 10) // if sum is less than 10, move to greater number
{
left++;
}
} // end of while
int[]arrayOfIntegers={0,5,4,6,3,7,2,10};
Arrays.sort(arrayOfIntegers);
System.out.println(Arrays.toString(arrayOfIntegers));
int left=arrayOfIntegers[0];
int right=(arrayOfIntegers[arrayOfIntegers.length-1]);
while(左<右)
{
整数和=左+右;
if(sum==10)//检查是否等于10
{
System.out.println(左+“,”+右);
}
if(sum>10)//如果sum大于10,则移动到较小的数字
{
对--;
}
if(sum<10)//如果sum小于10,则移动到更大的数字
{
左++;
}
}//时间结束
您需要捕获值和索引:
int[] arrayOfIntegers = {0, 5, 4, 6, 3, 7, 2, 10};
Arrays.sort(arrayOfIntegers);
System.out.println(Arrays.toString(arrayOfIntegers));
int left = 0;
int right = arrayOfIntegers.length - 1;
while (left < right)
{
int leftVal = arrayOfIntegers[left];
int rightVal = (arrayOfIntegers[right]);
int sum = leftVal + rightVal;
if (sum == 10) //check to see if equal to 10
{
System.out.println(arrayOfIntegers[left] + "," + arrayOfIntegers[right]);
right --;
left++;
}
if (sum > 10) // if sum is more than 10, move to lesser number
{
right --;
}
if (sum < 10) // if sum is less than 10, move to greater number
{
left++;
}
} // end of while
您需要捕获值和索引:
int[] arrayOfIntegers = {0, 5, 4, 6, 3, 7, 2, 10};
Arrays.sort(arrayOfIntegers);
System.out.println(Arrays.toString(arrayOfIntegers));
int left = 0;
int right = arrayOfIntegers.length - 1;
while (left < right)
{
int leftVal = arrayOfIntegers[left];
int rightVal = (arrayOfIntegers[right]);
int sum = leftVal + rightVal;
if (sum == 10) //check to see if equal to 10
{
System.out.println(arrayOfIntegers[left] + "," + arrayOfIntegers[right]);
right --;
left++;
}
if (sum > 10) // if sum is more than 10, move to lesser number
{
right --;
}
if (sum < 10) // if sum is less than 10, move to greater number
{
left++;
}
} // end of while
这是javascrypt的示例代码。有人可以用它
var arr = [0, 5, 4, 6, 3, 7, 2, 10]
var arr1 = arr;
for(var a=0; a<arr.length;a++){
for(var b=0; b<arr.length; b++){
if(arr[a]+arr[b]===10 && a!==b){
console.log(arr[a]+" + "+arr[b])
arr.splice(a,1);
}
}
}
var arr=[0,5,4,6,3,7,2,10]
var-arr1=arr;
对于(var a=0;a,这是javascrypt的示例代码。有人可以使用它
var arr = [0, 5, 4, 6, 3, 7, 2, 10]
var arr1 = arr;
for(var a=0; a<arr.length;a++){
for(var b=0; b<arr.length; b++){
if(arr[a]+arr[b]===10 && a!==b){
console.log(arr[a]+" + "+arr[b])
arr.splice(a,1);
}
}
}
var arr=[0,5,4,6,3,7,2,10]
var-arr1=arr;
对于(var a=0;a请格式化您的代码。这是难以辨认的。您为什么这样做:如果sum>10那么right--,如果sum<10那么left++
?您的右侧和左侧是值,而不是数组的索引。即使它们是索引,您的数组也不会排序,这样做毫无意义您想“改进”什么实际上?…请格式化你的代码。这是难以辨认的。你为什么这样做:如果sum>10那么right--,如果sum<10那么left++
?你的右边和左边是值,而不是数组的索引。即使它们是索引,你的数组也不会排序,这样做没有意义你想“改进”什么事实上?…我试过你的代码,但还是一无所获。我试过你的代码,但还是一无所获。