สมมติว่าเรามีค่า n ให้พิจารณาอาร์เรย์ nums ที่มีองค์ประกอบ n โดยที่ arr[i] =(2*i)+1 สำหรับ i ทั้งหมด ในการดำเนินการครั้งเดียว เราสามารถเลือกดัชนี x และ y ได้ 2 ตัว โดยที่ 0 <=x, y
ดังนั้น ถ้าอินพุตเป็น n =4 ผลลัพธ์จะเป็น 4 ส่วน n อาร์เรย์คือ [1,3,5,7] ตอนนี้หลังจากดำเนินการครั้งแรก เราสามารถสร้างอาร์เรย์ได้เช่น [2,3,5,6 ] หลังจากการผ่าตัดครั้งที่สอง เราสามารถทำได้ [3,3,5,5] จากนั้นหลังจากครั้งที่สาม [4,3,4,5] และสุดท้าย [4,4,4,4] ตอนนี้ทุกอย่างเท่าเทียมกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
ตอบ:=0
ถ้า n เท่ากับ 1 แล้ว
กลับมาอีกครั้ง
q:=ผลหารของ (n/2) -1
เจ:=1
ในขณะที่ q>=0, ทำ
ans:=ans + (n-j)
q :=q - 1
เจ :=เจ + 2
กลับมาอีกครั้ง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
ตัวอย่าง
def solve(n):
ans=0
if n==1:
return ans
q=(n//2)-1
j=1
while q>=0:
ans=ans+(n-j)
q-=1
j+=2
return ans
n = 4
print(solve(n))
อินพุต
4
ผลลัพธ์
4