เมื่อใดจึงควรปรับให้เหมาะสมสำหรับหน่วยความจำและประสิทธิภาพความเร็วสำหรับวิธีการ?
ฉันเพิ่งสัมภาษณ์ที่อเมซอน ในระหว่างเซสชันการเข้ารหัสผู้สัมภาษณ์ถามว่าทำไมฉันถึงประกาศตัวแปรในวิธีหนึ่ง ฉันอธิบายกระบวนการของฉันและเขาท้าทายให้ฉันแก้ปัญหาเดียวกันโดยมีตัวแปรน้อยลง ยกตัวอย่างเช่น (นี่คือไม่ได้มาจากการสัมภาษณ์) ผมเริ่มต้นด้วยวิธี A:แล้วดีขึ้นก็จะวิธีการ Bint sโดยการเอา เขายินดีและกล่าวว่าวิธีนี้จะลดการใช้หน่วยความจำด้วยวิธีนี้ ฉันเข้าใจตรรกะเบื้องหลัง แต่คำถามของฉันคือ: เมื่อใดจึงเหมาะสมที่จะใช้วิธี A กับวิธี B และในทางกลับกัน คุณจะเห็นว่าA วิธีการที่เป็นไปได้ใช้หน่วยความจำที่สูงขึ้นเนื่องจากint sมีการประกาศ a + bแต่มันเท่านั้นที่มีการดำเนินการอย่างใดอย่างหนึ่งในการคำนวณคือ ในทางกลับกันวิธีการ Bมีการใช้หน่วยความจำลดลง แต่ต้องทำการคำนวณa + bสองครั้งคือสองครั้ง ฉันจะใช้เทคนิคหนึ่งเหนือเทคนิคอื่นได้อย่างไร หรือเป็นหนึ่งในเทคนิคที่ต้องการมากกว่าเสมอ? สิ่งที่ต้องพิจารณาเมื่อประเมินทั้งสองวิธีมีอะไรบ้าง วิธี A: private bool IsSumInRange(int a, int b) { int s = a + b; if (s > 1000 …