SlideShare a Scribd company logo
1 of 127
‫פגישה‬5
2015
(с) Igor Kleiner
‫הייטק‬ ‫למשרת‬ ‫עבודה‬ ‫לראיון‬ ‫הכנה‬ ‫סדנת‬
PROGRAMMING INTERVIEWS EXPOSED
ABOUT COURSE
REMINDER
RESUMES
RESUMES
• Everyone will ask you to see resume
RESUMES
• Everyone will ask you to see resume
• Good resume is necessary but not sufficient
RESUME EXAMPLE
RESUMES
• Sell yourself
•‫את‬ ‫לספר‬ ‫לא‬ ‫היא‬ ‫החיים‬ ‫קורות‬ ‫של‬ ‫המטרה‬
‫ההסטורי‬‫י‬‫שלך‬ ‫ה‬,‫עבודה‬ ‫למצוא‬ ‫אלה‬
RESUMES
• Keep it short
‫מספיק‬ ‫סטודנט‬ ‫או‬ ‫מתחיל‬ ‫למהנדס‬ ‫כלל‬ ‫בדרך‬
‫עמוד‬1
RESUMES
• List the right information: use buzzwords – R,
JAVA, OPENCL, …
RESUMES
• Be clear: don’t use many fonts or formats
RESUMES
• Include only relevant information
•‫נלדתה‬ ‫איפה‬ ‫לציין‬ ‫חייבים‬ ‫לא‬
•‫סיימתה‬ ‫ספר‬ ‫בית‬ ‫איזה‬
•‫מיד‬ ‫לרשום‬ ‫כדאי‬ ‫לא‬‫ע‬‫אבל‬ ‫לעזור‬ ‫יכול‬ ‫שלא‬
‫לפגוע‬ ‫עלול‬
RESUMES
• Use reverse chronological order
RESUMES
• Always proofread
•‫כתיב‬ ‫טעויות‬ ‫שאין‬ ‫לבדוק‬ ‫כדאי‬
RESUME - EXAMPLE
RESUME - EXAMPLE
RESUME - EXAMPLE
RESUME
• Checklist
• 1 page
• only relevant information
• well structured
• reverse chronological order
• buzzwords
RESUME
•‫החיים‬ ‫קורות‬ ‫מספר‬ ‫להכין‬ ‫כדאי‬ ‫לפעמים‬
‫מסוימים‬ ‫לתפקידים‬ ‫יתור‬ ‫שמתאים‬
•‫החיים‬ ‫קורות‬ ‫להכין‬ ‫עדיף‬ ‫לפעמים‬
‫באנגלית‬ ‫ולפעמים‬ ‫בעיברית‬
INVARIANT QUESTIONS
INVARIANT QUESTIONS
CHESS
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•2*2
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•2*2–‫אפשר‬ ‫אי‬
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4-
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
•‫ניחוש‬:
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
•‫ניחוש‬:‫אפשרית‬ ‫בילתי‬ ‫המשימה‬ ‫כנראה‬
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
•‫ניחוש‬:‫אפשרית‬ ‫בילתי‬ ‫המשימה‬ ‫כנראה‬
•‫נוכיח‬ ‫איך‬?
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
•‫ניחוש‬:‫אפשרית‬ ‫בילתי‬ ‫המשימה‬ ‫כנראה‬
•‫נוכיח‬ ‫איך‬?
•‫אינוריאנט‬–‫משבצת‬ ‫מכסה‬ ‫דומינו‬ ‫כל‬
‫שחורה‬1‫אחד‬ ‫לבנה‬ ‫ומשבצת‬
INVARIANT QUESTIONS
CHESS
•‫לוח‬ ‫על‬ ‫השאלה‬ ‫את‬ ‫לפתור‬ ‫לנסות‬ ‫אפשר‬
•4*4–‫אפשר‬ ‫אי‬
•‫ניחוש‬:‫אפשרית‬ ‫בילתי‬ ‫המשימה‬ ‫כנראה‬
•‫נוכיח‬ ‫איך‬?
•‫אינוריאנט‬–‫שחורה‬ ‫משבצת‬ ‫מכסה‬ ‫דומינו‬ ‫כל‬
1‫אחד‬ ‫לבנה‬ ‫ומשבצת‬,‫יש‬ ‫אבל‬32–30
‫משבצות‬
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
INVARIANT QUESTIONS
MARBLES
•‫כאן‬ ‫שמורה‬ ‫מה‬?
INVARIANT QUESTIONS
MARBLES
•‫כאן‬ ‫שמורה‬ ‫מה‬:
•‫קצת‬ ‫נחשוב‬ ‫אם‬,‫האדומים‬ ‫שכמות‬ ‫נראה‬
‫זוגי‬ ‫במספר‬ ‫משתנה‬ ‫פעם‬ ‫כל‬0‫או‬2
•‫יש‬ ‫בהתחלה‬5‫אם‬ ‫בסוף‬ ‫ולכן‬ ‫אדמים‬
‫אדומה‬ ‫היא‬ ‫אז‬ ‫אחד‬ ‫אבן‬ ‫ישאר‬.
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
1 2 3 4 5 6 7
1 2 3 5 8 13 ?
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פתרון‬:
•‫א‬)‫למראיין‬ ‫שאלות‬
•‫ב‬)‫הבעיה‬ ‫את‬ ‫לחקות‬ ‫נתחיל‬:
1 2 3 4 5 6 7
1 2 3 5 8 13 21
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫ניחוש‬–
1 2 3 4 5 6 7
1 2 3 5 8 13 21
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫ניחוש‬–‫פיובנצי‬ ‫סדרת‬
1 2 3 4 5 6 7
1 2 3 5 8 13 21
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫ניחוש‬–‫פיובנצי‬ ‫סדרת‬
•‫נכונות‬ ‫נוכיח‬ ‫איך‬?
1 2 3 4 5 6 7
1 2 3 5 8 13 21
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫ניחוש‬–‫פיובנצי‬ ‫סדרת‬
•‫נכונות‬ ‫נוכיח‬ ‫איך‬
•‫באינדוקציה‬ ‫אפשר‬
•‫דינמי‬ ‫תכנות‬
•‫יוצרת‬ ‫פונקצייה‬
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•‫ב‬ ‫נסמם‬-a(n)‫האפשריות‬ ‫העליות‬ ‫כמות‬ ‫את‬
‫ממדרגה‬n‫הסוף‬ ‫עד‬.
•‫שלנו‬ ‫המטרה‬ ‫אזי‬?
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•‫ב‬ ‫נסמם‬-a(n)‫האפשריות‬ ‫העליות‬ ‫כמות‬ ‫את‬
‫ממדרגה‬n‫הסוף‬ ‫עד‬.
•‫שלנו‬ ‫המטרה‬ ‫אזי‬a(1) = :
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•‫ב‬ ‫נסמם‬-a(n)‫האפשריות‬ ‫העליות‬ ‫כמות‬ ‫את‬
‫ממדרגה‬n‫הסוף‬ ‫עד‬.
•‫שלנו‬ ‫המטרה‬ ‫אזי‬a(1) = :
•a(N)=1
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•‫ב‬ ‫נסמם‬-a(n)‫האפשריות‬ ‫העליות‬ ‫כמות‬ ‫את‬
‫ממדרגה‬n‫הסוף‬ ‫עד‬.
•‫שלנו‬ ‫המטרה‬ ‫אזי‬a(1) = :
•a(N)=1a(N-1)=1
•a(k)=a(k+1)+a(k+2)
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•‫ב‬ ‫נסמם‬-a(n)‫האפשריות‬ ‫העליות‬ ‫כמות‬ ‫את‬
‫ממדרגה‬n‫הסוף‬ ‫עד‬.
•‫שלנו‬ ‫המטרה‬ ‫אזי‬a(1) = :
•a(N)=1a(N-1)=1
•a(k)=a(k+1)+a(k+2)‫המשוואות‬ ‫את‬ ‫בידיוק‬ ‫ואלו‬
‫פיובנצי‬ ‫סדרת‬ ‫של‬
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•a(k)=a(k+1)+a(k+2)
‫סיבוכיות‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫דינמי‬ ‫תכנות‬ ‫בעזרת‬ ‫השאלה‬ ‫את‬ ‫נפתור‬:
•a(k)=a(k+1)+a(k+2)
‫סיבוכיות‬:O(n)
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פשוט‬ ‫תחתון‬ ‫חסם‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫פשוט‬ ‫תחתון‬ ‫חסם‬:
MAGIC STAIRS
•‫בן‬ ‫בסולם‬ ‫לעלות‬ ‫ניתן‬ ‫אפשרויות‬ ‫בכמה‬N
‫מדרגות‬,‫בגודל‬ ‫הוא‬ ‫צעד‬ ‫כל‬ ‫כאשר‬1‫או‬2
•‫כסם‬ ‫פתרון‬–‫יוצרת‬ ‫פונקצייה‬
MISSING ELEMENT
‫מערך‬ ‫נתון‬A‫חיובים‬ ‫שלמים‬ ‫מספרים‬ ‫של‬.
‫מערך‬ ‫בונים‬B‫הבא‬ ‫באופן‬:‫איברי‬ ‫את‬ ‫אקראית‬ ‫מערבבים‬
‫של‬A‫אחרון‬ ‫איבר‬ ‫ומוחקים‬
MISSING ELEMENT
‫מערך‬ ‫נתון‬A‫חיובים‬ ‫שלמים‬ ‫מספרים‬ ‫של‬.
‫מערך‬ ‫בונים‬B‫הבא‬ ‫באופן‬:‫איברי‬ ‫את‬ ‫אקראית‬ ‫מערבבים‬
‫של‬A‫אחרון‬ ‫איבר‬ ‫ומוחקים‬
MISSING ELEMENT
‫האלמנט‬ ‫את‬ ‫שמחזיר‬ ‫יעיל‬ ‫אלגוריתם‬ ‫פתח‬
‫במערך‬ ‫החוסר‬B
MISSING ELEMENT
‫האלמנט‬ ‫את‬ ‫שמחזיר‬ ‫יעיל‬ ‫אלגוריתם‬ ‫פתח‬
‫במערך‬ ‫החוסר‬B
MISSING ELEMENT
•‫למראיון‬ ‫שאלות‬?
•‫זהים‬ ‫מספרים‬ ‫במערך‬ ‫יש‬ ‫האם‬?
•‫נראה‬ ‫האם‬6‫פתרונות‬
•‫לבד‬ ‫האפשריות‬ ‫פתרונות‬ ‫על‬ ‫חשבו‬
MISSING ELEMENT
•‫נאיבי‬ ‫פרתרון‬:
MISSING ELEMENT
•‫הנאיבי‬ ‫פרתרון‬:
•‫מ‬ ‫איבר‬ ‫כל‬ ‫על‬ ‫נעבור‬-A‫הוא‬ ‫האם‬ ‫ונבדוק‬
‫ב‬-B
MISSING ELEMENT
•‫הנאיבי‬ ‫פרתרון‬:
•‫מ‬ ‫איבר‬ ‫כל‬ ‫על‬ ‫נעבור‬-A‫הוא‬ ‫האם‬ ‫ונבדוק‬
‫ב‬-B
• for i=1 to size(A)
• check if A[i] in B “(for j=1 to size(B))”
• end
MISSING ELEMENT
•‫הנאיבי‬ ‫פרתרון‬:
•‫מ‬ ‫איבר‬ ‫כל‬ ‫על‬ ‫נעבור‬-A‫הוא‬ ‫האם‬ ‫ונבדוק‬
‫ב‬-B
• for i=1 to size(A)
• check if A[i] in B “(for j=1 to size(B))”
• end
• time complexity:
MISSING ELEMENT
•‫הנאיבי‬ ‫פרתרון‬:
•‫מ‬ ‫איבר‬ ‫כל‬ ‫על‬ ‫נעבור‬-A‫הוא‬ ‫האם‬ ‫ונבדוק‬
‫ב‬-B
• for i=1 to size(A)
• check if A[i] in B “(for j=1 to size(B))”
• end
• time complexity: size(A)*size(B)= O(n^2)
MISSING ELEMENT
•‫סיכום‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫יור‬ ‫לפתרון‬ ‫חסם‬ ‫מהווה‬ ‫נאיבי‬ ‫פתרון‬
‫יעיל‬
•‫מפחדים‬ ‫לא‬ ‫שאתם‬ ‫מראה‬ ‫נאיבי‬ ‫פתרון‬
‫אותה‬ ‫לפתור‬ ‫ומתחילים‬ ‫משאלה‬
•‫נאיבי‬ ‫פתרון‬ ‫על‬ ‫חשיבה‬ ‫בזמן‬ ‫לפעמים‬
‫אותו‬ ‫לשפר‬ ‫האך‬ ‫להבין‬ ‫אשר‬
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫יעיל‬ ‫לא‬ ‫באופן‬ ‫פעם‬ ‫כל‬ ‫לחפש‬ ‫למה‬?
•‫את‬ ‫נמיין‬B‫בינרי‬ ‫בחיפוש‬ ‫נעזר‬ ‫ואז‬
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫יעיל‬ ‫לא‬ ‫באופן‬ ‫פעם‬ ‫כל‬ ‫לחפש‬ ‫למה‬?
•‫את‬ ‫נמיין‬B‫בינרי‬ ‫בחיפוש‬ ‫נעזר‬ ‫ואז‬
•‫את‬ ‫נמיין‬ ‫איך‬B?
•‫מיונים‬ ‫על‬ ‫לשאלות‬ ‫מוכנים‬ ‫תהיו‬?
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫יעיל‬ ‫לא‬ ‫באופן‬ ‫פעם‬ ‫כל‬ ‫לחפש‬ ‫למה‬?
•‫את‬ ‫נמיין‬B‫בינרי‬ ‫בחיפוש‬ ‫נעזר‬ ‫ואז‬
•‫את‬ ‫נמיין‬ ‫איך‬B?quick sort
•‫מיונים‬ ‫על‬ ‫לשאלות‬ ‫מוכנים‬ ‫תהיו‬?
SORTING ALGORITHMS
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
• Sort(B)
• For each a in A
• Check if a is in B
• end
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
• Sort(B) // nlgn
• For each a in A // n
• Check if a is in B //lgn
• end
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
• Sort(B) // nlgn
• For each a in A // n
• Check if a is in B //lgn
• end
• Time complexity:
MISSING ELEMENT
•‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
• Sort(B) // nlgn
• For each a in A // n
• Check if a is in B //lgn
• end
• Time complexity: n*lg(n)
MISSING ELEMENT
•‫ב‬ ‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫מערך‬ ‫גם‬ ‫נמיין‬ ‫אולי‬A?
MISSING ELEMENT
•‫ב‬ ‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫מערך‬ ‫גם‬ ‫נמיין‬ ‫אולי‬A?
• Sort(B), Sort A // nlgn
• for i=1 to N
• check if A[i]==B[i]
• end
• time complexity:
MISSING ELEMENT
•‫ב‬ ‫משופר‬ ‫הנאיבי‬ ‫פרתרון‬:
•‫מערך‬ ‫גם‬ ‫נמיין‬ ‫אולי‬A?
• Sort(B), Sort A // nlgn
• for i=1 to N
• check if A[i]==B[i]
• end
• time complexity: n lg(n) + ‫אם‬ ‫גם‬ ‫עובוד‬ ‫אלגוריתם‬
‫זהים‬ ‫מספרים‬ ‫יש‬
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
•‫לינארי‬ ‫בזמן‬ ‫שעובד‬ ‫פתרון‬ ‫קיים‬ ‫האם‬?
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
•‫לינארי‬ ‫בזמן‬ ‫שעובד‬ ‫פתרון‬ ‫קיים‬ ‫האם‬?
•‫לינארי‬?HASH!
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
•‫לינארי‬ ‫בזמן‬ ‫שעובד‬ ‫פתרון‬ ‫קיים‬ ‫האם‬?
•‫לינארי‬?HASH!
•‫על‬ ‫לשאלות‬ ‫מוכנים‬ ‫תהיו‬HASH
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
• for each b in B insert b in HASH and increment it
counter
• for each a in A decrement it counter. If counter of
a <=0 return a
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
• for each b in B insert b in HASH and increment it
counter
• for each a in A decrement it counter. If counter of
a <=0 return a
• Time complexity:
• Space complexity:
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬:
• for each b in B insert b in HASH and increment it
counter
• for each a in A decrement it counter. If counter of
a <=0 return a
• Time complexity: O(n)
• Space complexity: O(n) + ‫יותר‬ ‫אלגוריתם‬
‫זהים‬ ‫מספרים‬ ‫עם‬ ‫להתמודד‬
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
• S=a_1+a_2+…+a_n
• Q=b_1+b_2+…+b_(n-1)
• Return S-Q
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
• S=a_1+a_2+…+a_n
• Q=b_1+b_2+…+b_(n-1)
• Return S-Q
• time complexity:
• space complexity:
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
• S=a_1+a_2+…+a_n
• Q=b_1+b_2+…+b_(n-1)
• Return S-Q
• time complexity: O(n)
• space complexity: O(1)
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
• S=a_1+a_2+…+a_n
• Q=b_1+b_2+…+b_(n-1)
• Return S-Q
• time complexity: O(n)
• space complexity: O(1)
• Pitfalls:
MISSING ELEMENT
•‫טוב‬ ‫פרתרון‬‫ופשוט‬:
• S=a_1+a_2+…+a_n
• Q=b_1+b_2+…+b_(n-1)
• Return S-Q
• time complexity: O(n)
• space complexity: O(1)
• Pitfalls: overflow ?
MISSING ELEMENT
•‫טריק‬ ‫עם‬ ‫מצויין‬ ‫פתרון‬:
• return xor(a_1,a_2,…,a_n,b_1,b_2,…,b_(n-1)
• time complexity:
• space complexity:
• pitfalls:
MISSING ELEMENT
•‫מצוי‬ ‫פתרון‬‫י‬‫טריק‬ ‫עם‬ ‫ן‬:
• return xor(a_1,a_2,…,a_n,b_1,b_2,…,b_(n-1)
• time complexity: O(n)
• space complexity: O(1)
• pitfalls: no
MISSING ELEMENT
•‫לסיכום‬:
•‫הפתרונות‬ ‫כל‬ ‫את‬ ‫להראות‬ ‫חייבים‬ ‫לא‬
MISSING ELEMENT
•‫לסיכום‬:
•‫הפתרונות‬ ‫כל‬ ‫את‬ ‫להראות‬ ‫חייבים‬ ‫לא‬
•‫ביותר‬ ‫הטוב‬ ‫הפתרון‬ ‫את‬ ‫למצוא‬ ‫חייבים‬ ‫לא‬
MISSING ELEMENT
•‫לסיכום‬:
•‫הפתרונות‬ ‫כל‬ ‫את‬ ‫להראות‬ ‫חייבים‬ ‫לא‬
•‫ביותר‬ ‫הטוב‬ ‫הפתרון‬ ‫את‬ ‫למצוא‬ ‫חייבים‬ ‫לא‬
•‫שאלות‬ ‫עם‬ ‫להתמודד‬ ‫יכולת‬ ‫להרות‬ ‫חשוב‬
MISSING ELEMENT
•‫לסיכום‬:
•‫הפתרונות‬ ‫כל‬ ‫את‬ ‫להראות‬ ‫חייבים‬ ‫לא‬
•‫ביותר‬ ‫הטוב‬ ‫הפתרון‬ ‫את‬ ‫למצוא‬ ‫חייבים‬ ‫לא‬
•‫שאלות‬ ‫עם‬ ‫להתמודד‬ ‫יכולת‬ ‫להרות‬ ‫חשוב‬
•‫עקבית‬ ‫חשיבה‬ ‫דרך‬ ‫להרות‬ ‫חשוב‬
MISSING ELEMENT
•‫לסיכום‬:
•‫הפתרונות‬ ‫כל‬ ‫את‬ ‫להראות‬ ‫חייבים‬ ‫לא‬
•‫ביותר‬ ‫הטוב‬ ‫הפתרון‬ ‫את‬ ‫למצוא‬ ‫חייבים‬ ‫לא‬
•‫שאלות‬ ‫עם‬ ‫להתמודד‬ ‫יכולת‬ ‫להרות‬ ‫חשוב‬
•‫עקבית‬ ‫חשיבה‬ ‫דרך‬ ‫להרות‬ ‫חשוב‬
•‫שאלות‬ ‫ולשאול‬ ‫לעזרה‬ ‫מוכנות‬ ‫להרות‬ ‫חשוב‬
‫צורך‬ ‫יש‬ ‫כאשר‬
NEXT TIME
NEXT TIME
ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5

More Related Content

More from Igor Kleiner

Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Igor Kleiner
 
מדעי נתונים לכל אחד
מדעי נתונים לכל אחדמדעי נתונים לכל אחד
מדעי נתונים לכל אחדIgor Kleiner
 
מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותIgor Kleiner
 
מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2Igor Kleiner
 
מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1Igor Kleiner
 
תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3Igor Kleiner
 
תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4Igor Kleiner
 
שאלות לתרגול עצמי
שאלות לתרגול עצמישאלות לתרגול עצמי
שאלות לתרגול עצמיIgor Kleiner
 
פתרון תרגיל 3
פתרון תרגיל 3פתרון תרגיל 3
פתרון תרגיל 3Igor Kleiner
 
מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13Igor Kleiner
 
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותתכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמימבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמיIgor Kleiner
 
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהתכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017Igor Kleiner
 
תכנות מדעי: פייתון: הרצאה 8: 2017
תכנות מדעי: פייתון: הרצאה 8:  2017תכנות מדעי: פייתון: הרצאה 8:  2017
תכנות מדעי: פייתון: הרצאה 8: 2017Igor Kleiner
 
תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017Igor Kleiner
 
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותתכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017Igor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017Igor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותמבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותIgor Kleiner
 

More from Igor Kleiner (20)

Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1
 
מדעי נתונים לכל אחד
מדעי נתונים לכל אחדמדעי נתונים לכל אחד
מדעי נתונים לכל אחד
 
מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונות
 
מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2
 
מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1
 
תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3
 
תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4
 
שאלות לתרגול עצמי
שאלות לתרגול עצמישאלות לתרגול עצמי
שאלות לתרגול עצמי
 
פתרון תרגיל 3
פתרון תרגיל 3פתרון תרגיל 3
פתרון תרגיל 3
 
מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13
 
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותתכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
 
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמימבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
 
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהתכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
 
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
 
תכנות מדעי: פייתון: הרצאה 8: 2017
תכנות מדעי: פייתון: הרצאה 8:  2017תכנות מדעי: פייתון: הרצאה 8:  2017
תכנות מדעי: פייתון: הרצאה 8: 2017
 
תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017
 
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותתכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
 
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותמבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
 

ראיון בהייטק פגישה 5 - programer interview lesson 5