package main
func (_ Solution) BestSeat(seats []int) int {
var maxSegment int
var currentSegmentLength int
var bigIndex int
var segmentStart int
for i := 1; i < len(seats); i++ {
if seats[i] != 1 {
if currentSegmentLength == 0 {
segmentStart = i
}
currentSegmentLength++
} else {
if currentSegmentLength > maxSegment {
maxSegment = currentSegmentLength
bigIndex = segmentStart + (currentSegmentLength-1)/2
}
currentSegmentLength = 0
}
}
if maxSegment == 0 {
return -1
}
return bigIndex
}
Buyerda biz massiv qabul qilib olamiz, o'rindiqlar uchun va ular 1-orin bor, 0-orin yoq deydi bizga.
boshi bilan oxirini olib xar doim band deypti bu degani for sikl 1 dan boshlanadi
segment - 0,1,0,0,0,0,1,1,0,0 manashuyerda 2 ta bor buyerda segment deganda ketma ket kelagn juftliklar soni
for aylantirmaiz va 1 chiqqanicha sanaymiz va sanoqdan 1 chiqqanida toxtaymiz. Toxtadik va 1 chiqdi keyin sanoqni yana 0 ga tushiramiz shunda segmentlarni nechtaligni bila olamiz nechtadan ekanligni