Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在数组中查找和等于10的元素-Java_Java_Arrays_Sorting - Fatal编程技术网

在数组中查找和等于10的元素-Java

在数组中查找和等于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)

我想从一个和等于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++
?你的右边和左边是值,而不是数组的索引。即使它们是索引,你的数组也不会排序,这样做没有意义你想“改进”什么事实上?…我试过你的代码,但还是一无所获。我试过你的代码,但还是一无所获。