คำชี้แจงปัญหา
กำหนดอาร์เรย์ขนาด N และแต่ละองค์ประกอบเป็น 1 หรือ 0 ภารกิจคือการคำนวณจำนวนการดำเนินการขั้นต่ำที่จะดำเนินการเพื่อแปลงองค์ประกอบทั้งหมดเป็นศูนย์ หนึ่งสามารถดำเนินการด้านล่างการดำเนินงาน -
หากองค์ประกอบเป็น 1 คุณสามารถเปลี่ยนค่าของมันเป็น 0 แล้ว -
-
หากองค์ประกอบที่ต่อเนื่องกันถัดไปคือ 1 องค์ประกอบนั้นจะถูกแปลงเป็น 0 โดยอัตโนมัติ
-
หากองค์ประกอบที่ต่อเนื่องกันเป็น 0 อยู่แล้วจะไม่มีอะไรเกิดขึ้น
ถ้า arr[] ={1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1} จำเป็นต้องมี 4 การดำเนินการเพื่อทำให้องค์ประกอบทั้งหมดเป็นศูนย์ก่อน>อัลกอริทึม
1.หากองค์ประกอบปัจจุบันเป็น 1 ให้เพิ่มการนับและค้นหา 0 ถัดไปเนื่องจาก 1 ที่ต่อเนื่องกันทั้งหมดจะถูกแปลงเป็น 0.2 โดยอัตโนมัติ คืนจำนวนสุดท้ายตัวอย่าง
#include#define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) โดยใช้เนมสเปซ std;int performMinOperation(int *arr, int n){ int i, cnt =0; สำหรับ (i =0; i ผลลัพธ์
เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -
การดำเนินการที่จำเป็นขั้นต่ำ =4