Masalalar
Go Algoritm masala

Ikki Son Yig‘indisi

07 August, 2026
Go
package main

func (_ Solution) TwoNumberSum(array []int, target int) []int {
	
  result := make([]int,0, 2) 
  for index1, item1 := range array {
    for index2 := index1 + 1; index2 < len(array); index2++ {
      item2 := array[index2]
      if index1 != index2 && item1 + item2 == target {
        if item1 > item2 {
            result = append(result, item2, item1)
        } else {
            result = append(result, item1, item2)
        }
      } 
    }
  }
  if len(result) != 0 {
    return  result
  } 
  return []int{}
}

Xop dostlar hammayam xato qiladi. Men bu masalani ishladim va anchagacha yarimida qotib qoldim.


Nima boldi rasmda korinib turganday menda masalan arrayda 10 chiqishi kerak bolsa [4,5,6,7] bolsa 4 va 6 ni orinlari alamshib qoshilyapti sabab indexlari bir xil emas shuning uchun bemalol tushayotgandi forga


lkekin uni oldini oladigan validation qilindi yani ikkta for-loop bor birinchi for loop massivni aylantirib beradi, asosiy ish ikkinchi for da boladi. U yerda birinchi for dan kelgan har bir value ga juftlikni yasaydi ikkinchi for


shuyerda nima bolayotgandi birinchi fordan keladi juftlik topiladi va yana qyata orinlari lamashib kelayotgandi 4 ga ham 6 ga ham yani 4 va 6 .... 6 va 4 bolib


shuning uchun bizning yechim qnaday boladi ikkinchi juftlik topadigan forga yurishalrni index lar orqali boshqarishni qildik yani indexlari bir xil emas shuning uchun otib ketyapti, demak indexlarni boyunsondirish kerak, shunday qilib birinchi forning index iga 1 qoshamiz va uni index2 ga tenglaymiz shunda indexlar birin ketin boladi


yani index2 index1 dan bir qadam oldindan boladi