การแทรกและการลบองค์ประกอบในเมทริกซ์

ฉันได้รับมอบหมายงานที่ฉันมีคำถามที่ถามถึงการใช้งานต่อไปนี้:

insertAtRanks(Integer x, Integer y, Object o): insert a new element to be stored at position (x,y) 

และ

Object removeAtRanks(Integer x, Integer y): remove and return the element at position (x,y)

มีการร้องขอถึงการใช้งานการแทนที่AtRanks โดยที่ฉันต้องแทนที่องค์ประกอบภายในตำแหน่งด้วยพารามิเตอร์

ดังนั้นสิ่งที่ฉันคิดเมื่อใส่และลบองค์ประกอบ เมทริกซ์จะเพิ่มและลดขนาด แต่คำถามของฉันคือทำอย่างไร

ตัวอย่างเช่น

| 3    6|
| 2    5|

หากต้องทำการใส่หมายเลข 8 ที่ตำแหน่ง (1,1) จะเกิดสิ่งต่อไปนี้หรือไม่?

| 3    6|
| 2    8|
| null 5|

แล้วถ้าต้องลบธาตุที่ (1,1) หลังจากนั้น มันจะกลับไปเป็นเหมือนเดิมไหม?

| 3   6|
| 2   5|

แก้ไข:

ฉันใช้ Java สำหรับการนำไปใช้งาน และฉันใช้อาร์เรย์ 2 มิติของคลาสเพื่อแสดงเมทริกซ์


person Drahcir    schedule 01.03.2010    source แหล่งที่มา
comment
+1 สำหรับการระบุโดยสุจริตว่านี่เป็นคำถามเรื่องการบ้าน และแสดงให้เห็นว่าส่วนใดของงานที่คุณมีปัญหา   -  person Kena    schedule 01.03.2010
comment
นั่นอาจเป็นการตัดสินใจในการดำเนินการซึ่งขึ้นอยู่กับคุณหรือควรถามผู้สอน หากพวกเขาไม่ได้ระบุ พวกเขาต้องการให้คุณดำเนินการตามที่เห็นสมควร (อย่างไรก็ตาม แนวคิดปัจจุบันของคุณฟังดูดี ตราบใดที่การลบ เฉพาะ จะถูกลบออกหากมีค่าว่างในแถว/คอลัมน์ที่เกี่ยวข้อง)   -  person Michael Todd    schedule 01.03.2010


คำตอบ (3)


|3    6|
|null 8|
|2    5|

or

|3    6|
|0    8|
|2    5|

or

|3    6|
|2    8|

หรือรูปแบบอื่น ๆ มากมายเสนอแนะตัวเองเป็นทางเลือก ฉันคิดว่าคุณต้องตัดสินใจว่าสิ่งที่คุณถูกขอให้นำไปใช้แล้วจึงนำไปปฏิบัติ

person High Performance Mark    schedule 01.03.2010

ฉันไม่รู้ว่าคุณใช้ภาษาอะไร แต่ควรเป็นภาษาดังนี้:

  • แทรกแถวใหม่ที่มีค่าว่าง
  • สำหรับ i = newSizeOnX จนกระทั่งฉันถึง x (แถวของคุณ) โดยที่ฉันลดลง ให้คัดลอกแถว (m[i+1]=[i])
  • จากนั้นคุณเพียงแค่แทรกวัตถุในตำแหน่ง m[x][y] และเติมส่วนที่เหลือ m[x][y'] (y ทั้งหมด ' != y)
person fern17    schedule 01.03.2010

จนถึงจุดหนึ่ง นี่เป็นคำถามเกี่ยวกับข้อกำหนด

ในระบบปกติ คุณสามารถ:

  • ตัดสินใจที่จะปฏิบัติต่อกรณีเหล่านั้นเสมือนเป็นข้อยกเว้นที่ต้องห้าม และส่งคืนข้อผิดพลาดหรือคำเตือนหากเกิดขึ้น
  • กำหนดพฤติกรรมที่กำหนดไว้ล่วงหน้าโดยเฉพาะ ซึ่งสอดคล้องกับฟังก์ชันทั้งหมดที่คุณนำไปใช้ และมีการบันทึกไว้อย่างชัดเจน

ตัวอย่างเช่น การกรอกเมทริกซ์ล่วงหน้าด้วยเลขศูนย์หรือไม่ใช่ตัวเลขเป็นวิธีทั่วไปวิธีหนึ่งในการจัดการกับปัญหาแรกของคุณ Matlab จัดการสิ่งนี้ตามค่าเริ่มต้นอย่างไร

นอกจากนี้ยังขึ้นอยู่กับแอปพลิเคชันด้วย ตัวอย่างเช่น หากคุณกำลังทำงานกับรูปภาพ ในกรณีส่วนใหญ่คุณไม่ต้องการให้มีขนาดเกินขนาดรูปภาพต้นฉบับ หากคุณกำลังทำงานกับเสียง กรณีเริ่มต้นน่าจะแทรกความเงียบเมื่อขยายลำดับข้อมูล อะไรเหมาะสมที่สุดสำหรับการสมัครของคุณ?

person Kena    schedule 01.03.2010