【问题标题】:Java, return a linkedlist from a linkedlist parameterJava,从链表参数返回链表
【发布时间】:2023-03-22 22:40:02
【问题描述】:

我正在尝试创建一个方法,该方法返回列表中任意两位数字的位置值,总和为零。我遇到困难的地方是:创建返回方法类型,选择要传递的适当参数,并创建一个包含要返回的值的空列表。

任何帮助将不胜感激!

public class TwoSums {

public LinkedList<Integer> sum_values(LinkedList<Integer> input){

(上)我正在尝试(但不确定如何)从该方法返回一个链表。我希望参数是具有 {3,-3,0,1} 等值的列表。我也不确定这里的返回类型应该是什么。

    int iterator = 0;
    int scanner = 0;
    LinkedList positions = new LinkedList<Integer>();

(上)我正在尝试创建一个空列表,如果它们的总和为零,我可以将参数的位置值推送到该列表中

    while(iterator<input.length){ 
        if (iterator + scanner !=0){
            scanner ++;}
        else if (iterator + scanner ==0){
            //push iterator and scanner values to the linkedlist

【问题讨论】:

  • 提示:阅读 java 命名约定。 _ 字符的唯一位置是 SOME_CONSTANT;您不会将其用于其他任何事情。

标签: java list methods collections parameters


【解决方案1】:

这可能是你的功课,所以我只是给你一些指导思想;我不会为你做这项工作!

首先,返回类型。问题是:您不能只返回 单个 个数字。因为,您对 的数字感兴趣。因此,您需要一些类,例如

public class IndexPair {
  private final int firstIndex;
  private final int secondIndex;

  public IndexPair(int first, int second) { this.firstIndex = first ...

然后您的方法可以简单地返回一个List&lt;IndexPair&gt; 对象。注意:如果你在这里是认真的,你会想要覆盖 equals 方法,例如;为了便于比较 IndexPair 对象。

当然:Java 已经知道一些可以在这里使用的 Pair 类;而不是发明自己的东西。

另一个问题:找到这些对。一个天真的解决方案是:

List<IndexPair> results = new ArrayList<>();
for (int firstIndex = 0; firstIndex < input.size(); firstIndex++) {
  for (int secondIndex = firstIndex+1; secondIndex < input.size(); secondIndex++) {
    if (input.get(firstIndex) + input.get(secondIndex) == 0) {
       results.add(new IndexPair(firstIndex, secondIndex));

如前所述;以上是为了让你继续前进。该代码中可能存在一些拼写错误或细微的错误。以它为灵感并与之合作,直到它满足您的需求!

编辑:调用你的方法就像

List<IndexPair> pairs = sum_values(Arrays.asList(-3, 3, 0, 0)) 

例如。但请理解:那是非常基本的东西。只需阅读列表和数组即可。这些东西已经被记录了很多次了。

【讨论】:

  • 嗨@GhostCat 我仍然困惑的是如何在参数中传递值 {3, -3, 0,1}。对于传递给参数的 n 个值,我们是否需要 n 个静态变量?例如){3, -3, 0,1} 的值为 firstIndex...fourthIndex。然后似乎我们正在循环比较静态值,如果两个总和为零,则返回该对?抱歉,我只是一个在这里试图解决这个问题的大新手。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
相关资源
最近更新 更多