有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

但是,我在移动阵列时遇到了问题。以下是我目前掌握的情况:

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

共 (1) 个答案

  1. # 1 楼答案

    这是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);
    
        }
      }
     }