Как мне добавить индекс вложенного цикла, используя диапазон массива в Go? - PullRequest
0 голосов
/ 21 марта 2019

Я работаю над печатью индекса чисел, который приводит к сумме, которая вводится посредством ввода пользователем.Я в основном использовал традиционный метод использования двух циклов i & j и итерации до длины массива.Однако, когда дело доходит до Go Language, у нас есть возможность получить индекс и значение ключа массива, используя другой формат в Go.

Вот мой рабочий код:

func findKIndex(arr []int, k int) (int, int) {
    index1, index2 := 0, 0
    Length := len(arr)
    for i := 0; i < Length; i++ {
        for j := i + 1; j < Length; j++ {
            if arr[i]+arr[j] == k {
                index1 = i
                index2 = j
            }
        }
    }
    return index1, index2
}

Как мне сделать то же самое, используя:

for idx, key := range arr{
    for idx2, key2 := range arr {
        //statements
    }
}

В принципе, я не могу понять, инициировать внутреннийиндекс с +1 внешнего индекса или может сделать это в одном цикле.

1 Ответ

1 голос
/ 21 марта 2019

Просто переберите срез, начиная с idx+1:

https://play.golang.org/p/KDITT8zQ6q-

for idx, key := range arr{
    for idx2, key2 := range arr[idx+1:] {
        //actual second index is idx + idx2 + 1
        //statements
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...