67
פגישה2 2015 (с) Igor Kleiner סדנת הכנה לראיון עבודה למשרת הייטקPROGRAMMING INTERVIEWS EXPOSED

programmer interview exposed lesson 2 - ראיון בהייטק

Embed Size (px)

Citation preview

Page 1: programmer interview exposed lesson 2 - ראיון בהייטק

2פגישה 2015

(с) Igor Kleiner

סדנת הכנה לראיון עבודה למשרת הייטק

PROGRAMMING INTERVIEWS EXPOSED

Page 2: programmer interview exposed lesson 2 - ראיון בהייטק
Page 3: programmer interview exposed lesson 2 - ראיון בהייטק

ABOUT COURSE

Page 4: programmer interview exposed lesson 2 - ראיון בהייטק
Page 5: programmer interview exposed lesson 2 - ראיון בהייטק

DRAW A MEN, TREE, HOUSE

Page 6: programmer interview exposed lesson 2 - ראיון בהייטק

DRAW A MEN, TREE, HOUSE

Page 7: programmer interview exposed lesson 2 - ראיון בהייטק

RORSHARH, DRAW A PERSON TEST

• In general this tests are not valid and not reliable

Page 8: programmer interview exposed lesson 2 - ראיון בהייטק

SIMPLE QUESTIONS

לא כל השאלות בראיון עבודה קשות•

Page 9: programmer interview exposed lesson 2 - ראיון בהייטק

SIMPLE QUESTIONS

לא כל השאלות בראיון עבודה קשות•חלק מהשאלות יחסית קלות אבל עדיו •

מצריכות חשיבה והשקעה

Page 10: programmer interview exposed lesson 2 - ראיון בהייטק

SIMPLE QUESTIONS

לא כל השאלות בראיון עבודה קשות•חלק מהשאלות יחסית קלות אבל עדיו מצריכות •

חשיבה והשקעה

?מה יכול לעזור להתמודד עם שאלה•אפשר לנסות לפתור שאלה יותר פשוטה•דוגמאות •חלוקה של השאלה לתתי שאלות יותר פשוטות•

Page 11: programmer interview exposed lesson 2 - ראיון בהייטק

HOW TO SOLVE IT

שלבים הבאים יכולים לעזור להבין את השאלה •:ולהתמודד איתה, טוב יותר

"לאט אבל בטוח"לקרוא את השאלה •אם השאלה לא חד משמעית או יש דברים לא •

כדאי לשאול את המראיין, ברורים

Page 12: programmer interview exposed lesson 2 - ראיון בהייטק

HOW TO SOLVE IT

שלבים הבאים יכולים לעזור להבין את השאלה •:ולהתמודד איתה, טוב יותר

"לאט אבל בטוח"לקרוא את השאלה •אם השאלה לא חד משמעית או יש דברים לא •

כדאי לשאול את המראיין, ברוריםבסוף כדאי לבדוק את הבנת השאלה על •

מיקרים פשוטים

Page 13: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

• You have 100 doors in a row that are all initially closed.

• You make 100 passes by the doors starting with the first door every

time. the first time through you visit every door and toggle the door

(if the door is closed, you open it, if its open, you close it).

• The second time you only visit every 2nd door (door #2, #4, #6). the

third time, every 3rd door (door #3, #6, #9), etc, until you only visit

the 100th door.

• Question: what state are the doors in after the last pass? which are

open which are closed?

Page 14: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?האם השאלה ברורה•

Page 15: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?האם השאלה ברורה•

?שאלות למראייו•

Page 16: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?האם השאלה ברורה•

?שאלות למראייו•

?איך ניגש לשאלה•ננסה לפתור שאלה יותר פשוטה•

Page 17: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?האם השאלה ברורה•

?שאלות למראייו•

?איך ניגש לשאלה•ננסה לפתור שאלה יותר פשוטה•?מה כאן שאלה יותר פשוטה•

Page 18: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•ננסה לפתור שאלה יותר פשוטה•?מה כאן שאלה יותר פשוטה•

אפשר לקחת דלת מסוימת ולחקור התנהגותה•1,2,5,10דלתות לקחת 100אפשר במקום •

?דלתות

Page 19: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 20: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 21: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 22: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 23: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 24: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות

Page 25: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

Page 26: programmer interview exposed lesson 2 - ראיון בהייטק

1 4 9?השערות

Page 27: programmer interview exposed lesson 2 - ראיון בהייטק

1 4 9?השערות

1

1 + 3 = 4

4 + 5 = 9

9 + 7 = 16?

1,4,9,16,25 ?

Page 28: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות :ננסה לחקור את ההתנהגות של דלת מסוימת•

:משנה מצב בשלבים4דלת מספר ••1,2,4

בשלביםמשנה מצב 9דלת מספר ••1,3,9

Page 29: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

?איך ניגש לשאלה•10ננסה לפתור שאלה יותר פשוטה כאשר יש רק •

דלתות :ננסה לחקור את ההתנהגות של דלת מסוימת•

:משנה מצב בשלבים5דלת מספר ••1,5

בשלביםמשנה מצב 8דלת מספר ••1,2,4,8

Page 30: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

:מסקנות•אם למספר דלת יש כמות אי זוגית של מחלקים אזי •

פתוחה–מצבה הסופית

של מחלקים אזי זוגית למספר דלת יש כמות אם •סגורה–מצבה הסופית

Page 31: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

:מסקנות•:מסקנות•אם למספר דלת יש כמות אי זוגית של מחלקים אזי •

פתוחה–מצבה הסופית

אם למספר דלת יש כמות זוגית של מחלקים אזי •סגורה–מצבה הסופית

•1,4,9,16,25,36,49,64,81,100

Page 32: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

כמה דלתות ישאריו פתחות –דלתות nבהינתן •?nלאחר שלב

Page 33: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

כמה דלתות ישאריו פתחות –דלתות nבהינתן •?nלאחר שלב

:פתרון א•

• For i=1 to n

• If i=k*k {counter++}

• end

• Time complexity: ?

Page 34: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

כמה דלתות ישאריו פתחות –דלתות nבהינתן •?nלאחר שלב

:פתרון א•

• For i=1 to n

• If floor(sqrt(i)) == sqrt(i) {counter++}

• end

• Time complexity: n

Page 35: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

כמה דלתות ישאריו פתחות –דלתות nבהינתן •?nלאחר שלב

:פתרון א•

• For i=1 to n

• If floor(sqrt(i)) == sqrt(i) {counter++}

• end

• Time complexity: n (exponential complexity)

Page 36: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 2

100 DOORS

כמה דלתות ישאריו פתחות –דלתות nבהינתו •?nלאחר שלב

:פתרון ב•

• return floor(sqrt(n))

• Time complexity: O(log(n))

• How calculate root of the number?

Page 37: programmer interview exposed lesson 2 - ראיון בהייטק

HOW TO SOLVE IT

שלבים הבאים יכולים לעזור להבין את השאלה •:ולהתמודד איתה, טוב יותר

"לאט אבל בטוח"לקרוא את השאלה •אם השאלה לא חד משמעית או יש דברים לא •

כדאי לשאול את המראיין, ברורים

Page 38: programmer interview exposed lesson 2 - ראיון בהייטק

HOW TO SOLVE IT

?מה אם לא מצליחים למצוא את הפתרון

, הניסיונות שלנו לפתור את השאלה בדרכים שוניםיכולים להראות יכולת שלנו להתמדד עם קשיים

ושאנו לא מפחדים מהם

Page 39: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

• One hundred ants are dropped random on a meter stick.

• Each ant start to travel in random direction either to the left or

the right with constant speed 1 meter per minute.

• When two ants meet, they bounce off each other and reverse

direction. When an ant reaches an end of the stick, it falls off.

Page 40: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

• One hundred ants are dropped random on a meter stick.

• Each ant start to travel in random direction either to the left or the right

with constant speed 1 meter per minute.

• When two ants meet, they bounce off each other and reverse direction.

When an ant reaches an end of the stick, it falls off.

• At some point all the ants will have fallen off. The time at which this

happens will depend on the initial configuration of the ants.

• Question: over ALL possible initial configuration, what is the longest

amount of time that you would need to wait to guarantee that the stick

has no more ants?

Page 41: programmer interview exposed lesson 2 - ראיון בהייטק
Page 42: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

Page 43: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

? נמל אחד•

Page 44: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

1שניה ? נמל אחד•

Page 45: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

1שניה ? נמל אחד•שתי נמלים•

? מהו מקרה הגרוע ביותר•

Page 46: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

1שניה ? נמל אחד•שתי נמלים•

? מהו מקרה הגרוע ביותר•1שניה •

Page 47: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

1שניה ? נמל אחד•שתי נמלים•

? מהו מקרה הגרוע ביותר•1שניה •

? שלושה נמלים•קשה•

Page 48: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

?איך נגשים לשאלה•

1שניה ? נמל אחד•שתי נמלים•

? מהו מקרה הגרוע ביותר•1שניה •

? שלושה נמלים•קשה•?מה עושים•

Page 49: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

1שניה ? נמל אחד•1שתי נמלים שניה •? שלושה נמלים•

?מה עושים•סימולציה ••"Out of the box”

Page 50: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 3

ANTS ON THE STICK

1שניה ? נמל אחד•1שתי נמלים שניה •? שלושה נמלים•

?מה עושים•סימולציה •

•"Out of the box”

נניח שבזמן הפגישה הנמלים עוברים אחד דרך השני •מה ? מה יקרה אז. מעלות180-במקום להסתבב ב

?תהיה התשובה לשאלה

Page 51: programmer interview exposed lesson 2 - ראיון בהייטק
Page 52: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

Page 53: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

?שאלות למראין•

Page 54: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

?שאלות למראין•?כמה יש מטבעות מכל סוג•

Page 55: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

?שאלות למראין•אינסוף? כמה יש מטבעות מכל סוג•

Page 56: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

?שאלות למראין•אינסוף? כמה יש מטבעות מכל סוג•

?האם סדר שבו מחזירים את העודף חשוב•

(1,1,1,2) or (1,2,1,1)

Page 57: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

?שאלות למראין•אינסוף? כמה יש מטבעות מכל סוג•

?האם סדר שבו מחזירים את העודף חשוב•(1,1,1,2) or (1,2,1,1) -כן הסדר חשוב

Page 58: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

: חסם תחתון

Page 59: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

: חסם תחתון2נחלק את העודף לחלקים של

ולכן לפי עיקרון הכפל 2אפשרויות להחזיר 2יש 2(n/2)^נקבל

Page 60: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

: יותר טובחסם תחתון5נחלק את העודף לחלקים של

ולכן לפי עיקרון הכפל 2אפשרויות להחזיר хיש x^(n/5)נקבל

Page 61: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

פתרון לא אופטימלי אבל פשוטנעבור על כל האפשרויות להרכיב עודף מלכל

nמטבעות ונספור כמה מהם נותנים nהיותר

Page 62: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

כאשר , nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10ברשותינו מטבעות

פתרון לא אופטימלי אבל פשוטנעבור על כל האפשרויות להרכיב עודף מלכל

nמטבעות ונספור כמה מהם נותנים nהיותר

הקבלn=3לדוגמא עבור {1,2,5,10,{1,1},{2,2},{5,5},{10,10},{1,2},{2,1}…..}

{1,1,1},{1,2},{2,1}

Page 63: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

כאשר ברשותינו , nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10מטבעות

פתרון לא אופטימלי אבל פשוטnנעבור על כל האפשרויות להרכיב עודף מלכל היותר

nמטבעות ונספור כמה מהם נותנים

הקבלn=3לדוגמא עבור {1,2,5,10,{1,1},{2,2},{5,5},{10,10},{1,2},{2,1}…..}

{1,1,1},{1,2},{2,1}

גרוע-n^4–סיבוכיות

Page 64: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

תכנות דינמי–פתרון לא אופטימלי אבל יחסית טוב

Page 65: programmer interview exposed lesson 2 - ראיון בהייטק

QUESTION 4

CHANGE-MAKING PROBLEM

, nבכמה אפשרויות ניתן להחזיר עודף בגודל •?1,2,5,10כאשר ברשותינו מטבעות

פונקציה יוצרת–פתרון לא אופטימלי

Page 66: programmer interview exposed lesson 2 - ראיון בהייטק
Page 67: programmer interview exposed lesson 2 - ראיון בהייטק