1. ÔÚlinked listÖÐÕÒµ¹ÊýµÚN¸ö½áµã
2. µ¹×ªlinked list
3. ¶þ²æÊ÷µÄ½áµãÓÐÖ¸ÏòparentµÄÖ¸Õ룬Çó×î½ü¹«¹²×æÏÈ
4. ¸øÒ»¸öÊý×é,ÈçºÎ´òÓ¡¸ÃÊý×é³ÉÔ±¹¹³É¼¯ºÏµÄÈ«²¿×Ó¼¯ºÏ.
5. ÓÐÁ½¸ö×Ö·û´®£¬Ò»¸öÊÇtext,Ò»¸öÊÇcommand, CommandÓÐËÄÖÖ£º
¡®+¡¯: ÔÚtextÖÐÇ°½øһλ
¡®-¡¯: ÔÚtextÖкóÍËһλ
¡®a¡¯: ÔÚµ±Ç°Î»ÖòåÈëÒ»¸ö×Ö·û£¬×Ö·ûÓÉcommandÖеĺóһλ¾ö¶¨
¡®d¡¯: ɾ³ýµ±Ç°×Ö·û
ʵÏÖº¯ÊýProcess(string& text, string& command, string& result);
CodingÌ⣬´óÖÂÒªµã:
6. ʵÏÖÒ»¸öLRUµÄcache
Êý¾Ý½á¹¹£º
²åÈëÐÂcacheµÄËã·¨:
¹ØÓÚ¶àỊ̈߳¬Ò»°ãÀ´Ëµreader/writer lock²»ÊÊÓã¬ÒòΪreaderÒ²»á¸ü¸ÄLRU cache. Ò»ÖÖ½â¾öµÄ°ì·¨ÊÇÈÃÿ¸öÏß³ÌÓµÓÐ×Ô¼ºµÄcache.
7. Á½¸öÅÅÐòµÄÊý×飬ÇóËüÃǵĽ»¼¯
8. ÔÚ¶þ²æÊ÷ÖÐÌí¼Ó¶îÍâµÄÁ½¸öÖ¸Õ루Ê÷¿ÉÄÜ·ÇÂú£©£¬±éÀúÕû¿ÃÊ÷²¢½«Í¬Ò»²ãµÄ½áµãÓÃÕâÁ½¸ö¶îÍâÖ¸ÕëÁ¬½ÓÆðÀ´
9. ÓÃÒ»¸ö¸ø¶¨µÄÖµpartitionÒ»¸öÊý×飬עÒâÕâ¸öÖµ²»Ò»¶¨ÔÚÊý×éÖгöÏÖ
10. ÓÃÊý×éʵÏÖÒ»¸öqueue, ¿¼ÂÇÒÔÏÂһЩÄÚÈÝ£º
a) ʵÏ̶ֹ¨size
b) ʵÏֿɱäsize ÿ´Îsize²»¹»ÓÃʱ£¬½¨Ò»¸ö¸ü´óµÄarray²¢¸´ÖÆÔÓÐÊý¾Ý
c) Óëlinked listµÄʵÏÖÏà±È£¬ÓÐʲôºÃ´¦ºÍ»µ´¦£¿±£Ö¤Á˲Ù×÷ºã¶¨ÎªO(1),µ«ÊÇÄÚ´æÓÐÀË·Ñ£¬ÇÒ²»Á¬Ðø
d) ÈçºÎ´¦Àíthread safe
11. Ï´ÅÆËã·¨
For i = 0 to n-1,
Éú³ÉÒ»¸öiµ½n-1Ö®¼äµÄËæ»úÊýj£¬½«v[i]Óëv[j]½»»»
12. [Microsoft] ¶ÔstackÉϵÄÔªËØÅÅÐò£¬¿ÉÒÔʹÓõķ½·¨ÓÐpop(), top(), push(), isEmpty(), isFull().
13. [Microsoft] ÓÐÒ»¸öM*NÐеľØÕó£¬Èç¹ûµÚ(i, j)¸öÔªËØÊÇ0£¬Ôò°ÑiÐкÍjÁж¼ÉèΪÁ㣬עÒ⾡Á¿ÉÙʹÓöîÍâ¿Õ¼ä
·Ö³ÉÈçϼ¸²½:
14. [Microsoft] Ò»¸ö¶þά¿Õ¼äµÚÒ»ÏóÏÞÓкܶàµã£¬ÔõôÕÒ³ö×îÍâΧµÄÄÇЩµã£¿
GrahamɨÃèËã·¨£º
a) PxΪջ¶¥µÄÏÂÒ»¸öµã£¬PyΪջ¶¥£¬µ±Ç°µãΪPi
b) Èç¹ûPy->Pi, Ïà¶ÔÓÚPx->PyÏòÓÒ
i. PopÕ»
ii. Push Piµ½Õ»
Ëã·¨¸´ÔÓΪO(NlogN) (µÚ¶þ²½µÄÅÅÐò)
15. [Google] ·µ»ØÒ»×é×Ö·û´®µÄ×¹«¹²Ç°×º£¬Èç ¡°abc¡±, ¡°abcdef¡±, ¡°abcd¡±, Ôò·µ»Ø¡±abc¡±
16. [Microsft] ¸ø³öƽÃæÉϵÚÒ»ÏóÏÞÄÚlandscapeµÄÂÖÀª£¬Ò²¾ÍÊÇһЩÁеÄ(x,y)×ø±ê, x=0,1,¡,N
£¬ÒÔ¼°YÖáÉϹâÔ´×ø±ê(0,H)¡£ÎÊÕâN+1¸öµãÖÓÄÇЩ±»ÕÕÁÁÄÇЩÊÇÒõÓ°¡£(²æ³Ë)
Ò»Ò»¼ÆËã¹âÔ´µ½(x,y)µÄ½Ç¶È£¬ÔÙÓë×ó±ßµÄ½Ç¶È¶Ô±È¼´¿ÉÖªÊÇ·ñ±»ÕÚµ²£¬¸´ÔÓ¶ÈO(N)
17. [Microsoft] Ò»¸ölinked list£¬Ã¿¸ö½Úµã³ýÁËÕý³£nextÖ¸ÕëÍ⣬»¹ÓÐÒ»¸öextraÖ¸Õ룬Õâ¸öÖ¸Õë¿ÉÒÔÖ¸ÏòÁ´±íÖеÄÈÎÒ»½Úµã£¬²»Í¬µÄextraÖ¸Õë¿ÉÒÔÖ¸Ïòͬһ¸ö½Úµã£¬extraÖ¸ÕëÒ²¿ÉÄÜ
ÐγÉloop¡£ÎÊÔõô¸´ÖÆÕâ¸ö½á¹¹¡£
18. [Microsoft] Ôõô×éÖ¯×ֵ䣬ʹµÃÔÚ½âcross puzzleʱ¿ÉÒԺܿìµÃµ½Âú×ãÌõ¼þµÄËùÓе¥´Ê(±ÈÈç
ËùÓеڶþ¸ö×ÖĸÊÇo£¬µÚ5¸öÊÇHµÄµ¥´Ê£©¡£²»¹ýÕâÌâËãbrain storm£¬²»ÓÃдcode.
°´µ¥´ÊµÄ³¤¶È²»Í¬£¬¹¹Ôì¶à¸öcontainer
¶Ôijһ×鳤¶ÈÏàͬµÄµ¥´Ê£¬¹¹Ôì¶à¸öindex, ´Ó(2,o), (5, H) Ó³Éäµ½µ¥´Ê£¨id£©, ÿһ¸öcollection±£³ÖÓÐÐò£¬¿ÉÒÔ¼Ó¿ìmergeµÄËÙ¶È
19. [Google] ÈçºÎÉè¼Æbinary treeºÍhash tableµÄiterator
Binary Tree Iterator:
¼ÙÉèÊÇÖÐÐò±éÀúµÄ»°£¬ÔÚiteratorÖб£´æÒ»¸ö±éÀúµÄ״̬(parent node stack).
Hash Table Iterator:
È¡¾öÓÚhash tableµÄÊý¾Ý½á¹¹£¬Ò»°ãÖ±½Ó°´array»òÕßbucket˳Ðò±éÀú¾Í¿ÉÒÔÁË¡£
20. [Google] Éè¼ÆÒ»¸öclass£¬ÀàËÆÓÚstack, µ«¿ÉÒÔÊÇO(1)ʱ¼äÄÚ·µ»Ømin()
¸østack¼ÓÒ»¸öÖ»ÓÃÀ´±£´æµ±Ç°×îСֵµÄstack, Pushʱ£¬Èç¹ûµ±Ç°Öµ±ÈminStackÕ»¶¥Ð¡£¬ÔòÒ²pushµ½MinStack, Popʱ£¬Èç¹ûminStackÕ»¶¥Ó뵱ǰpopÔªËØÒ»Ñù´ó£¬ÔòÒ²pop minStack
21. [Google] ±È½ÏÁ½¸öbinary treeÊDz»ÊÇÍêÈ«Ò»ÖÂ
µÝ¹é±È½Ï if (tree1->value == tree2->value) && is_equal(tree1->left, tree2->left) && is_equal(tree1->right, tree2->right)
22. [Google] Ò»¸öÕûÊýÊý×éÀïÔõôͬʱÕÒ×î´óºÍ×îСµÄÊý£¬¾¡Á¿ÓÅ»¯±È½Ï´ÎÊý
¿¼ÂǶþ¸öÊýa,b£¬ aÓëbÏȱȣ¬´óµÄÓ뵱ǰ×î´ó±È£¬Ð¡µÄÓ뵱ǰ×îС±È¡£Á½¸öÊý¹²ÐèÒª±È½ÏÈý´Î¡£
23. [Google] ÔÚÒ»¸öÑ»·ÓÐÐòµÄÊý×éÀï²éÕÒÒ»¸öÊý
24. [Google] ¸øÒ»¸öarrayºÍÒ»¸ötarget value, ¼ì²éarrayÀïÊÇ·ñ´æÔÚÁ½¸öÊýÖ®ºÍΪtarget
Á½ÖÖ×ö·¨:
25. [Google] ¸øÒ»¸öÎı¾£¬ È»ºó¸ø³ö¼¸¸ö¹Ø¼ü´Ê¼°ËûÃÇËù³öÏÖµÄλÖ㬱ÈÈç
this: 1, 16, 55¡.
is: 5, 33, 77¡
ÒªÇóÕÒ³ö×î¶ÌµÄÒ»¶ÎÎÄÕÂʹÆä¾ß±¸¸ø³öµÄ¹Ø¼ü´Ê¡£
´óÖÂËã·¨£º°´Î»ÖÃÍùºóÕÒ£¬Ö±µ½ËùÓеĴʶ¼³öÏÖ£¬È»ºóÔÙ³¢ÊÔ°Ñ×ó±ßµÄλÖÃËõ¼õ¡£Èç´ËÖ±µ½ÕÒµ½¸ü¶ÌµÄÇø¼ä¡£
¼ûºóÃæµÄfind_min_windowµÄ³ÌÐò£¬ÕâÀïÐèÒª´¦Àíinverted index
26. [Google] ¸ø³öÒ»¿Ãtree, ¸ÃtreeûÓÐÈκÎÌØÕ÷£¬ ¼´¿ÉÒÔÓжà¸ö×ӽڵ㣬 ¸¸½ÚµãºÍ×óÓÒ×Ó½ÚµãÒ²
ûÓдóС¹Øϵ¡£µ«Ã¿¸ö½ÚµãµÄÖµ²»ÏàµÈ¡£ÏÖ¸ø³ö¼¸¸öÖµ£¬ Èç(12£¬ 24) ÇëÕÒ³ö´Ó¸ù½Úµãµ½ÖµÎª12 ºÍ24µÄ½ÚµãµÄsubtree.
27. [Google] ¸øÒ»¸öarray, ÔÙ¸øÒ»¸öshÖµ£¬ Éè¼Æº¯Êý½«Êý×éÄÚµÄËùÓÐÔªËØÏòÓÒÆ«ÒÆsh¸öλÖÃ(½«Êý
×é¿´³ÉÒ»¸öȦ)¡£
¼ûProgramming Pearls, ÏÈ°Ñ[a,c] reverse, ÔÙreverse[a,b],[b,c]
28. [Microsoft] ɾ³ýÊý×éÖеÄÖظ´ÔªËØ
ÂÔ¡£¡£¡£
29. [Microsoft] °´ÈçϹæÔòת»¯Êý×ÖµÄ×Ö·û´®
(integers that appear >=1 times)
(integers that appear >=2 times)
¡
(integers that appear >=n times)
²¢±£³Ö×Ö·ûÔÀ´µÄ˳Ðò
ÀýÈç: 12223314->12342312
ÂÔ¡£¡£¡£
30. [Microsoft] ¼ì²éÒ»¸ö±í´ïʽÖеÄÀ¨ºÅÊÇ·ñºÏ·¨£¬À¨ºÅ°üÀ¨ {, [, (, ), ], }
¼òµ¥µÄÕ»µÄÓ¦ÓÃ