אני היית ממיין תחילה את הרשימה לפי סדר עולה (או יורד, לא משנה).
לאחר מכן לבדוק קיצונים ולראות כמה רחוק אתה מהמספר שאתה צריך.
לפי זה להמשיך האלה ע"י בחירה חכמה של האיברים.
אם לדוגמא יש לך
1,4,10,13,18,20
ואתה צריך להגיע ל-15 לצורך העניין, חבל לרוץ על כל האפשרויות.
אם אתה רוצה ש- 20-1=19, אז אפשר לנסות 20-4 או 18-1 ולראות מה יותר מתאים לך. ברור ש-20-4 מקרב אותך יותר, ובמקרה הזה אתה שוב בודק לפי אותו האלגוריתם.
זו רק תאוריה שחשבתי עליה בכמה דקות.. כמובן שצריך לפתח את זה מפה, אבל לדעתי זו דרך יותר מהירה וחכמה למצא את המספר. הכי גרוע זה יקח לך בדיוק את אותה הכמות כמו לרוץ על כל האפשרויות, במקרה הטוב תקלע יותר מהר לצירוף שמתאים לך.
מחשבה אחרת שיש לי שלא למדעתי מספיר אבל לדעתי זה כיוון שאפשר לחקור הוא עצים בינארים. תוך שימוש בעץ בינארי אתה יכול לבצע את זה יותר מהר לדעתי.
|