Card 1:
  - Q: What is the difference between "dynamic programming" and "divide and conquer"?
  - A: In divide and conquer, the problems are solved independently. In dynamic programming, the results of these smaller sub-problems are remembered and used for other sub-problems.

Card 2:
  - Q: Where is dynamic programming used?
  - A: It is used where we have problems, which can be divided into similar sub-problems, so that their results can be re-used.

Card 3:
  - Q: What will a dynamic algorithm do before solving the in-hand sub-problem?
  - A: It will try to examine the results of the previously solved sub-problems.

Card 4:
  - Q: How do dynamic algorithms use Memoization?
  - A: To remember the output of already solved sub-problems.

Card 5:
  - Q: what is the difference between greedy and dynamic algorithms?
  - A: Greedy algorithms address local optimization. Dynamic algorithms are motivated by overall optimization.
การ์ด 1: - ถาม: อะไรคือความแตกต่างระหว่าง "การเขียนโปรแกรมแบบไดนามิก" และ "แบ่งและพิชิต"? - ตอบ: ในการแบ่งแยกและพิชิต ปัญหาต่างๆ ได้รับการแก้ไขอย่างเป็นอิสระ ในการเขียนโปรแกรมแบบไดนามิก ผลลัพธ์ของปัญหาย่อยเล็กๆ น้อยๆ เหล่านี้จะถูกจดจำและนำไปใช้กับปัญหาย่อยอื่นๆ การ์ด 2: - ถาม: การเขียนโปรแกรมแบบไดนามิกใช้ที่ไหน? - A: ใช้ในกรณีที่มีปัญหาซึ่งสามารถแบ่งออกเป็นปัญหาย่อยที่คล้ายคลึงกันเพื่อนำผลกลับมาใช้ใหม่ได้ การ์ด 3: - ถาม: อัลกอริธึมแบบไดนามิกจะทำอะไรก่อนที่จะแก้ไขปัญหาย่อยในมือ? - ตอบ: จะพยายามตรวจสอบผลลัพธ์ของปัญหาย่อยที่แก้ไขไปก่อนหน้านี้ การ์ด 4: - ถาม: อัลกอริธึมไดนามิกใช้ Memoization อย่างไร - A: เพื่อจดจำผลลัพธ์ของปัญหาย่อยที่ได้รับการแก้ไขแล้ว การ์ด 5: - ถาม: อะไรคือความแตกต่างระหว่างอัลกอริธึมโลภและไดนามิก? ตอบ: อัลกอริธึม Greedy จัดการกับการเพิ่มประสิทธิภาพเฉพาะที่ อัลกอริธึมแบบไดนามิกได้รับแรงบันดาลใจจากการปรับให้เหมาะสมโดยรวม
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence