当前位置: 首页 > 知识库问答 >
问题:

对两个Sum II-输入数组进行排序

支华池
2023-03-14

Leetcode#167几乎与#1相同,但为什么我不能只添加一个if条件?

函数twoSum应该返回两个数字的索引,使它们相加为目标,其中index1必须小于index2。

注:

返回的答案(index1和index2)不是从零开始的。您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。

The sum of 2 and 7 is 9. 
Therefore index1 = 1, index2 = 2.
class Solution {
public int[] twoSum(int[] numbers, int target) {
        for (int i = 1; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                if (numbers[j] == target - numbers[i]) {
                    if(numbers[i] < numbers[j])
                        return new int[] { i, j };
        }
    }
}
 return null;
}

共有1个答案

罗和煦
2023-03-14

因为问题说array starts from 1并不意味着array在java中是从1开始的,如果你想返回i,j为非零,你应该从1到长度+1,然后在条件中检查索引为i-1,j-1或者只是从0开始并返回i+1,j+1。

class Solution {
  public int[] twoSum(int[] numbers, int target) {
    for (int i = 1; i < numbers.length+1; i++) {
        for (int j = i + 1; j < numbers.length+1; j++) {
            if (numbers[j-1] == target - numbers[i-1]) {
                if(numbers[i-1] < numbers[j-1])
                    return new int[] { i, j };
            }
        }
    }
     return null;
  }
 }

或者你可以做,

    class Solution {
  public int[] twoSum(int[] numbers, int target) {
    for (int i = 0; i < numbers.length; i++) {
        for (int j = i + 1; j < numbers.length; j++) {
            if (numbers[j] == target - numbers[i]) {
                if(numbers[i] < numbers[j])
                    return new int[] { i+1, j+1 };
            }
        }
    }
     return null;
  }
 }
 类似资料:
  • 问题内容: 我有这样的数组 如何按return_fare asc和one_way_fare asc排序值? 我尝试了array_multisort()但最终却得到了混乱的数据。 Asort仅适用于一维数组,我需要按两个或多个值进行排序,我如何才能像SQL中那样实现此功能,按field1 asc,field2 asc排序? 问题答案: 是正确的函数,您必须以某种方式搞砸了: 如果您在PHP的手册页上

  • 我想按时间对两个json数组stream和stream 1进行排序。 每个数组中时间最近的记录将排在最前面。时间的格式类似于分钟前、天前的值 这是我到目前为止的代码: 我需要对数组进行排序,首先显示每个数组中最近的项目,然后是下一个最近的项目,依此类推。

  • 我正在尝试使用Java对由整数对字符串组成的数组进行排序 输入为: 所需的输出是:

  • 因此,我试图学习如何为类项目排序数组。我想知道如何对一个数组进行排序,从而对另一个数组进行排序。在下面的代码中,我可以对年份数组进行排序,但我如何才能使更改这一数组将名称和艺术家数组都更改为它们排列的数组呢?此外,如果你有任何建议,让代码对眼睛不那么苛刻,请告诉我,我正在努力掌握这个概念。

  • 整个项目是从一个文件中获取数据,该文件是一个文本文件,其中载有所有201个国家的名单及其按字母顺序排列的各自互联网使用率。这里有一个例子

  • 问题内容: 是否可以对看起来像这样的数组进行排序和重新排列: 匹配此数组的安排: 不幸的是,我没有任何要跟踪的ID。我将需要优先处理items-array,以使其尽可能接近sortingArr。 更新: 这是我正在寻找的输出: 任何想法如何做到这一点? 问题答案: 就像是: 这是一个较短的代码,但是会破坏数组: