Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหา Initial Array จากอาร์เรย์ที่กำหนดหลังการสืบค้นผลรวมของช่วงใน C++


ในปัญหานี้ เราได้รับอาร์เรย์ res[] ที่มีขนาด N งานของเราคือ ค้นหา Initial Array จากอาร์เรย์ที่กำหนดหลังจากการสืบค้นผลรวมของช่วง

เราจำเป็นต้องค้นหาอาร์เรย์เริ่มต้นซึ่งจะคืนค่าอาร์เรย์ rel[] ในการดำเนินการค้นหา [s, e, val] กับอาร์เรย์นั้น

แต่ละคำถาม [s, e, val] ได้รับการแก้ไขเป็น

s -> ดัชนีเริ่มต้น

e -> ดัชนีสิ้นสุด

val -> ค่าอัปเดตที่จะเพิ่มให้กับแต่ละองค์ประกอบจาก s เป็น e ในอาร์เรย์

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

Input :rel[] ={7, 4, 8}Query[][] ={{1, 2, 1},{0, 1, 3}}Output :{4, 0, 7} 

คำอธิบาย

initialArray ={4, 0, 7}; ข้อความค้นหา ={1, 2, 1}; finalArray ={4, 1, 8}initialArray ={4, 1, 8}; ข้อความค้นหา ={0, 1, 3}; finalArray ={7, 4, 8}

แนวทางการแก้ปัญหา

วิธีแก้ปัญหาอย่างง่ายคือการสำรวจคำค้นหาทั้งหมด สำหรับคำค้นหาทั้งหมดแก้ไขโดยใช้วิธีที่เราแก้ไข จากนั้นส่งคืนอาร์เรย์ที่พบในตอนท้าย ในการหา initialArray เราต้องดำเนินการตรงกันข้าม กล่าวคือ ลบออกจากอาร์เรย์ที่กำหนด

ตัวอย่าง

โปรแกรมเพื่อแสดงการทำงานของโซลูชันของเรา

#include ใช้เนมสเปซ std;void calcInitialArrayQueries(int arr[], int n, int query[][3], int q) { สำหรับ (int i =0; i  

ผลลัพธ์

อาร์เรย์เริ่มต้น :7 0 7 -1 6