ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

C++±à³Ì£¬Êý¾Ý½á¹¹£¬Ëã·¨ÀàÃæÊÔÌ⼯(8)(Ò»)
2014-11-24 01:26:00 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:295´Î
Tags£º±à³Ì Êý¾Ý½á¹¹ Ëã·¨ ÊÔÌ⼯

211. Rabin Karp Algorithm


ÂÔ¡£¡£¡£



212. Given a list of presentations with begin and end time that all need to use a conference room. We want to optimize the utilization of the room by allowing maximum hours of the conference room being used.


DPÌâ,ÏÈ°ÑËùÓеÄpresentation°´endtimeÅÅÐò£¬È»ºóÉèq(endtime)ΪÔÚendtimeÖ®¼äconference room±»Ê¹ÓõÄ×ʱ¼ä¡£È»ºóÒÀ´ÎÓÃpresentationÓëÖ®¼äËùÓеÄqÏà±È£¬µÃµ½ÐµÄq.×ÜÌ帴ÔÓ¶ÈO(N^2)



213. Given an array of int, each int appears exactly TWICE in the array. Find and return the int such that this pair of int has the max distance between each other in this array.
e.g. [2, 1, 1, 3, 2, 3]
2: d = 5-1 = 4;
1: d = 3-2 = 1;
3: d = 6-4 = 2;
return 2


ÓÃhashtable±£´ænum->index,È»ºóÏßÐÔɨÃèÒ»±é¼´¿É


214. ¶þ½øÖƼӷ¨
/**
* i.e.
*
* char a[] = ¡°11¡å;
* char b[] = ¡°1¡å;
* char *c = bstradd(a, b); // c is a pointer to ¡°100¡å
**/


215. ¸øÄãÒ»Áе¥´Ê£¯×Ö·û´®£¨ÄÚ²¿×Ö·û·¶Î§:unicode£©£¬ÀýÈ磺banana, cat, dog, elephant, type, middle, lake£¬ ÈÃÄã°ÑÕâЩµ¥´ÊÅÅÁгÉÈÎÒâÏàÁÚµ¥´Ê²»ÄÜÓÐÈκÎÏàͬ×Ö·ûµÄÐòÁУ¬Èç¹ûÈ·¶¨ÎÞ·¨Âú×ãÕâ¸öÒªÇ󣬷µ»Øfalse.


¿¼ÂÇÒ»¸öͼ£¬Âú×ãµÄÊ×β×Öĸ²»Í¬¼´ÓÐÒ»Ìõa->bµÄ±ß£¬ÄǸÃÎÊÌâµÈ¼ÛÓÚÕÒHamiltonȦ£¬ÊÇÒ»¸öNPÍêÈ«ÎÊÌâ



216. Åжϣ¨¶þ²æ£©Ê÷ÊÇ·ñ¾µÏñ¶Ô³Æ


¾µÏñ¶Ô³ÆµÄ¶¨Ò壿



217. Given a binary tree, find 2 leaf nodes say X and Y such that F(X,Y) is maximum where F(X,Y) = sum of nodes in the path from root to X + sum of nodes in the path from root to Y ¨C sum of nodes in the common path from root to first common ancestor of the Nodes X and Y


³ýÁËÇî¾Ù£¬Ã»É¶ºÃidea¡­ ÇóËùÓеĺÍO(N),Çó×î½ü¹«¹²¸¸½áµã¿ÉÒÔÓÅ»¯µ½O(1)¾ßÌå±È½ÏΪO(N^2)£¬×ÜÌ帴ÔÓ¶ÈΪO(N^2).



218. x^n = y, x/n/y¶¼ÊÇÕûÊý£¬n>1£¬y½Ð×öÒ»¸öɶÊýÀ´×Å£¬¹ÃÇÒ½Ð×öSuper CoolÊý°É,
±ÈÈ磬1^2 = 1¡Á1=1£¬ 1^3 = 1¡Á1¡Á1 = 1 ¡­
2^2 = 2¡Á2=4
£¬ 2^3 = 2¡Á2¡Á2 = 8 ¡­
ÏÖÔÚ¸øÄãÒ»¸öÕûÊýy£¬Çë·µ»Ø×î½üµÄÄǸöSuper CoolÊý£¬Ð´Code¡£


¶Ôÿһ¸öСÓÚsqrt(y)µÄÊý£¬Çó¶ÔÊýºóÕÒÒ»¸ö×î½Ó½üµÄ¼´¿É¡£¡£



219. ÌâÄ¿ÊǸø¶¨Ò»¸öunsorted int array, ÔõôÕÒµ½µÚÒ»¸ö´óÓÚ0£¬²¢ÇÒ²»ÔÚ´ËarrayµÄinteger¡£
±ÈÈç[1,2,0] return 3, [3,4,-1,1] return 2. (time O(n), constant space )


½«µÚi¸öÊý·Åµ½i룬ÔÙ´ÓͷɨÃè


220. ¸ø¶¨Ò»¸öÊý×ÖÊý×é (Let¡¯s call it count-array) £¬ÆäÖÐÿ¸öÔªËØÊÇ´ÓÄ©¶ËÊýСÓÚÔ­Êý×éÖиÃÔªËصĸöÊý¡£ÇóÔ­Êý×é¡£Ô­Êý×éÖÐÔªËØÊÇ´Ó1µ½n¡£
Example:
Ô­Êý×é 4,1, 3, 2
Count array 3, 0, 1, 0
ÇónlognµÄËã·¨¡£


CODE£¬¿¼ÂÇͨ¹ýmerge sortµÄ±äÐÎ



221½«ÕûÐͱäÁ¿ x ÖÐÊý×Ö×óÓÒ·­×ªºó´æµ½ÁíÍâÒ»¸öÕûÐͱäÁ¿ yÖУ¬ÀýÈç x = 12345 ʱ£¬yΪ 54321£¬x = ©\123 ʱ£¬yΪ©\321¡£ÆäÖÐ x µÄ¸öλ²»Îª 0¡£ void reverse (int x, int* y);


CODE



222. ¶Ô¼¯ºÏ{1, 2, 3, ¡­, n}ÖеÄÊý½øÐÐÈ«ÅÅÁУ¬¿ÉÒԵõ½ n!¸ö²»Í¬µÄÅÅÁз½Ê½¡£ÏÖÔÚÎÒÃÇÓÃ×ÖĸÐò°ÑËüÃÇÁгöÀ´£¬²¢Ò»Ò»±êÉÏÐòºÅ£¬Èçµ± n=3 ʱ£º
0
£®123
1
£®132
2
£®213
3
£®231
4
£®312
5
£®321
ÏÖÔÚ£¬ÇëÊéдһ¸öº¯Êý void print (int n, int k)£¬ £¨º¯ÊýÔ­ÐÍÊÇÓà CÓïÑÔдµÄ£¬Äã¿ÉÒÔÓÃÄãÊìϤµÄÓïÑÔ£©ÔÚÒÑÖª nºÍÐòºÅ k µÄÇé¿öÏ£¬Êä³ö¶ÔÓ¦µÄÅÅÁУ¬²¢¼òÒª²ûÊö˼·


223. һάÊýÖáÉÏÓÐ n ÌõÏ߶Σ¬ËüÃǵĶ˵㶼ÊÇÒÑÖªµÄ¡£ÇëÉè¼ÆÒ»¸öËã·¨£¬¼ÆËã³öÕâЩÏ߶εIJ¢¼¯ÔÚÊýÖáÉÏËù¸²¸ÇµÄ³¤¶È£¬²¢·ÖÎöʱ¼ä¸´ÔӶȡ£ÀýÈ磬Ï߶ΠA µÄ×ø±êΪ[4, 8]£¬Ï߶ΠB µÄ×ø±êΪ[1, 5.1]£¬ ÄÇôËüÃǹ²Í¬¸²¸ÇµÄ³¤¶ÈΪ 7¡£ Ç뾡Á¿ÕÒ³ö×îÓÅ»¯µÄËã·¨£¬ ½âÊÍËã·¨¼´¿É£¬²»±Øд´úÂë¡£


TO LEARN, INTERVAL TREE



224. 3 sorted arrays, A, B, C, find indexes i, j, k, so that max(a-b, b-c, c-a) is minimized. (a = A[i], b = B[j], c = C[k]) Another version is to minimize max(|a-b|, |b-c|, |c-a|).


IDEA:ÀàËÆÓÚÈý·¹é²¢£¬·´¸´µØ½«µ±Ç°×îСµÄÔªËØÍùÇ°ÒÆ£¬²¢UpdateÄ¿±êÖµ¼´¿É¡£



225. Ò»ÌõÖ±ÏßÉÏÓÐN¸öվ̨£¬ÒÑÖªÈκÎÁ½µã¼äÖ±´ïÁгµµÄƱ¼Û£¬Çó³ö´ÓÆðµãµ½ÖÕµãµÄƱ¼Û×îÓŵij˳µ·½°¸¡£ÒòΪ´ÓAµ½B£¬ÔÙ´ÓBµ½CµÄ¼Û¸ñ¿ÉÄܱÈÖ±½Ó´ÓAµ½C±ãÒË


DP¡£¡£¡£¡£


226. N¸öjob£¬ÒªÇó·ÖÅäµ½M̨»úÆ÷ÉÏ£¬Ã¿¸ö»úÆ÷¿ÉÒÔ±»·ÖÅä0-N¸öjob£¬µ«ÓÐЩjobÏ໥ÅųⲻÄܱ»·Åµ½Ò»ÆðÖ´ÐУ¬¸ø³öËùÓпÉÄܵķÖÅä·½°¸


Òª¸ø³öËùÓз½°¸Ö»ÄܵݹéÇî¾Ù°É



227. ¸øN¸öÔªËØ£¬µÚi¸öÔªËØÓÐÒ»¸ö´óÓÚ0µÄscore(i)£¬ÒªÇóËæ»úÑ¡³ök¸ö£¬Ã¿¸öÔªËØ¿ÉÒÔ±»Ñ¡ÔñÈÎÒâ¶à´Î£¬µ«±£Ö¤±»Ñ¡ÔñµÄ¸ÅÂÊÒªºÍscore(i)³É±ÈÀý


½«0-1Ö®¼ä°´scroe(i)µÄ±ÈÀý»®·Ö³ÉÇø¼ä£¬È»ºóÉú³É0-1Ö®¼äµÄËæ»úÊý£¬°´ÆäËùÔÚÇø¼ä¾ö¶¨ÎªÄĸöÔªËØ



228. N¸ö¾ØÐΣ¬ËùÓоØÐζ¼ÓÐÒ»Ìõ±ßÔÚͬһÌõÖ±ÏßÉÏ£¬ËûÃÇÏ໥¿ÉÄÜÓÐoverlap£¬ÕÒ³ö×îºóµÃµ½µÄÕâ¸ö²»¹æÔòͼÐεÄËùÓб߽çµã


TO LEARN£¬


Ò²ÊÇINTERVAL TREE»òÕßSEGMENT TREE ÏÈÈ¡³öËùÓеĵ㣬Ôٰѱ»ÈÎÒâ¾ØÐÎËù°üº¬µÄµãÈ¥µô¡£



229. ¸øÁ½¿ÅÊ÷£¬Èç¹û½ÚµãÉî¶ÈÏàͬÇÒvalueÏàͬ£¬ÔòÕâÁ½¸önodeÊÇmatchµÄ£¬Á½¿ÃÊ÷ÉϵĽڵãÈç¹ûÏ໥match£¬ÔòËüÃǵĸ¸½Úµã±ØÐëÒ²Òªmatch¡£¼ÙÉèÒ»¿ÃÊ÷ÉÏËùÓÐnodeµÄvalue¶¼²»Í¬£¬²¢ÇÒÐֵܽڵã¼ä²»Óÿ¼ÂÇ˳Ðò£¬ÎʸøÁ½¿ÃÊ÷£¬ÈçºÎÇó×î´ómatchµÄnodeÊýÄ¿¡£Èç¹ûvalueÓÐÖظ´£¬²¢ÇÒÒªÇóÐֵܽڵãmatchµÄ˳ÐòÒ»Ö£¬ÎÊÈçºÎÇó×î´ómatchÊý¡£


CODE



230. Write a program to find the largest possible rectangle of letters such that every row forms a word (reading left to right) and every column forms a word (reading top to bo

Ê×Ò³ ÉÏÒ»Ò³ 1 2 3 ÏÂÒ»Ò³ βҳ 1/3/3
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£º³ÌÐòÔ±ÃæÊÔÒ»°ã»áÎÊÄÄЩÎÊÌâ,ÒÔ¹©.. ÏÂһƪ£º.NET»ù´¡ÃæÊÔÌâ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿