Masalalar
Go Algoritm masala

Eng kichik yuzali to‘rtburchak

11 August, 2026
Go
package main

func abs(x int) int {
  if x < 0 {
    return -x
  }
  return x
}
func (_ Solution) MinimumAreaRectangle(points [][]int) int {
	var height int
  var width int
  var responseArea int

  type Point struct {
      X int
      Y int
  }

  pointMap := make(map[Point]bool)

  for _, point := range points {
      p := Point{
          X: point[0],
          Y: point[1],
      }

      pointMap[p] = true
  }

  for i := 0; i < len(points); i++ {
      x1 := points[i][0]
      y1 := points[i][1]

      for j := i + 1; j < len(points); j++ {
          x2 := points[j][0]
          y2 := points[j][1]

            if pointMap[Point{X: x1, Y: y2}] && pointMap[Point{X: x2, Y: y1}] && x1 != x2 && y1 != y2 {
              width = abs(x2 - x1)
              height = abs(y2 - y1)
              area := width * height

              if responseArea > area || responseArea == 0 {
                responseArea = area
              }
            } 
      }
  }
  if responseArea > 0 {
    return responseArea
  }
	return 0
}

bu masalani ishalshdan oldin X va Y oqlari va hamda kordinatalar orqali nuqtalarni topishni organib olishingiz kerak.


Unda bolsa men algoritmni tushuntiray


1) Point lar uchun struct yozib oldim

2) araydan birinchi juftlikni oldim va undan keyingi juftlikni ikkinchi for bilan

3) if bilan tekshirishni koraylik uyerda bunday bolgan bizda xozir 2 ta nuqta bor demak qolgan ikkta nuqatalrni shulardan kelib chiqib topishimiz kerak uning uchun Point uchun map orqali qidirishni oldim va nuqatalrni mos ravishda mapga berdim u menga bool qaytaradi va true bolsagin va yana bir tekshiruv nuqtalarning kordinatalari ozaro teng bolib qolmasligi kerak yani ustma ust tushib qolmasligi kerak


4) va if qanoatlantirilsagina heightni mos kordinatalarni bir biridan ayrib topamiz va widthni ham shunday

5) ularning kopaytmasi area ni beradi


areani hisoblashda ham eng kichigini olishimiz kerak shuning uchun, dastlab men ozgaruvchiga olganman eng kichigini ushlashlik uchun

xa oxirida return