สมมติว่าเรามีตัวเลข n ซึ่งหมายถึงโปรแกรมเมอร์ที่ต้องการเข้าร่วมการประชุม และเรายังมีรายการตัวเลขด้วย การประชุมที่ 1 หมายถึงโปรแกรมเมอร์ และ 0 หมายถึงพื้นที่ว่าง ตอนนี้เงื่อนไขคือไม่มีโปรแกรมเมอร์สองคนนั่งติดกันเราต้องตรวจสอบว่าโปรแกรมเมอร์ n ทั้งหมดสามารถเข้าร่วมการประชุมได้หรือไม่
ดังนั้น หากอินพุตเป็น n =2 แบบแผน =[0, 0, 1, 0, 0, 0, 1] ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับผมอยู่ในช่วง 0 ถึงขนาดของ Conv. ทำ
- a:=0 เมื่อ i-1 <0 มิฉะนั้น i-1
- b:=ขนาดของ Conv -1 เมื่อ i+1>=ขนาดของ Conv. มิฉะนั้น i+1
- หาก Conv[i] เหมือนกับ 0 และ conv[a] เหมือนกับ 0 และ conv[b] เหมือนกับ 0 ดังนั้น
- Conv[i]:=1
- n :=n - 1
- คืนค่าจริงเมื่อ n <=0 มิฉะนั้น 0
ตัวอย่าง
class Solution: def solve(self, n, conv): for i in range(len(conv)): a=0 if i-1<0 else i-1 b=len(conv)-1 if i+1>=len(conv) else i+1 if conv[i]==0 and conv[a]==0 and conv[b]==0: conv[i]=1 n-=1 return n<=0 ob = Solution() n = 2 convention = [0, 0, 1, 0, 0, 0, 1] print(ob.solve(n, convention))
อินพุต
2, [0, 0, 1, 0, 0, 0, 1]
ผลลัพธ์
True