# å°è¯ç¨Pythonå®ç°ä¸äºç®åçç®æ³åæ°æ®ç»æ
ä¹åçç®æ³åæ°æ®ç»æåºæ¬é½æ¯ç¨Swiftåçï¼ç°å¨å°è¯ç¨Pythonå®ç°ä¸äºç®åçç®æ³åæ°æ®ç»æã
## update 20160704
åå¤å å
¥[ãåæofferã](https://www.amazon.cn/%E5%9B%BE%E4%B9%A6/dp/B00L5LKMVU?ie=UTF8&*Version*=1&*entries*=0)çä¹ é¢pythonå®ç°,ä»¥åæºå¨å¦ä¹ è¿ç¨ä¸çä¸äºç®æ³
## update 20160717
å å
¥leetcodeé¨å
~~## update 20160730~~
## update 20160814
æ´ç
å¦æå¯¹ä½ æå¸®å©ï¼è¯·è®°å¾ç¹å»githubå·¥ç¨ä¸çstarï¼^_^ ç°å¨æ»ç»å¦ä¸ï¼
[æ°æ®ç»æmarkdownæ ¼å¼](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.md)
[é¾è¡¨åå¸¸è§æä½](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Lists.py)
[å¹³è¡¡æ¥æ¾æ AVL](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/AVL.py)
[ä¸ç§æ¹æ³æ£æµåä½è¯Anagram](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/AnagramDetection.py)
[æå»ºå ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/BinaryHeap.py)
[äºåæ¥æ¾](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/BinarySearch.py)
[äºåæ¥æ¾æ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/BinarySearchTree.py)
[äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/BinaryTree.py)
[åæ³¡æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/BubbleSort.py)
[è±è¯åè¯æ¼åæ£æ¥ç®æ³](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/CheckErrorWord.py)
[å 个å°ç卿è§åé®é¢](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Dynamic%20Programming.py)
[Hashåå¸¸è§æä½](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Hash.py)
[æå
¥æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/InsertionSort.py)
[å½å¹¶æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/MergeSort.py)
[è§£ææ ParseTree](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/ParseTree.py)
[éå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Queue.py)
[å¿«æ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/QuickSort.py)
[åºæ°æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/RadixSort.py)
[ä¸äºéå½ç®æ³](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Recursion.py)
[éæ©æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/SelectionSort.py)
[å¸å°æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/ShellSort.py)
[æ å常è§åºç¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Stack.py)
[åæ²»ç®æ³](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/divideAndConquer.py)
[å æåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/heapSort.py)
[æ£å表达å¼åä¸ä¸ªä½¿ç¨æ£å表达å¼çå¾çç¬è«](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/tree/master/regularExpression)
[åæoffer](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/tree/master/Target%20Offer)
[é¢è¯é¢2ï¼å®ç°Singleton模å¼](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/Singleton.py)
[é¢è¯é¢3ï¼äºç»´æ°ç»ä¸çæ¥æ¾](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E6%9F%A5%E6%89%BE.py)ï¼å¯¹äºå¨ä¸ä¸ªæ¯ä¸è¡ä»å·¦å°å³ä¾æ¬¡éå¢ï¼æ¯ä¸åä»ä¸å°ä¸ä¾æ¬¡éå¢çäºç»´æ°ç»æ¥æ¾ä¸ä¸ªå
ç´ ï¼å¯ä»¥éæ©ä»æ°ç»å·¦ä¸è§å¼å§æ¥æ¾array[i]\[j]ï¼å¦æç®æ å
ç´ å¤§äºarray[i]\[j]ï¼i+=1ï¼å¦æå
ç´ å°äºarray[i]\[j]ï¼j-=1ï¼ä¾æ¬¡å¾ªç¯ç´è³æ¾å°è¿ä¸ªæ°ã
[é¢è¯é¢4ï¼æ¿æ¢ç©ºæ ¼](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%9B%BF%E6%8D%A2%E7%A9%BA%E6%A0%BC.py)ï¼å¦æç´æ¥æ¯æ¬¡éå°ç©ºæ ¼æ·»å '%20'ï¼é£ä¹ç©ºæ ¼åé¢çæ°åå°±éè¦é¢ç¹ååç§»å¨ãéå°è¿ç§ç§»å¨é®é¢ï¼æä»¬å¯ä»¥å°è¯å
ç»åºæç»éè¦çé¿åº¦ï¼ç¶åä»åååæ«æï¼åæ¶ç»å®ä¸¤ä¸ªæéæ¥ä¿è¯å®ä½ã**éåæç»´**
[é¢è¯é¢5ï¼ä»å¤´å°å°¾æå°é¾è¡¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%8F%8D%E5%90%91%E6%89%93%E5%8D%B0%E9%93%BE%E8%A1%A8.py)ï¼ä»å¤´å°å°¾éåé¾è¡¨ï¼å¹¶ç¨ä¸ä¸ªæ å卿¯ä¸ªç»ç¹çå¼ï¼ä¹ååºæ è¾åºå¼å³å¯ã
[é¢è¯é¢6ï¼é建äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E9%87%8D%E5%BB%BA%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼å©ç¨äºåæ ååºéååä¸åºéåçç¹æ§ãååºéåç第ä¸ä¸ªå¼ä¸å®ä¸ºæ ¹èç¹ï¼å¯¹åºäºä¸åºéåä¸é´çä¸ä¸ªç¹ãå¨ä¸åºéååºåä¸ï¼è¿ä¸ªç¹å·¦ä¾§çåä¸ºæ ¹çå·¦åæ ï¼è¿ä¸ªç¹å³ä¾§çåä¸ºæ ¹çå³åæ ãè¿æ¶å¯ä»¥å©ç¨éå½ï¼åå«åååºéå[1:i+1]åä¸åºéåç[:i]对åºä¸å·¦åæ ç»§ç»ä¸ä¸ä¸ªè¿ç¨ï¼åååºéå[i+1:]åä¸åºéå[i+1]对åºäºå³åæ ç»§ç»ä¸ä¸ä¸ªè¿ç¨ï¼æç»å¾ä»¥é建äºåæ ã
[é¢è¯é¢7ï¼ç¨ä¸¤ä¸ªæ å®ç°éå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%94%A8%E4%B8%A4%E4%B8%AA%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.py)ï¼éè¦ä¸¤ä¸ªæ Stack1åStack2ï¼pushçæ¶åç´æ¥pushè¿Stack1ãpopéè¦å¤æStack1åStack2ä¸å
ç´ çæ
åµï¼Stack1空çè¯ï¼ç´æ¥ä»Stack2 popï¼Stack1ä¸ç©ºçè¯ï¼æStack1çå
ç´ pushè¿å
¥Stack2ï¼ç¶åpop Stack2çå¼ã[æ¨å¹¿ï¼ç¨ä¸¤ä¸ªéåå®ç°æ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%94%A8%E4%B8%A4%E4%B8%AA%E9%98%9F%E5%88%97%E5%AE%9E%E7%8E%B0%E6%A0%88.py)
[é¢è¯é¢8ï¼æè½¬æ°ç»çæå°æ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%97%8B%E8%BD%AC%E6%95%B0%E7%BB%84%E7%9A%84%E6%9C%80%E5%B0%8F%E6%95%B0%E5%AD%97.py)ï¼äºåæ¥æ¾çåå½¢ï¼æ³¨æå°æè½¬æ°ç»çé¦å
ç´ è¯å®ä¸å°äºæè½¬æ°ç»çå°¾å
ç´ ï¼è®¾ç½®ä¸é´ç¹ã妿ä¸é´ç¹å¤§äºé¦å
ç´ ï¼è¯´ææå°æ°åå¨åé¢ä¸åï¼å¦æä¸é´ç¹å°äºå°¾å
ç´ ï¼è¯´ææå°æ°åå¨åä¸åã便¬¡å¾ªç¯ãåæ¶ï¼å½ä¸æ¬¡å¾ªç¯ä¸é¦å
ç´ å°äºå°¾å
ç´ ï¼è¯´ææå°å¼å°±æ¯é¦å
ç´ ã使¯å½é¦å
ç´ çäºå°¾å
ç´ çäºä¸é´å¼ï¼åªè½å¨è¿ä¸ªåºåé¡ºåºæ¥æ¾ã
[é¢è¯é¢9ï¼ææ³¢é£å¥æ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97.py)ï¼å¦ä½ä¸ä½¿ç¨éå½å®ç°ææ³¢é£å¥æ°åï¼éè¦æåé¢ä¸¤ä¸ªæ°ååå
¥å¨ä¸ä¸ªæ°ç»ä¸ãææ³¢é£å¥æ°åçåå½¢æå¾å¤ï¼å¦éèè·³å°é¶ï¼ä¸æ¬¡è·³ä¸ä¸ªæè
两个ï¼éºç·ç é®é¢ã**åæéèè·³**ï¼æ¯æ¬¡è³å°è·³ä¸ä¸ªï¼è³å¤è·³n个ï¼ä¸å
±æf(n)=2n-1ç§è·³æ³ãè坿°å¦å»ºæ¨¡çè½åã
[é¢è¯é¢10ï¼äºè¿å¶ä¸1ç个æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%AD1%E7%9A%84%E4%B8%AA%E6%95%B0.py)ï¼æ³¨æå°æ¯ä¸ª**éé¶**æ´æ°nån-1è¿è¡æä½ä¸è¿ç®ï¼æ´æ°nçäºè¿å¶æ°ä¸æå³è¾¹ç1å°±ä¼åæ0ï¼é£ä¹äºè¿å¶æ°ä¸ç1ç个æ°å°±ä¼åå°ä¸ä¸ªï¼å æ¤å¯ä»¥å©ç¨ä¸ä¸ªå¾ªç¯ï¼ä½¿å¾ n = n&(n-1) ï¼è®¡ç®ç»è¿å 次è¿ç®åå°å°0ï¼å°±æ¯æå 个1ãæ³¨æï¼ä¹¦ä¸ç»äºå¦å¤ä¸¤ç§æ¹æ³ï¼å嫿¯åå§n左移ä¸ä½åå³ç§»ä¸ä½çæ¹æ³ï¼å 为Pythonä¸ä¼åºç°æ´æ°æº¢åºçæ
åµï¼è¿éå°±ä¸åèèçä¸¤ç§æ¹æ³ãæ©å±ï¼å¤æä¸ä¸ªæ°å¼æ¯ä¸æ¯2徿´æ°æ¬¡æ¹ï¼å¦ææ¯çè¯ï¼è¿ä¸ªæ°çäºè¿å¶æ°ä¸æä¸åªæä¸ä¸ª1ï¼é£ä¹è¿ä¸ªæ°n伿 n&(n-1) == 0ãæè
æ±ä¸¤ä¸ªæ´æ°månéè¦æ¹åmäºè¿å¶ä¸çå¤å°ä½æè½å¾å°nï¼å¯ä»¥å
å m^n ç弿è¿ç®ï¼ç¶åæ±è¿ä¸ªæ°ä¸æå¤å°ä¸ª1ã
[é¢è¯é¢11ï¼æ°å¼çæ´æ°æ¬¡æ¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E5%80%BC%E7%9A%84%E6%95%B4%E6%95%B0%E6%AC%A1%E6%96%B9.py)ï¼å¦æéç¨å¸¸è§è§£æ³ï¼éè¦æ³¨æçå°æ¹:彿æ°ä¸ºè´æ°çæ¶åï¼å½åºæ°ä¸ºé¶ä¸ææ°ä¸ºè´æ°çæ
åµï¼å¨å¤æåºæ°baseæ¯ä¸æ¯çäº0çæ¶å,ä¸è½ç´æ¥åbase==0, å ä¸ºè®¡ç®æºå
è¡¨ç¤ºå°æ°æ¶æè¯¯å·®,åªè½å¤æä»ä»¬çå·®çç»å¯¹å¼æ¯ä¸æ¯å¨ä¸ä¸ªå¾å°çèå´å
ã妿éç¨éå½è§£æ³ï¼å½nä¸ºå¶æ°, an = an/2 * an/2ï¼å½nä¸ºå¥æ°, an = a(n-1)/2 * a(n-1)/2 * aï¼å©ç¨å³ç§»ä¸ä½ä»£æ¿é¤2è¿ç®ï¼å©ç¨ &1 夿æ¯å¦ä¸ºå¥æ°ãåæ¶éè¦æ³¨æ**éå½ç»æ¢æ¡ä»¶**ï¼exponent = 1çè¯ï¼return baseï¼exponent = -1çè¯ï¼return 1.0/baseã忬¡æéï¼å¿
é¡»åæ 1.0/baseï¼å¦å 1/baseï¼è¿åä¸ä¸ªinteger 0ï¼
[é¢è¯é¢12ï¼æå°1尿大çn使°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%89%93%E5%8D%B01%E5%88%B0%E6%9C%80%E5%A4%A7%E7%9A%84n%E4%BD%8D%E6%95%B0.py)ï¼è¯¥é¢çè¦ç¹æ¯æ³¨æè¾å
¥çn使°æ¯å¦ä¼å¯¼è´æº¢åºï¼å æ¤å©ç¨åç¬¦ä¸²æ¨¡ææ´æ°çå æ³ã**注æ**ï¼å¨æå°å½æ°ä¸ï¼éè¦å¤ææå°çæ°åæ¯å¦æ¯ä»¥0å¼å¤´çï¼åæ¶å¤ææ¡ä»¶æ¯ num[i] != "0"ï¼ä¸è½åä½ num[i] != 0ï¼å 为æ¯ä½¿ç¨strç±»åçï¼åé¢ä¸ç§åæ³å¯¼è´å¤ææ æ³æåã
[é¢è¯é¢13ï¼å¨O(1)æ¶é´å é¤é¾è¡¨ç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%9C%A8O(1)%E6%97%B6%E9%97%B4%E5%86%85%E5%88%A0%E9%99%A4%E9%93%BE%E8%A1%A8%E7%BB%93%E7%82%B9.py)ï¼å½è¦å é¤çç»ç¹ä¸æ¯å°¾ç»ç¹èä¸ä¸æ¯ä»
æä¸ä¸ªç»ç¹ç头ç»ç¹ï¼å¯ä»¥æè¯¥ç»ç¹içä¸ä¸ä¸ªç»ç¹jçå
容å¤å¶å°ç»ç¹iï¼åæ¶æiç»ç¹çnextæåjç»ç¹çnextï¼ç¶ååå é¤ç»ç¹jã妿è¦å é¤çé¾è¡¨ä¸ºåç»ç¹é¾è¡¨ä¸å¾
å é¤çç»ç¹å°±æ¯å¤´ç»ç¹ï¼éè¦æå¤´ç»ç¹ç½®ä¸ºNoneï¼å¦æå é¤çç»ç¹ä¸ºé¾è¡¨çå°¾ç»ç¹ï¼é£ä¹å°±éè¦é¡ºåºéåé¾è¡¨ï¼æ¾å°å°¾èç¹åé¢ä¸ä¸ªç»ç¹ï¼ç¶åå°å
¶next置空ã
[é¢è¯é¢14ï¼è°æ´æ°ç»é¡ºåºä½¿å¥æ°ä½äºå¶æ°åé¢](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E8%B0%83%E6%95%B4%E6%95%B0%E7%BB%84%E9%A1%BA%E5%BA%8F%E4%BD%BF%E5%A5%87%E6%95%B0%E4%BD%8D%E4%BA%8E%E5%81%B6%E6%95%B0%E5%89%8D%E9%9D%A2.py)ï¼æ³¨é彿°çæ©å±æ§è½ãæå½æ°ä¸ç夿æ¡ä»¶åæä¸ä¸ªå¤ææ¡ä»¶ç彿°ï¼æ¹ä¾¿ä¸å½æ°çæ©å±ã对äºå¥æ°ä½äºå¶æ°åé¢çæ
åµï¼ç±»ä¼¼äºå¿«æï¼å¨å¤´åå°¾åå«è®¾ç½®ä¸ä¸ªæéï¼å¤´æéæå奿°ååç§»ï¼å°¾æéæåå¶æ°ååç§»ã
[é¢è¯é¢15ï¼é¾è¡¨ä¸åæ°ç¬¬k个ç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E9%93%BE%E8%A1%A8%E4%B8%AD%E5%80%92%E6%95%B0%E7%AC%ACk%E4%B8%AA%E7%BB%93%E7%82%B9.py)ï¼ä»£ç ç鲿£æ§ãéè¦æ³¨æï¼å¦æè¾å
¥çé¾è¡¨ä¸ºç©ºï¼k大äºé¾è¡¨çé¿åº¦ï¼k为0çæ
åµãå¯¹äºæ£å¸¸æ
åµï¼è®¾ç½®ä¸¤ä¸ªæéå嫿å头ç»ç¹ï¼ç¬¬ä¸ä¸ªæéååèµ°**k-1æ¥**ï¼èµ°å°æ£æ°ç¬¬k个ç»ç¹ï¼åæ¶ä¿æç¬¬äºä¸ªæéä¸å¨ï¼ç¶å第ä¸ä¸ªæéå第äºä¸ªæéæ¯æ¬¡åæ¶åç§»ä¸æ¥ï¼è¿æ ·ç¬¬ä¸ä¸ªæéæåå°¾ç»ç¹çæ¶åï¼ç¬¬äºä¸ªæéæååæ°ç¬¬k个ç»ç¹ã夿尾ç»ç¹çæ¡ä»¶æ¯ **pNode.next == None**ã
[é¢è¯é¢16ï¼éå½ä»¥åééå½å®ç°å转é¾è¡¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A8.py)ï¼éè¦æ³¨æä¸ä¸ªé®é¢ï¼è¾å
¥çé¾è¡¨å¤´æé为Noneæè
æ´ä¸ªé¾è¡¨åªæä¸ä¸ªç»ç¹æ¶ï¼å转åçé¾è¡¨åºç°æè£ï¼è¿åç翻转ä¹åç头èç¹ä¸æ¯åå§é¾è¡¨çå°¾ç»ç¹ãå æ¤éè¦å¼å
¥ä¸ä¸ªç¿»è½¬åç头ç»ç¹ï¼ä»¥åä¸ä¸ªæåå½åç»ç¹çæéï¼ä¸ä¸ªæåå½åç»ç¹åä¸ä¸ªç»ç¹çæéï¼ä¸ä¸ªæåå½åç»ç¹åä¸ä¸ªç»ç¹çæéï¼é²æ¢åºç°æè£ãæ¨å¹¿ï¼éå½å®ç°å转é¾è¡¨
[é¢è¯é¢17ï¼å并两个æåºçé¾è¡¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%8E%92%E5%BA%8F%E7%9A%84%E9%93%BE%E8%A1%A8.py)ï¼è¦æ³¨æç¹æ®è¾å
¥ï¼å¦æè¾å
¥æ¯ç©ºé¾è¡¨ï¼ä¸è½å´©æºã
[é¢è¯é¢18ï¼æ çåç»æ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%A0%91%E7%9A%84%E5%AD%90%E7%BB%93%E6%9E%84.py):å¤åºéè¦å¤ææéæ¯ä¸æ¯Noneï¼é¿å
访é®ç©ºæéèé æç¨åºå´©æºã
[é¢è¯é¢19ï¼äºåæ çéå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%95%9C%E5%83%8F.py)ï¼éè¦å¤æè¾å
¥çç»ç¹ä¸ºç©ºæè
è¾å
¥çç»ç¹æ²¡æåæ çæ
åµã
[é¢è¯é¢20ï¼é¡ºæ¶éæå°ç©éµ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E9%A1%BA%E6%97%B6%E9%92%88%E6%89%93%E5%8D%B0%E7%9F%A9%E9%98%B5.py)ï¼é¦å
éè¦å¤ææ¯ä¸æ¥å¼å§æ¯çåæ ç¹æ¯å¦æ»¡è¶³å°äºè¡æ°çä¸åä¸å°äºåæ°çä¸åï¼å¨æåä¸åä¸ï¼å¯è½åºç°ä»
è½åå³èµ°ä¸è¡ï¼ä»
è½åå³èµ°ä¸è¡åä¸èµ°ä¸åï¼åå³èµ°ä¸è¡åä¸èµ°ä¸åå左走ä¸è¡ï¼è½èµ°å®æ´ä¸åï¼ä¸å
±åç§æ
åµãå
¶ä¸åªæè½å左走ä¸è¡å¿
ç¶åçï¼ä¸å¿
夿ï¼å©ä½çé½éè¦å¤æåçæ¡ä»¶ã
[é¢è¯é¢21ï¼å
å«min彿°çæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%8C%85%E5%90%ABmin%E5%87%BD%E6%95%B0%E7%9A%84%E6%A0%88.py)ï¼å¼å
¥ä¸¤ä¸ªæ ï¼ä¸ä¸ªæ æ¯æ¬¡pushå®é
çæ°åï¼å¦ä¸ä¸ªminStackï¼å¦æpushçæ°åå°äºminStackæ é¡¶çæ°åï¼pushæ°çæ°åï¼ç¹æ®ï¼ææ é¡¶çæ°åååå
¥ä¸éã
[é¢è¯é¢22ï¼æ çåå
¥ãå¼¹åºåºå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%A0%88%E7%9A%84%E5%8E%8B%E5%85%A5%E5%BC%B9%E5%87%BA%E5%BA%8F%E5%88%97.py)ï¼å»ºç«ä¸ä¸ªè¾
婿 ï¼æpushåºåçæ°å便¬¡åå
¥è¾
婿 ï¼æ¯æ¬¡åå
¥åï¼æ¯è¾è¾
婿 çæ é¡¶å
ç´ åpopåºåçé¦å
ç´ æ¯å¦ç¸çï¼ç¸ççè¯å°±æ¨åºpopåºåçé¦å
ç´ åè¾
婿 çæ é¡¶å
ç´ ï¼è¥æåè¾
婿 为空ï¼åpushåºåå¯ä»¥å¯¹åºäºpopåºåã
[é¢è¯é¢23ï¼ä»ä¸å¾ä¸æå°äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BB%8E%E4%B8%8A%E5%BE%80%E4%B8%8B%E6%89%93%E5%8D%B0%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼å¼å
¥ä¸ä¸ªéåå³å¯ãæ¨å¹¿ï¼æåå¾ç广度ä¼å
éå乿¯åºäºéåçã
[é¢è¯é¢24ï¼äºåæç´¢æ çåç»éååºå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E5%90%8E%E7%BB%AD%E9%81%8D%E5%8E%86%E5%BA%8F%E5%88%97.py)ï¼æ ¹æ®åç»éåçæ§è´¨ï¼å°¾å
ç´ å¿
宿¯æ çæ ¹ï¼åæ¶å°äºå°¾å
ç´ ç弿¯å·¦åæ ï¼å¤§äºå°¾å
ç´ çå¼ä¸ºå³åæ ï¼ä¸åºåååé¨ååå°äºå°¾å
ç´ ï¼ååé¨åå大äºå°¾å
ç´ ï¼å¦æåæ¶åå¨å·¦å³åæ çè¯ï¼ï¼å¯ä»¥å°åºåååå·¦åæ åºååå³åæ åºåï¼ç¶åé彿¯è¾å¸å¦¹æ¯ä¸æ®µåæ»¡è¶³æ¤æ§è´¨ãå¯ä»¥åå°é彿·±åº¦çåæ³ï¼ææ®µçå
ç´ ä¸ªæ°å¦æ<=3ï¼åè¿åTrueï¼ææ´æ®µçæå°å
ç´ ä¸å°äºå°¾å
ç´ æè
æ´æ®µçæå¤§å
ç´ ä¸å¤§äºå°¾å
ç´ ï¼è¯´æä»
æå·¦åæ æè
å³åæ ï¼è¿åTrueã
[é¢è¯é¢25ï¼äºåæ ä¸å为æä¸å¼çè·¯å¾](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%A0%91%E4%B8%AD%E5%92%8C%E4%B8%BA%E6%9F%90%E4%B8%80%E5%80%BC%E7%9A%84%E8%B7%AF%E5%BE%84.py)ï¼éå½
[é¢è¯é¢26ï¼å¤æé¾è¡¨çå¤å¶](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%A4%8D%E6%9D%82%E9%93%BE%E8%A1%A8%E7%9A%84%E5%A4%8D%E5%88%B6.py)ï¼æ³¨æé¾è¡¨ç»ç¹è¿è¡å¤å¶çæ¶åï¼ä¸è½ç®åå°åä½ pCloned = pNodeï¼è¿æ ·çè¯ä¹å对pClonedçæä½ä¹ä¼ä½ç¨å¨pNodeä¸é¢ï¼å¯¼è´æä½å¾ªç¯å¾å¤ãéè¦éæ°å®ä¸ä¸ªpCloned = ListNode(0)ï¼ç¶å对ç»ç¹ç.val .next .random è¿è¡è®¾ç½®ãåæ¶ï¼å¨å°å¤å¶çç»ç¹çrandomæååå§é¾è¡¨ç»ç¹çrandomçnextçæ¶åï¼éè¦å
夿ä¸ä¸ï¼åå§é¾è¡¨ç»ç¹çnextæ¯å¦ä¸ºNoneï¼ä¸ä¸ºNoneåæåã
[é¢è¯é¢27ï¼äºåæç´¢æ ä¸ååé¾è¡¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E4%B8%8E%E5%8F%8C%E5%90%91%E9%93%BE%E8%A1%A8.py):æç
§å·¦å³åæ åæ²»ï¼éå½å®ç°ãæ ¹çå·¦è¾¹è¿æ¥å·¦åæ çæå³è¾¹ç»ç¹ï¼å³è¾¹è¿æ¥å³åæ çæå·¦è¾¹ç»ç¹ã
[é¢è¯é¢28ï¼å符串çæå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%8E%92%E5%88%97%E5%92%8C%E7%BB%84%E5%90%88.py)ï¼ä¾æ¬¡åä¸ä¸ªå
ç´ ï¼ç¶å便¬¡åä¹åéå½å½¢æçææå串ç»åï¼å½¢ææ°çå符串ã[æ©å±ï¼å符串çç»å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%8E%92%E5%88%97%E5%92%8C%E7%BB%84%E5%90%88.py)
[é¢è¯é¢29ï¼æ°ç»ä¸åºç°æ¬¡æ°è¶
è¿ä¸åçæ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E7%BB%84%E4%B8%AD%E5%87%BA%E7%8E%B0%E6%AC%A1%E6%95%B0%E8%B6%85%E8%BF%87%E4%B8%80%E5%8D%8A%E7%9A%84%E6%95%B0%E5%AD%97.py)ï¼ä¸¤ç§æè·¯ã第ä¸ç§æè·¯ï¼åºç°æ¬¡æ°è¶
è¿ä¸åçæ°åï¼ä¸ç®¡å¦ä½ï¼å¿
ç¶è¿ä¸ªæ°åä½äºæ°ç»ä¸é´çä½ç½®ï¼å æ¤å¯ä»¥éç¨ç±»ä¼¼äºå¿«æçååçæ¹æ³ï¼æ¾å°ä½äºæ°ç»ä¸é´çä½ç½®çæ°åï¼ç¶åå¨é¡ºåºæ£ç´¢æ¯å¦è¿ä¸ªæ°ååºç°æ¬¡æ°è¶
è¿ä¸åã第äºç§æè·¯æ ¹æ®æ°ç»çç¹ç¹ï¼åºç°æ¬¡æ°è¶
è¿ä¸åçæ°ï¼ä»åºç°çæ¬¡æ°æ¯å
¶ä»æ°ååºç°çæ»åè¿è¦å¤ï¼å æ¤å¯ä»¥æå¼å§ä¿å两个æ°å¼ï¼æ°ç»ä¸çä¸ä¸ªæ°å以åå®åºç°ç次æ°ï¼ç¶åéåï¼å¦æä¸ä¸ä¸ªæ°åçäºè¿ä¸ªæ°åï¼é£ä¹æ¬¡æ°å ä¸ï¼å¦æä¸çï¼æ¬¡æ°åä¸ï¼å½æ¬¡æ°çäº0çæ¶åï¼å¨ä¸ä¸ä¸ªæ°åçæ¶åéæ°å¤å¶æ°çæ°å以ååºç°ç次æ°ç½®ä¸º1ï¼ç´å°è¿è¡å°æåï¼**ç¶ååéªè¯æåçä¸çæ°åæ¯å¦åºç°æ¬¡æ°è¶
è¿ä¸å**ï¼å 为å¯è½åé¢ç次æ°ä¾æ¬¡æµæ¶æï¼æåä¸ä¸ªæ°åå°±ç´æ¥æ¯ä¿ç䏿¥çæ°åï¼ä½æ¯åºç°æ¬¡æ°ä¸ä¸å®è¶
è¿ä¸åã
[é¢è¯é¢30ï¼æå°çk个æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%9C%80%E5%B0%8F%E7%9A%84k%E4%B8%AA%E6%95%B0.py)ï¼ä¸¤ç§æ¹æ³ã第ä¸ç§æ¹æ³æ¯åºäºååçæ¹æ³ï¼å¦ææ¯æ¥æ¾ç¬¬k个æ°åï¼ç¬¬ä¸æ¬¡ååä¹åï¼ååçä½ç½®å¦æå¤§äºkï¼é£ä¹å°±å¨åé¢çåæ°ç»ä¸è¿è¡ç»§ç»ååï¼åä¹åå¨åé¢çåæ°ç»ç»§ç»ååï¼æ¶é´å¤æåº¦O(n)ï¼ç¬¬äºç§æ¹æ³æ¯å¯ä»¥éç¨äº**æµ·éæ°æ®**çæ¹æ³ï¼è¯¥æ¹æ³åºäºäºåæ æè
å æ¥å®ç°ï¼é¦å
ææ°ç»åk个æ°åæå»ºä¸ä¸ªæå¤§å ï¼ç¶åä»ç¬¬k+1个æ°åå¼å§éåæ°ç»ï¼å¦æéåå°çå
ç´ å°äºå é¡¶çæ°åï¼é£ä¹ä¹
å°æ¢ä¸¤ä¸ªæ°åï¼éæ°æé å ï¼ç»§ç»éåï¼æåå©ä¸çå å°±æ¯æå°çk个æ°ï¼æ¶é´å¤æåº¦O(nlog k)ã
[é¢è¯é¢31ï¼è¿ç»åæ°ç»çæå¤§å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E8%BF%9E%E7%BB%AD%E5%AD%90%E6%95%B0%E7%BB%84%E7%9A%84%E6%9C%80%E5%A4%A7%E5%92%8C.py)ï¼å
³é®çé®é¢å¨äºæååææ´ä¸ªè¿ç¨ã对äºè¿ç»åæ°ç»ï¼å¯ä»¥ç¨ä¸ä¸ªæ°å¼æ¥åå¨å½ååï¼å¦æå½ååå°äºé¶ï¼é£ä¹å¨è¿è¡å°ä¸ä¸ä¸ªå
ç´ çæ¶åï¼ç´æ¥æå½ååèµå¼ä¸ºä¸ä¸ä¸ªå
ç´ ï¼å¦æå½åå大äºé¶ï¼åç´¯å ä¸ä¸ä¸ªå
ç´ ï¼åæ¶ç¨ä¸ä¸ªmaxNumå卿大å¼å¹¶éæ¶æ´æ°ãä¹å¯ä»¥å©ç¨å¨æè§åè§£å³ã
[é¢è¯é¢32ï¼ä»1å°næ´æ°ä¸1åºç°ç次æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B4%E6%95%B0%E4%B8%AD1%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0.py)ï¼å©ç¨[æ°åè§å¾](http://blog.csdn.net/u012505432/article/details/51889052)å®ç°æ´ä¸ºç®åã
[é¢è¯é¢33ï¼ææ°ç»æææå°æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%8A%8A%E6%95%B0%E7%BB%84%E6%8E%92%E6%88%90%E6%9C%80%E5%B0%8F%E7%9A%84%E6%95%B0.py)ï¼é¦å
å°æ°ç»ä¸çæ°åå
¨é¨è½¬æ¢ä¸ºå符串åå¨å¨ä¸ä¸ªæ°çæ°ç»ä¸ï¼ç¶åæ¯è¾æ¯ä¸¤ä¸ªæ°åä¸²çæ¼æ¥çmnånmç大å°ï¼è¥mn2ï¼ä¹ä»¥3åè½å¾å°çæå¤§ä¸æ°M3ï¼ä¹ä»¥5åè½å¾å°çæå¤§ä¸æ°M5ï¼é£ä¹ä¸ä¸ä¸ªä¸æ°ä¸å®æ¯M2ï¼M3ï¼M5ä¸çæå°çé£ä¸ä¸ªãåæ¶æ³¨æå°ï¼å·²æç䏿°æ¯æé¡ºåºåæ¾å¨æ°ç»ä¸çã对ä¹ä»¥2èè¨ï¼è¯å®å卿ä¸ä¸ªä¸æ°T2ï¼æå¨ä»ä¹åçæ¯ä¸ä¸ªä¸æ°ä¹ä»¥2å¾å°çç»æé½ä¼å°äºå·²æçæå¤§ä¸æ°ï¼å¨ä»ä¹åçæ¯ä¸ä¸ªä¸æ°ä¹ä»¥2å¾å°çç»æé½ä¼å¤ªå¤§ï¼æä»¬åªéè®°ä¸è¿ä¸ªä¸æ°çä½ç½®ï¼æ¯æ¬¡çææ°ç䏿°çæ¶åï¼å»æ´æ°è¿ä¸ªT2ã对äº3å5åçã
[é¢è¯é¢35ï¼ç¬¬ä¸ä¸ªåªåºç°ä¸æ¬¡çå符](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%AA%E5%87%BA%E7%8E%B0%E4%B8%80%E6%AC%A1%E7%9A%84%E5%AD%97%E7%AC%A6.py)ï¼å
éåä¸éå符串ï¼ç¨ä¸ä¸ªhashè¡¨åæ¾æ¯ä¸ªåºç°çå符åå符åºç°ç次æ°ãåéåä¸éåç¬¦ä¸²ï¼æ¾å°hashå¼çäº1çè¾åºå³å¯ã
[é¢è¯é¢36ï¼æ°ç»ä¸çéåºå¯¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E7%BB%84%E4%B8%AD%E7%9A%84%E9%80%86%E5%BA%8F%E5%AF%B9.py)ï¼è¿éé¢å¯ä»¥è¿ä¹æ³ï¼æä»¬è¦æ¾å°æ°ç»ä¸çéåºå¯¹ï¼å¯ä»¥çåå¯¹æ°æ®è¿è¡æåºï¼éè¦äº¤æ¢æ°ç»ä¸çå
ç´ çæ¬¡æ°ï¼ä½æ¯é²æ¢ç¸å大å°çå
ç´ åç交æ¢ï¼å æ¤éè¦éæ©ä¸ä¸ªç¨³å®çæåºæ¹æ³ï¼è®°å½åç交æ¢ç次æ°ãé£ä¹ï¼åºäºæ¯è¾ç稳å®çæåºæ¹æ³ä¸ï¼æå¿«çæ¹æ³å°±æ¯å½å¹¶äºï¼æä»¥ç´æ¥æç
§å½å¹¶æåºçæè·¯ï¼å°æ°ç»åè§£ãåå¹¶ãæåºå³å¯ã使¯éè¦æ³¨æçæ¯ï¼å¨å¸¸è§å½å¹¶æåºçæ¶åï¼å¦æåä¸ä¸ªå
ç´ å¤§äºåä¸ä¸ªå
ç´ ï¼ç´æ¥è¿è¡äº¤æ¢å³å¯ï¼åªè¿è¡äºä¸æ¬¡æä½ï¼ä½æ¯å¯¹äºè¿é颿¥è®²ï¼å¯¹äºæ¯ä¸æ¬¡çå½å¹¶æ®µï¼æä»¬éæ©ä»åååéåï¼åé¢çå½å¹¶æ®µçæä¸ä¸ªæ°å¼left[i]妿大äºåé¢çæä¸ä¸ªæ°å¼right[j]ï¼å 为å¨rightèªå·±ç¬èªæåºçè¿ç¨ä¸ï¼å·²ç»ä¿è¯äºrightæ¯æåºçï¼æä»¥jä½ç½®åé¢çæ°åå
¨é¨å°äºright[j]ï¼æä»¥å¨è¿ééåºå¯¹ç个æ°å°±ä¼æ¯ j-start-lengthï¼å
¶ä¸startæ¯æ´ä¸ªæ°ç»çèµ·ç¹ï¼lengthæ¯leftçé¿åº¦ï¼ç¶ååè¿è¡äº¤æ¢ã
[é¢è¯é¢37ï¼ä¸¤ä¸ªé¾è¡¨ç第ä¸ä¸ªå
Œ
±ç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%B8%A4%E4%B8%AA%E9%93%BE%E8%A1%A8%E7%9A%84%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%85%AC%E5%85%B1%E7%BB%93%E7%82%B9.py)ï¼é¦å
便¬¡éå两个é¾è¡¨ï¼è®°å½ä¸¤ä¸ªé¾è¡¨çé¿åº¦månï¼å¦æ m > nï¼é£ä¹æä»¬å°±å
让é¿åº¦ä¸ºmçé¾è¡¨èµ°m-n个ç»ç¹ï¼ç¶å两个é¾è¡¨åæ¶éåï¼å½éåå°ç¸åçç»ç¹çæ¶å忢å³å¯ãå¯¹äº m < nï¼åçã
[é¢è¯é¢38ï¼æ°åå¨æåºæ°ç»ä¸åºç°ç次æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E5%AD%97%E5%9C%A8%E6%8E%92%E5%BA%8F%E6%95%B0%E7%BB%84%E4%B8%AD%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0.py)ï¼äºåæ¥æ¾çæ©å±ãå¯ä»¥æé ä¸¤ä¸ªå½æ°ã第ä¸ä¸ªå½æ°æ¥æ¾ç®æ æ°ååºç°çæåé¢çä½ç½®ï¼å
使ç¨äºåæ¥æ¾æ¾å°è¯¥æ°åï¼å¦æè¯¥æ°åçindex > 0èä¸è¯¥æ°ååé¢ä¸ä¸ªæ°åçäºkçè¯ï¼é£ä¹å°±ä»¤end=middle-1ï¼ç»§ç»äºåæ¥æ¾ã对äºç¬¬äºä¸ªå½æ°ï¼æ¥æ¾ç®æ æ°ååºç°çæåé¢çä½ç½®ï¼åä¹ç¼åãæå妿**æ°ååå¨**çè¯ï¼ä»¤èµ°åé¢çindexå廿åé¢çindexç¶å+1å³å¯ã**å¨è¿è¡æåºæ°ç»çå
ç´ æ¥æ¾ï¼å¯ä»¥å
å°è¯ä¸ä¸äºåæ¥æ¾**
[é¢è¯é¢39ï¼äºåæ çæ·±åº¦](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%B7%B1%E5%BA%A6.py)ï¼å©ç¨éå½å®ç°ã妿䏿£µæ åªæä¸ä¸ªç»ç¹ï¼é£ä¹å®ç深度为1ãéå½çæ¶åæ é夿左å³åæ æ¯å¦åå¨ï¼å ä¸ºå¦æè¯¥èç¹ä¸ºå¶èç¹ï¼å®çå·¦å³åæ ä¸åå¨ï¼é£ä¹å¨ä¸ä¸çº§éå½çæ¶åï¼ç´æ¥return 0ãåæ¶ï¼è®°å¾æ¯æ¬¡éå½è¿åå¼çæ¶åï¼æ·±åº¦å 䏿ä½ã
[é¢è¯é¢39ï¼å¤æå¹³è¡¡äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%88%A4%E6%96%AD%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼åºäºäºåæ çæ·±åº¦ï¼å次è¿è¡éå½ã以æ¤å¤æå·¦åæ çé«åº¦åå³åæ çé«åº¦å·®æ¯å¦å¤§äº1ï¼è¥æ¯åä¸å¹³è¡¡ï¼åä¹å¹³è¡¡ã
[é¢è¯é¢40ï¼æ°ç»ä¸åªåºç°ä¸æ¬¡çæ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E7%BB%84%E4%B8%AD%E5%8F%AA%E5%87%BA%E7%8E%B0%E4%B8%80%E6%AC%A1%E7%9A%84%E6%95%B0%E5%AD%97.py)ï¼**ä»»ä½ä¸ä¸ªæ°å弿ä»èªå·±é½çäº0**ï¼**0弿任ä½ä¸ä¸ªæ°é½çäºé£ä¸ªæ°**ãæ°ç»ä¸åºäºä¸¤ä¸ªæ°åä¹å¤ï¼å
¶ä»æ°åé½åºç°ä¸¤æ¬¡ï¼é£ä¹æä»¬ä»å¤´å°å°¾ä¾æ¬¡å¼ææ°ç»ä¸çæ¯ä¸ªæ°ï¼é£ä¹åºç°ä¸¤æ¬¡çæ°åé½å¨æ´ä¸ªè¿ç¨ä¸è¢«æµæ¶æï¼é£ä¸¤ä¸ªä¸åçæ°å弿çå¼ä¸ä¸º0ï¼ä¹å°±æ¯è¯´è¿ä¸¤ä¸ªæ°ç弿å¼ä¸è³å°æä¸ä½ä¸º1ãæä»¬æ¾å°ç»ææ°å䏿å³è¾¹ä¸º1çé£ä¸ä½iï¼ç¶å䏿¬¡éåæ°ç»ä¸çæ°åï¼å¦ææ°åç第iä½ä¸º1ï¼åæ°ååå°ç¬¬ä¸ç»ï¼æ°åç第iä½ä¸ä¸º1ï¼åæ°ååå°ç¬¬äºç»ãè¿æ ·ä»»ä½ä¸¤ä¸ªç¸åçæ°åå°±åå°äºä¸ç»ï¼è两个ä¸åçæ°åå¨ç¬¬iä½å¿
ç¶ä¸ä¸ªä¸º1ä¸ä¸ªä¸ä¸º1èåå°ä¸åçç»ï¼ç¶åå对两个ç»ä¾æ¬¡è¿è¡å¼ææä½ï¼æåæ¯ä¸ç»å¾å°çç»æå¯¹åºçå°±æ¯ä¸¤ä¸ªåªåºç°ä¸æ¬¡çæ°åã
[é¢è¯é¢41ï¼å为sç两个æ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%92%8C%E4%B8%BAs%E7%9A%84%E4%B8%A4%E4%B8%AA%E6%95%B0%E5%AD%97.py)ï¼è®¾å®ä¸¤ä¸ªæéï¼ä¸ä¸ªæåæ°ç»çèµ·ç¹ï¼ä¸ä¸ªæåæ°ç»çç»ç¹ï¼ç¶å对两个æ°åæ±åï¼å¦æå大äºç®æ å¼ï¼åæåä¸ä¸ªæéåç§»ï¼å¦æåå°äºç®æ å¼ï¼åæåä¸ä¸ªæéåç§»ã两个æé交æ±çæ¶åå¦æè¿æ²¡æ¾å°ï¼å°±ç»æ¢æä½ã
[é¢è¯é¢41ï¼å为sçè¿ç»æ£æ°åºå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%92%8C%E4%B8%BAs%E7%9A%84%E8%BF%9E%E7%BB%AD%E6%95%B4%E6%95%B0%E5%BA%8F%E5%88%97.py)ï¼è®¾å®ä¸¤ä¸ªæéï¼å
å嫿忰å1åæ°å2ï¼å¹¶è®¾è¿ä¸¤ä¸ªæé为smallåbigï¼å¯¹smallåbigæ±åï¼å¦æå大äºç®æ å¼ï¼åä»å½ååä¸å é¤smallå¼ï¼å¹¶æsmallå¼å ä¸ï¼å¦æåå°äºç®æ å¼ï¼åæbigå¼å ä¸ï¼åææ°çbigå¼å å
¥åä¸ã妿åçäºç®æ å¼ï¼å°±è¾åºsmallå°bigçåºåï¼åæ¶æbigå ä¸å¹¶å å
¥åä¸ï¼ç»§ç»ä¹åçæä½ã
[é¢è¯é¢42ï¼ç¿»è½¬åè¯é¡ºåº](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%BF%BB%E8%BD%AC%E5%8D%95%E8%AF%8D%E9%A1%BA%E5%BA%8F.py)ï¼é¦å
éè¦åä¸ä¸ªreverse彿°ï¼æä»»ä½è¾å
¥çå符串å®å
¨ç¿»è½¬ãç¶åä»åå¾å便¬¡éåæ°å符串ï¼å¦æéå°ç©ºæ ¼ï¼å°±æç©ºæ ¼åçå符串ç¨reverseç¿»è½¬ï¼æ·»å ç©ºæ ¼ï¼ç»§ç»éåãéè¦æ³¨æçæ¯ï¼å¦ææ°å符串ç»å°¾ä¸æ¯ç©ºæ ¼ï¼å½éåå°ç»å°¾çæ¶åï¼åä¸ä¸ªç©ºæ ¼å°ç»å°¾çå符串没æç¿»è½¬ï¼å æ¤è®°å¾è·³åºéååï¼éè¦å宿䏿¬¡ç¿»è½¬æä½ã
[é¢è¯é¢42ï¼å·¦æè½¬å符串](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%B7%A6%E6%97%8B%E8%BD%AC.py)ï¼é¦å
éè¦åä¸ä¸ªreverse彿°ï¼æä»»ä½è¾å
¥çå符串å®å
¨ç¿»è½¬ãç¶åæ ¹æ®é¢ç®ä¸ç»åºçå·¦æè½¬å符串ç个æ°nï¼ç¨å
¨å符串é¿åº¦lengthåå»æè½¬å符串个æ°nï¼æ±å¾å¯¹äºæ°çå符串åºè¯¥å¨åªä¸ä½è¿è¡æè½¬ï¼ç¶ååå«æè½¬å[:length-n]å串å[length-n:]å串ï¼éæ°æ¼æ¥ä¸¤ä¸ªå串å³å¯ã
[é¢è¯é¢43ï¼n个骰åçç¹æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/n%E4%B8%AA%E9%AA%B0%E5%AD%90%E7%9A%84%E7%82%B9%E6%95%B0.py)ï¼ç¨ä¸¤ä¸ªæ°ç»æ¥åå¨éª°åç¹æ°çæ¯ä¸ä¸ªæ»æ°åºç°æ¬¡æ°ãå¨ä¸æ¬¡å¾ªç¯ä¸ï¼ç¬¬ä¸ä¸ªæ°ç»ä¸ç第n个æ°å表示骰åå为nåºç°ç次æ°ãå¨ä¸ä¸æ¬¡å¾ªç¯ä¸å å
¥ä¸ä¸ªæ°ç骰åï¼æ¤æ¶å为nç骰ååºç°ç次æ°åºè¯¥çäºä¸ä¸æ¬¡å¾ªç¯ä¸éª°åç¹æ°å为n-1ï¼n-2ï¼n-3ï¼n-4ï¼n-5ï¼n-6çæ¬¡æ°çæ»åï¼ä¹å°±æ¯æå¦ä¸ä¸ªæ°ç»ç第n个æ°å对åºä¸ä¸ä¸ªæ°ç»çn-1ï¼n-2ï¼n-3ï¼n-4ï¼n-5ï¼n-6çæ¬¡æ°çæ»åãåæ¶éè¦æ³¨æçæ¯ï¼**æ¯æ¬¡ä½¿ç¨æ°æ°ç»çæ¶åï¼éè¦ææ°ç»ææä½ç½®æ¸
é¶**ï¼å 为æä»¬å¯¹äºç¬¬nä½è¿è¡çç´¯å æä½ï¼å¦æä¹å第n使æ°åä½ä¸æ¸
é¶çè¯ï¼ä¼å¯¼è´ç»æå大ã
[é¢è¯é¢44ï¼æå
çç顺å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%89%91%E5%85%8B%E7%89%8C%E7%9A%84%E9%A1%BA%E5%AD%90.py)ï¼å
ç½®æ¢ç¹æ®å符AJQK为æ°åï¼æåºï¼ç¶åæ±åºå¤§å°çå³0ç个æ°ï¼ç¶åæ±åºé¤å»0ä¹å¤çï¼æ°ç»é´çæ°åé´é(æ±é´éçæ¶åè®°å¾åå»1ï¼æ¯å¦4å5çé´é为5-4-1ï¼è¡¨ç¤º4å5æ¯è¿ç»çæ°å)ï¼åæ¶æ±é´éçæ¶åéè¦é´å«æ¯å¦åºç°å¯¹ãæåæ¯è¾0ç个æ°åé´éç大å°å³å¯ã
[é¢è¯é¢45ï¼ååä¸å©ä¸çæ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%BA%A6%E7%91%9F%E5%A4%AB%E7%8E%AF.py)ï¼éæ¨å
¬å¼ï¼f[i] = (f[i-1]+m)%iã[详解](http://blog.csdn.net/u012505432/article/details/51747181)
[é¢è¯é¢46ï¼æ±1+2+...+n](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%B1%82%E5%89%8Dn%E9%A1%B9%E5%92%8C.py)ï¼å©ç¨ä¸¤ä¸ªå½æ°ï¼ä¸ä¸ªå½æ°å
å½éå½å½æ°çè§è²ï¼å¦ä¸ä¸ªå½æ°å¤çç»æ¢éå½çæ
åµã妿坹nè¿ç»è¿è¡ä¸¤æ¬¡åè¿ç®ï¼é£ä¹éé¶çn转æ¢ä¸ºTrueï¼0转æ¢ä¸ºFalseãå©ç¨è¿ä¸ç¹æ§ç»æ¢éå½ã注æèèæµè¯ç¨ä¾ä¸º0çæ
åµã
[é¢è¯é¢47ï¼ä¸ç¨å åä¹é¤åå æ³](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%B8%8D%E7%94%A8%E5%8A%A0%E5%87%8F%E4%B9%98%E9%99%A4%E5%81%9A%E5%8A%A0%E6%B3%95.py)ï¼å°ä¸¤ä¸ªæ°çå æ³çä½ä¸¤æ¥ï¼ç¬¬ä¸æ¥æ¯ä¸¤ä¸ªæ°ç¸å 使¯ä¸è¿ä½ï¼ç¬¬äºæ¥æ¯è®°å½ä¹åç两æ°ç¸å åºè¯¥è¿ä½çå°æ¹å ä¸åä¸ä¸ªç¸å 使¯ä¸è¿ä½çæ°ã对äºå
·ä½ç两个ä¸å°äº0çæ°månï¼ç¬¬ä¸æ¥å¯ä»¥çåmånç弿è¿ç®m^nï¼ç¬¬äºæ¥å¯ä»¥çåmånçä¸è¿ç®ç¶å左移ä¸ä½å¾å°å®é
çè¿ä½ä½ç½®(m&n)<<1ãç¶åæä¸¤ä¸ªå¾å°çæ°åå èµ·æ¥ç»§ç»æä½ï¼æå°carryè¿ä½ä¸º0ç»æ¢æä½ã对äºå«æè´æ°çæ
åµï¼è§[åæ](http://blog.csdn.net/u012505432/article/details/51902155)ã
[é¢è¯é¢48ï¼ä¸è½è¢«ç»§æ¿çç±»(ææ )](https://github.com/Jack-Lee-Hiter)
[é¢è¯é¢49ï¼æåç¬¦ä¸²è½¬æ¢ææ´æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%8A%8A%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BD%AC%E6%8D%A2%E6%88%90%E6%95%B4%E6%95%B0.py)ï¼ä¸»è¦æ¯åºåè¾å
¥ååæ³æ§ï¼æ¯å¦è¾å
¥ä¸ä¸ªNoneï¼è¾å
¥ä¸ä¸ªç©ºå符串 ""ï¼æè
è¾å
¥çå符串ä¸å«æâ+âæè
â-âï¼æè
è¾å
¥çå符串ä¸å«æé¤å»+ â æ°åçéæ°åå符ï¼å¦ä½æ®µåºæ£å¸¸çè¾åºè¿æ¯æ¥éï¼éè¦èèçå
¨é¢ä¸äºã
[é¢è¯é¢50ï¼æ ä¸ä¸¤ä¸ªèç¹çæä½å
Œ
񇝆
](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%9C%80%E4%BD%8E%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.py)ï¼é¦å
æ¥çæ¯è¾ç®åçæ
åµ--[äºåæç´¢æ çæä½å
Œ
񇝆
](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E4%BD%8E%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88.py)ï¼å¯¹äºäºåæç´¢æ èè¨ï¼æ¯ä¸ªèç¹çå·¦åèç¹é½å°äºè¿ä¸ªæ°ï¼å³åèç¹é½å¤§äºè¿ä¸ªæ°ï¼å æ¤ï¼æä»¬æ¯è¾å½åèç¹åéè¦æ¯è¾çç»ç¹mï¼nç大å°ï¼å¦æå½åèç¹çå¼å大äºmï¼nï¼åå¨å½åèç¹çå·¦åæ ç»§ç»æä½ï¼å¦æå½åèç¹åå°äºmï¼nï¼åå¨å½åèç¹çå³åæ ç»§ç»æä½ï¼åä¹ï¼åå½åç»ç¹æ¯æå°å
Œ
񇝆
ãèå¯¹äºæ®éçäºåæ èè¨ï¼æä»¬å¦æå¸ææ¾å°ä¸¤ä¸ªç»ç¹çæä½å
Œ
񇝆
ï¼é£ä¹æä»¬å¯ä»¥å
仿 çæ ¹èç¹å¼å§ï¼æ¾å°æ ¹èç¹å°ç»ç¹måç»ç¹nçè·¯å¾ï¼è¿æ¶åæä»¬å°±æä¸¤ä¸ªListæè
两个é¾è¡¨ï¼ç¶åå°±ååé¢é¢ä¸éå°ç寻æ¾ä¸¤ä¸ªé¾è¡¨çå
Œ
±ç»ç¹ä¸æ ·ï¼ä»åå¾åéå两个Listæ¾å°æé åç第ä¸ä¸ªå
Œ
±ç»ç¹å³å¯ã
[é¢è¯é¢51ï¼æ°ç»ä¸éå¤çæ°å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E7%BB%84%E4%B8%AD%E9%87%8D%E5%A4%8D%E7%9A%84%E6%95%B0%E5%AD%97.py)ï¼å¯¹äºä¸ä¸ªé¿åº¦ä¸ºnçæ°ç»éææçæ°åé½å¨0å°n-1çèå´å
ãæ¥æ¾é夿°åçè¯ï¼é¦å
å®¹ææ³å°ï¼å¯¹æ°ç»è¿è¡æåºï¼ç¶åéåæ°ç»æ¥æ¾éå¤çæ°åï¼è¿æ ·çæ¶é´å¤æåº¦ä¸ºO(nlogn)ï¼æè
建ç«ä¸ä¸ªåå¸è¡¨ï¼è¿æ ·å®å¨O(n)çæ¶é´æ¥æ¾å°ï¼ä½æ¯ç©ºé´å¤æåº¦O(n)ãå¦å¤ä¸ä¸ªç©ºé´å¤æåº¦ä¸ºO(1)çç®æ³å¦ä¸ï¼å 为æ°åå¨0~n-1çèå´å
ï¼é£ä¹å¦ææ°å没æéå¤ï¼é£ä¹å½æ°ç»æåºä¹åæ°åiå°åºç°å¨ä¸æ 为içä½ç½®ï¼ä½æ¯æéå¤çè¯ï¼å¨æä¸ªä½ç½®jåºç°çæ°åå°ä¸æ¯jãæä»¬éæè¿ä¸ªæ°ç»ãä»å¤´å°å°¾ä¾æ¬¡æ«æè¿ä¸ªæ°ç»ä¸çæ¯ä¸ªæ°åï¼å¦æä¸æ i䏿¯åºç°æ°åiï¼é£ä¹å°±ææ°åiåiå¤çæ°åè¿è¡äº¤æ¢ä½¿æ°åiåºç°å¨åºè¯¥åºç°çä½ç½®ï¼å¦ææ°äº¤æ¢çæ°åè¿ä¸æ¯ä»åºè¯¥åºç°çä½ç½®ï¼ç»§ç»äº¤æ¢ï¼ç´è³è¯¥å¤çæ°åmçäºx䏿 mï¼å¦æå¨äº¤æ¢çè¿ç¨ä¸ï¼ç¬¬iå¤çä½ç½®æ°åçäºç¬¬må¤çæ°åï¼é£ä¹æä»¬å°±æ¾å°äºç¬¬ä¸ä¸ªéå¤çæ°åï¼è®°å½è¿ä¸ªæ°åï¼å¨ä»ä¸ä¸ä¸ªä½ç½®ç»§ç»æ«æã
[é¢è¯é¢52ï¼æå»ºä¹ç§¯æ°ç»](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%9E%84%E5%BB%BA%E4%B9%98%E7%A7%AF%E6%95%B0%E7%BB%84.py)ï¼ä½å¾ç»åºä¸ä¸ªn*nçç©éµï¼å³å¯çåºè§å¾ã注æéè¦å¾å°çåéåå§åçæ¶åï¼åå§åçå¼åºè¯¥ä¸º1ã
[é¢è¯é¢53ï¼æ£å表达å¼å¹é
](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%8C%B9%E9%85%8D.py)ï¼è¿éé¢çå
³é®å¨äºç¼æ¸
æè·¯ãå
·ä½æ
åµåæçä¸ä¸ä»£ç ä¸ç注éã
[é¢è¯é¢54ï¼è¡¨ç¤ºæ°å¼çå符串](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E8%A1%A8%E7%A4%BA%E6%95%B0%E5%80%BC%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2.py)ï¼è¿éé¢çå
³é®ä¹å¨äºè®¨è®ºæ¸
æ¥æ
åµï¼æææå¯è½åºç°çæ
åµé½èèå°ãéè¦æ³¨æçæ¯ï¼ææ°Eåé¢å¿
é¡»è·ä¸ä¸ªæ´æ°ï¼ä¸è½æ²¡ææ°ï¼ä¹ä¸è½ä¸ºå°æ°ã
[é¢è¯é¢55ï¼å符æµä¸ç¬¬ä¸ä¸ªä¸éå¤çå符](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%AD%97%E7%AC%A6%E6%B5%81%E4%B8%AD%E7%AC%AC%E4%B8%80%E4%B8%AA%E4%B8%8D%E9%87%8D%E5%A4%8D%E7%9A%84%E5%AD%97%E7%AC%A6.py)ï¼å¼å
¥ä¸¤ä¸ªè¾
å©åå¨ç©ºé´ãä¸ä¸ªDictåå¨å½ååºç°çå符以åå符åºç°ç次æ°ï¼ä¸ä¸ªListåå¨å½ååºç°å符ãç¶åæ¯æ¬¡æ¯è¾Listç第ä¸ä¸ªå符å¨Dictä¸å¯¹åºç次æ°ï¼å¦æä¸º1åè¾åºè¿ä¸ªå符ï¼å¦æä¸ä¸º1åå¼¹åºè¿ä¸ªå符æ¯è¾ä¸ä¸ä¸ªå符ã
[é¢è¯é¢56ï¼é¾è¡¨ä¸ç¯çå
¥å£ç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E9%93%BE%E8%A1%A8%E4%B8%AD%E7%8E%AF%E7%9A%84%E5%85%A5%E5%8F%A3%E7%BB%93%E7%82%B9.py)ï¼å¯»æ¾é¾è¡¨ä¸ç¯çå
¥å£ç»ç¹ä¸»è¦åæä¸ä¸ªæ¥éª¤ï¼é¦å
æ¯è®¾ç½®ä¸¤ä¸ªå¿«æ
¢æéï¼å¦æå¿«æ
¢æéç¸éï¼åå¿«æ
¢æéå¿
ç¶é½å¨ç¯ä¸ï¼ç¶åä»ç¸éçå°æ¹è®¾ç½®ä¸ä¸ªæéååéåå¹¶è®°å½èµ°çæ¥æ°ï¼å½è¿ä¸ªæééæ°æå°å¼å§çä½ç½®çæ¶åï¼å½å对åºçæ¥æ°å°±æ¯ç¯ä¸ç»ç¹çæ°ékï¼ç¶å设置两个æéä»é¾è¡¨å¼å§ï¼ç¬¬ä¸ä¸ªèç¹å
èµ°kæ¥ï¼ç¶å第äºä¸ªæéæå°é¾è¡¨çå¼å§ï¼ä¸¤ä¸ªæéæ¯æ¬¡é½ååèµ°ä¸æ¥ï¼ä¸¤ä¸ªæéç¸éçä½ç½®å°±æ¯é¾è¡¨çå
¥å£ã
[é¢è¯é¢57ï¼å é¤é¾è¡¨ä¸éå¤çç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%88%A0%E9%99%A4%E9%93%BE%E8%A1%A8%E4%B8%AD%E9%87%8D%E5%A4%8D%E7%9A%84%E7%BB%93%E7%82%B9.py)ï¼æä»¬éè¦è®¾ç½®ä¸ä¸ªæépreNodeï¼preNodeæå¼å§ä¸ºNoneï¼ç¶å设置两个æéï¼pNodeæåå½åèç¹ï¼pNextæåpNodeä¸ä¸ä¸ªç»ç¹ï¼âµå¦æpNextä¸ä¸ºç©ºèä¸pNextçå¼çäºpNodeçå¼ï¼é£ä¹å°±è¯´æåºç°äºé夿°åçç»ç¹ï¼å°±éè¦å é¤ï¼ç¶åä»pNodeå¼å§éåï¼å¦æç»ç¹å¼çäºåé¢é£ä¸ªéå¤å¼ï¼ç»§ç»éåãå½éåå°Noneæè
ä¸åå¼ç»ç¹çæ¶åï¼è¿æ¶åéè¦å¤æpreNodeç»ç¹ï¼å¦æpreNodeç»ç¹ä¸ºNoneï¼å°±è¯´ææä»¬åæçéå¤ç»ç¹æ¯ä»æ´ä¸ªé¾è¡¨ç头ç»ç¹å¼å§éå¤çï¼å°±ç´æ¥æpHead设置为å½åç»ç¹ï¼pNodeä¹è®¾ç½®ä¸ºå½åç»ç¹ãåä¹ï¼å¦æpreNodeä¸ä¸ºNoneï¼ç´æ¥æpreNodeçä¸ä¸ä¸ªæéæåå½åèç¹ï¼pNodeæåpreNodeå³å¯ï¼â¶å¦æpNext为空æè
pNextçå¼ä¸çäºpNodeçå¼ï¼è¯´æå½åçè¿ä¸ªpNodeååé¢çå¼ä¸éå¤ï¼ç´æ¥ä»¤preNode = pNodeï¼pNodeæåä¸ä¸ä¸ªç»ç¹å³å¯ã
[é¢è¯é¢58ï¼äºåæ çä¸ä¸ä¸ªç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E4%B8%8B%E4%B8%80%E4%B8%AA%E7%BB%93%E7%82%B9.py)ï¼ä¸ç§æ
åµï¼å½åèç¹æå³åæ çè¯ï¼å½åèç¹çä¸ä¸ä¸ªç»ç¹æ¯å³åæ ä¸çæå·¦åèç¹ï¼å½åèç¹æ å³åæ 使¯æ¯ç¶èç¹çå·¦åèç¹ï¼ä¸ä¸ä¸ªèç¹æ¯å½åç»ç¹çç¶èç¹ï¼å½åèç¹æ å³åæ è䏿¯ç¶èç¹çå³åèç¹ï¼åä¸ç´åä¸éåï¼ç´å°æ¾å°æé è¿çä¸ä¸ªç¥å
èç¹pNodeï¼pNodeæ¯å
¶ç¶èç¹çå·¦åèç¹ï¼é£ä¹è¾å
¥èç¹çä¸ä¸ä¸ªç»ç¹å°±æ¯pNodeçç¶èç¹ã
[é¢è¯é¢59ï¼å¯¹ç§°çäºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%AF%B9%E7%A7%B0%E7%9A%84%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼å为éå½åééå½çä¸¤ç§æ¹å¼ï¼ææ³æ¯ä¸æ ·çã主è¦å°±æ¯æå¶åèç¹çNoneèç¹ä¹å å
¥å°éåå½ä¸ãæç
§ååºéåäºåæ ï¼åå
¥ä¸ä¸ªåºåä¸ãç¶åæç
§åååºéå对åºçå
ç¶èç¹ï¼ç¶åå³åèç¹ï¼æåå·¦åèç¹éåäºåæ ï¼åå
¥ä¸ä¸ªåºåã妿åå两个åºåç¸çï¼é£ä¹è¯´æäºåæ æ¯å¯¹ç§°çã
[é¢è¯é¢60ï¼æäºåæ æå°æå¤è¡](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%8A%8A%E4%BA%8C%E5%8F%89%E6%A0%91%E6%89%93%E5%8D%B0%E6%88%90%E5%A4%9A%E8%A1%8C.py)ï¼å¼å
¥ä¸¤ä¸ªéåãé¦å
æå½åå±çèç¹åå
¥å°ä¸ä¸ªéåqueue1ä¸ï¼ç¶åéåå½åéåqueue1ï¼å¨éåçè¿ç¨ä¸ï¼å¦æèç¹æå·¦åæ æå³åæ ï¼ä¾æ¬¡åå
¥å¦ä¸ä¸ªéåqueue2ãç¶åéåéåqueue2ï¼å¦æ¤å¾å¤ã
[é¢è¯é¢61ï¼æä¹åå½¢é¡ºåºæå°äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%8C%89%E4%B9%8B%E5%AD%97%E5%BD%A2%E9%A1%BA%E5%BA%8F%E6%89%93%E5%8D%B0%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼æä¹åå½¢é¡ºåºæå°äºåæ éè¦ä¸¤ä¸ªæ ãæä»¬å¨æå°æä¸è¡èç¹æ¶ï¼æä¸ä¸å±çåèç¹ä¿åå°ç¸åºçæ éã妿å½åæå°ç奿°å±ï¼åå
ä¿åå·¦åèç¹åä¿åå³åèç¹å°ç¬¬ä¸ä¸ªæ éï¼å¦æå½åæå°çæ¯å¶æ°å±ï¼åå
ä¿åå³åèç¹åä¿åå·¦åèç¹å°ç¬¬äºä¸ªæ éã
[é¢è¯é¢62ï¼åºååäºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%BA%8F%E5%88%97%E5%8C%96%E4%BA%8C%E5%8F%89%E6%A0%91.py)ï¼æç»è¦å®ç°çæ¯äºåæ çåºåååååºååãé¦å
æ¥çäºåæ çåºååï¼äºåæ çåºååå°±æ¯éç¨ååºéåäºåæ è¾åºèç¹ï¼å碰å°å·¦åèç¹æè
å³åèç¹ä¸ºNoneçæ¶åè¾åºä¸ä¸ªç¹æ®å符"#"ã对äºååºååï¼å°±æ¯é对è¾å
¥çä¸ä¸ªåºåæå»ºä¸æ£µäºåæ ï¼æä»¬å¯ä»¥è®¾ç½®ä¸ä¸ªæéå
æååºåçæå¼å§ï¼ç¶åææéæåä½ç½®çæ°å转å为äºåæ çç»ç¹ï¼åç§»ä¸ä¸ªæ°åï¼ç»§ç»è½¬åä¸ºå·¦åæ åå³åæ ãå½éå°å½åæåçåç¬¦ä¸ºç¹æ®å符"#"æè
æéè¶
åºäºåºåçé¿åº¦ï¼åè¿åNoneï¼æéåç§»ï¼ç»§ç»éåã
[é¢è¯é¢63ï¼äºåæç´¢æ ç第k个ç»ç¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E7%AC%ACk%E4%B8%AA%E7%BB%93%E7%82%B9.py)ï¼ä¸åºéåè¾åºä¸ä¸ªåºåï¼ç¶åæ¾å°åºåä¸ç¬¬k个æ°å³å¯ã
[é¢è¯é¢64ï¼æ°æ®æµä¸çä¸ä½æ°](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%95%B0%E6%8D%AE%E6%B5%81%E4%B8%AD%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0.py)ï¼æå»ºä¸ä¸ªæå¤§å åä¸ä¸ªæå°å ï¼åå«å卿¯ä¸ä½æ°å°çæ°åå¤§çæ°ãå½ç®åä¸¤å æ»æ°ä¸ºå¶æ°çæ¶åï¼ææ°ååå
¥æå¤§å ï¼ç¶å鿿大å ï¼å¦ææå¤§å çå é¡¶æ°åå¤§äºæå°å å é¡¶æ°åï¼åæä¸¤ä¸ªå é¡¶æ°å交æ¢ï¼éæä¸¤å ï¼æ¤æ¶ä¸¤å æ°åæ»æ°ä¸ºå¥æ°ï¼ç´æ¥è¾åºæå¤§å å é¡¶æ°åå³ä¸ºä¸ä½æ°ï¼å¦æå½åä¸¤å æ»æ°ä¸ºææ¯çæ¶åï¼ææ°ååå
¥æå°å ï¼éææå°å ï¼å¦ææå¤§å çå é¡¶æ°åå¤§äºæå°å å é¡¶æ°åï¼åæä¸¤ä¸ªå é¡¶æ°å交æ¢ï¼éæä¸¤å ï¼æ¤æ¶ä¸¤å æ°åæ»æ°ä¸ºå¶æ°ï¼å两å å é¡¶æ°ååå¹³åå³ä¸ºä¸ä½æ°ã
[é¢è¯é¢65ï¼æ»å¨çªå£çæå¤§å¼](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E7%9A%84%E6%9C%80%E5%A4%A7%E5%80%BC.py)ï¼æä»¬æå¯è½æä¸ºæ»å¨çªå£çæå¤§å¼çæ°å¼ä¸æ åå
¥ä¸ä¸ªä¸¤ç«¯å¼å£çéåindexä¸ãé¦å
éåè¾å
¥æ°ç»ï¼å¨é忬¡æ°å°äºçªå£é¿åº¦çæ¶åï¼å¦æindexæ°ç»éé¢å«æå
ç´ èä¸å
ç´ åé¢ç䏿 å¼å¯¹åºçè¾å
¥æ°ç»çæ°å¦æå°äºå½åéåå°çè¾å
¥æ°ç»å
ç´ å¼ï¼é£ä¹å°±æå°¾é¨çå
ç´ ä¸æ å¼ä¸æpopåºæ¥ï¼ååå
¥å½åè¾å
¥å
ç´ å¯¹åºç䏿 å¼ãç¶ååä»çäºæ»å¨çªå£å¤§å°çä½ç½®ç»§ç»éåè¾å
¥æ°ç»ãé¦å
æindexæ°ç»ç头å
ç´ ä¸æ å¼å¯¹åºè¾å
¥æ°ç»å¼åå
¥è¾åºæ°ç»ãåæ ·çï¼å¦æindexæ°ç»éé¢å«æå
ç´ èä¸å
ç´ åé¢ç䏿 å¼å¯¹åºçè¾å
¥æ°ç»çæ°å¦æå°äºå½åéåå°çè¾å
¥æ°ç»å
ç´ å¼ï¼é£ä¹å°±æå°¾é¨çå
ç´ ä¸æ å¼ä¸æpopåºæ¥ï¼åæ¶ï¼å¦æindexæ°ç»å
æå
ç´ ï¼èä¸å½ä¸ä¸ªæ°åç䏿 ä¸å½åå¤ççæ°åç䏿 åªå·®å¤§äºæçäºæ»å¨çªå£ç大尿¶ï¼è¿ä¸ªæ°åå·²ç»ä»çªå£ä¸ç»åºï¼å¯ä»¥ä»éåä¸å é¤äºï¼ååå
¥å½åè¾å
¥å
ç´ å¯¹åºç䏿 å¼ã**æåè¿éè¦å¨è¾åºæ°ç»ä¸appendä¸ä¸indexæå
ç´ ä¸æ 对åºçè¾å
¥å
ç´ å¼**ã
[é¢è¯é¢66ï¼ç©éµä¸çè·¯å¾](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E7%9F%A9%E9%98%B5%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84.py)ï¼å溯æ³ãä»»éä¸ä¸ªæ ¼åä½ä¸ºè·¯å¾çèµ·ç¹ãå设ç©éµä¸æä¸ªæ ¼åçå符为chå¹¶ä¸è¿ä¸ªæ ¼åå°å¯¹åºäºè·¯å¾ä¸ç第i个å符ãå¦æè·¯å¾ä¸ç第i个åç¬¦ä¸æ¯chï¼é£ä¹è¿ä¸ªæ ¼åä¸å¯è½å¤å¨è·¯å¾ä¸ç第i个ä½ç½®ãå¦æè·¯å¾ä¸ç第i个å符æ£å¥½æ¯chï¼é£ä¹å¾ç¸é»çæ ¼å寻æ¾è·¯å¾ä¸ç第i+1个å符ãé¤å¨ç©éµè¾¹çä¸çæ ¼åå¤ï¼å
¶ä»åèªé½æ4个ç¸é»çæ ¼åãéå¤è¿ä¸ªè¿ç¨ç´å°è·¯å¾ä¸çææå符é½å¨ç©éµä¸æ¾å°ç¸åºçä½ç½®ã
[é¢è¯é¢67ï¼æºå¨äººçè¿å¨èå´](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%9C%BA%E5%99%A8%E4%BA%BA%E7%9A%84%E8%BF%90%E5%8A%A8%E8%8C%83%E5%9B%B4.py)ï¼å溯æ³ã类似äºé¢è¯é¢66ãææ¹æ ¼çæä¸ä¸ªm*nçç©éµï¼ä»ï¼0ï¼0ï¼å¼å§ç§»å¨ãå½åå¤è¿å
¥åæ (i, j)æ¯ï¼éè¿æ£æ¥åæ çæ°ä½æ¥å¤ææºå¨äººè½å¦è¿å
¥ã妿è½è¿å
¥çè¯ï¼æ¥ç夿å个ç¸é»çæ ¼åã
[é¢è¯é¢è¡¥å
ï¼ä¸å
ç»å®ç°ç¨çç©éµç¸ä¹](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/multiSparse.py)
[é¢è¯é¢è¡¥å
ï¼ç¨çç©éµç转置](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/transSparseMatrix.py)
[é¢è¯é¢è¡¥å
ï¼äºåæç´¢æ çåç»éå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E5%90%8E%E7%BB%AD%E9%81%8D%E5%8E%86%E5%BA%8F%E5%88%97.py)
[é¢è¯é¢è¡¥å
ï¼å
«çåé®é¢](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%85%AB%E7%9A%87%E5%90%8E%E9%97%AE%E9%A2%98.py)
[é¢è¯é¢è¡¥å
ï¼åæ²»æ³è§£å³æè¿å¯¹é®é¢](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%88%86%E6%B2%BB%E6%B3%95%E8%A7%A3%E5%86%B3%E6%9C%80%E8%BF%91%E5%AF%B9%E9%97%AE%E9%A2%98.py)
[é¢è¯é¢è¡¥å
ï¼å¤æå¹³è¡¡äºåæ ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%88%A4%E6%96%AD%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%A0%91.py)
[é¢è¯é¢è¡¥å
ï¼å¸¦éçé¨](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E5%B8%A6%E9%94%81%E7%9A%84%E9%97%A8.py)
[é¢è¯é¢è¡¥å
ï¼æ ¼é·ç ](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%A0%BC%E9%9B%B7%E7%A0%81.py)
[é¢è¯é¢è¡¥å
ï¼æ£æ¹ä½å¯¹é¢åç¸å](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%AD%A3%E6%96%B9%E4%BD%93%E5%AF%B9%E9%9D%A2%E5%92%8C%E7%9B%B8%E5%90%8C.py)
[é¢è¯é¢è¡¥å
ï¼è½¬æ¢åç¬¦ä¸²æ ¼å¼](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E8%BD%AC%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%A0%BC%E5%BC%8F.py)
[é¢è¯é¢è¡¥å
ï¼è¾åºè¿ç»è´¨æ°åºå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E8%BE%93%E5%87%BA%E8%BF%9E%E7%BB%AD%E8%B4%A8%E6%95%B0%E5%BA%8F%E5%88%97.py)
[é¢è¯é¢è¡¥å
ï¼éå½åééå½å®ç°äºåæç´¢æ çä¸ç§éå](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E9%80%92%E5%BD%92%E5%92%8C%E9%9D%9E%E9%80%92%E5%BD%92%E5%AE%9E%E7%8E%B0%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E4%B8%89%E7%A7%8D%E9%81%8D%E5%8E%86.py)
[é¢è¯é¢è¡¥å
ï¼äºåæ ç宽度](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/blob/master/Target%20Offer/%E6%A0%91%E7%9A%84%E5%AE%BD%E5%BA%A6.py)
[LeetCode](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/tree/master/leetcode)
[logisticåå½](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/tree/master/Logistic%20regression)
[SVM](https://github.com/Jack-Lee-Hiter/AlgorithmsByPython/tree/master/SVM)