锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲第一二三四区,久久久久亚洲精品无码网址,久久久久亚洲AV无码专区桃色http://www.tkk7.com/menglee/archive/2016/11/13/431980.htmlMeng LeeMeng LeeSat, 12 Nov 2016 16:45:00 GMThttp://www.tkk7.com/menglee/archive/2016/11/13/431980.htmlhttp://www.tkk7.com/menglee/comments/431980.htmlhttp://www.tkk7.com/menglee/archive/2016/11/13/431980.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/431980.htmlhttp://www.tkk7.com/menglee/services/trackbacks/431980.html
鏈枃浠嬬粛浜嗗寘鎷?Python銆丣ava銆丠askell絳夊湪鍐呯殑涓緋誨垪緙栫▼璇█鐨勬繁搴﹀涔犲簱銆?br />
Python
  • Theano鏄竴縐嶇敤浜庝嬌鐢ㄦ暟鍒楁潵瀹氫箟鍜岃瘎浼版暟瀛﹁〃杈劇殑 Python 搴撱傚畠鍙互璁?Python 涓繁搴﹀涔犵畻娉曠殑緙栧啓鏇翠負綆鍗曘傚緢澶氬叾浠栫殑搴撴槸浠?Theano 涓哄熀紜寮鍙戠殑銆?/span>
  • Caffe鏄竴縐嶄互琛ㄨ揪娓呮櫚銆侀珮閫熷拰妯″潡鍖栦負鐞嗗康寤虹珛璧鋒潵鐨勬繁搴﹀涔犳鏋躲傚畠鏄敱浼厠鍒╄瑙夊拰瀛︿範涓績錛圔VLC錛夊拰緗戜笂紺懼尯璐$尞鑰呭叡鍚屽紑鍙戠殑銆傝胺姝岀殑 DeepDream 浜哄伐鏅鴻兘鍥懼儚澶勭悊紼嬪簭姝f槸寤虹珛鍦?Caffe 妗嗘灦涔嬩笂銆傝繖涓鏋舵槸涓涓?BSD 璁稿彲鐨勫甫鏈?Python 鎺ュ彛鐨?C++搴撱?/span>
  • nolearn鍖呭惈澶ч噺鍏朵粬紲炵粡緗戠粶搴撲腑鐨勫寘瑁呭櫒鍜屾娊璞★紙wrappers and abstractions錛夛紝鍏朵腑鏈鍊煎緱娉ㄦ剰鐨勬槸 Lasagne錛屽叾涓篃鍖呭惈涓浜涙満鍣ㄥ涔犵殑瀹炵敤妯″潡銆?/span>
  • Genism鏄竴涓儴緗插湪 Python 緙栫▼璇█涓殑娣卞害瀛︿範宸ュ叿鍖咃紝鐢ㄤ簬閫氳繃楂樻晥鐨勭畻娉曞鐞嗗ぇ鍨嬫枃鏈泦銆?/span>
  • Chainer榪炴帴娣卞害瀛︿範涓殑綆楁硶涓庡疄鐜幫紝瀹冨己鍔層佺伒媧昏屾晱閿愶紝鏄竴縐嶇敤浜庢繁搴﹀涔犵殑鐏墊椿鐨勬鏋躲?/span>
  • deepnet鏄竴縐嶅熀浜?GPU 鐨勬繁搴﹀涔犵畻娉曠殑 Python 瀹炵幇錛屾瘮濡傦細鍓嶉紲炵粡緗戠粶銆佸彈闄愮幓灝斿吂鏇兼満銆佹繁搴︿俊蹇電綉緇溿佽嚜緙栫爜鍣ㄣ佹繁搴︾幓灝斿吂鏇兼満鍜屽嵎縐緇忕綉緇溿?/span>
  • Hebel鏄竴涓湪 Python 涓敤浜庡甫鏈夌緇忕綉緇滅殑娣卞害瀛︿範鐨勫簱錛屽畠閫氳繃 PyCUDA 浣跨敤甯︽湁 CUDA 鐨?GPU 鍔犻熴傚畠鍙疄鐜板ぇ澶氭暟鐩墠鏈閲嶈鐨勭緇忕綉緇滄ā鍨嬶紝鎻愪緵浜嗗縐嶄笉鍚岀殑嬋媧誨嚱鏁板拰璁粌鏂瑰紡錛屽鍔ㄩ噺錛孨esterov 鍔ㄩ噺錛岄鍑猴紙dropout錛夊拰 鍓嶆湡鍋滄錛坋arly stopping錛夈?/span>
  • CXXNET鏄竴縐嶅揩閫燂紝綆鏄庣殑鍒嗗竷寮忔繁搴﹀涔犳鏋訛紝瀹冧互 MShadow 涓哄熀紜銆傚畠鏄交閲忕駭鍙墿灞曠殑 C++/CUDA 紲炵粡緗戠粶宸ュ叿鍖咃紝鍚屾椂鎷ユ湁鍙嬪ソ鐨?Python/Matlab 鐣岄潰錛屽彲渚涙満鍣ㄥ涔犵殑璁粌鍜岄嫻嬩嬌鐢ㄣ?/span>
  • DeepPy鏄竴縐嶅緩绔嬪湪 Mumpy 涔嬩笂鐨?Python 鍖栫殑娣卞害瀛︿範妗嗘灦銆?/span>
  • DeepLearning鏄竴涓敤 C++鍜?Python 寮鍙戠殑娣卞害瀛︿範搴撱?/span>
C++
  • eblearn鏄竴涓満鍣ㄥ涔犵殑寮婧?C++搴擄紝鐢辯航綰﹀ぇ瀛︽満鍣ㄥ涔犲疄楠屽鐨?Yann LeCun 鐗靛ご鐮斿彂銆傚挨鍏舵槸錛屾寜鐓?GUI銆佹紨紺哄拰鏁欑▼鏉ラ儴緗茬殑甯︽湁鍩轟簬鑳介噺鐨勬ā鍨嬬殑鍗風Н紲炵粡緗戠粶銆?/span>
  • SINGA琚璁$敤鏉ヨ繘琛屽凡鏈夌郴緇熶腑鍒嗗竷寮忚緇冪畻娉曠殑鏅氬疄鐜般傚畠鐢?Apache Software Foundation 鎻愪緵鏀寔銆?/span>
Java
  • N-Dimensional Arrays for Java (ND4J)鏄竴縐嶄負 JVM 璁捐鐨勭瀛﹁綆楀簱銆傚畠浠搴旂敤鍦ㄧ敓浜х幆澧冧腑錛岃繖灝辨剰鍛崇潃璺緞琚璁℃垚鍙互鏈灝忕殑 RAM 鍐呭瓨闇姹傛潵蹇熻繍琛屻?/span>
  • Deeplearning4j鏄涓涓負 Java 鍜?Scala 緙栧啓鐨勬秷璐圭駭寮鍏冨垎甯冨紡娣卞害瀛︿範搴撱傚畠琚璁℃垚鍦ㄥ晢涓氱幆澧冧腑浣跨敤錛岃岄潪鐮旂┒宸ュ叿銆?/span>
  • Encog鏄竴縐嶅厛榪涚殑鏈哄櫒瀛︿範妗嗘灦錛屾敮鎸佹敮鎸佸悜閲忔満錛圫upport Vector Machines錛夛紝浜哄伐紲炵粡緗戠粶錛圓rtificial Neural Networks錛夛紝鍩哄洜緙栫▼錛圙enetic Programming錛夛紝璐濆彾鏂綉緇滐紙Bayesian Networks錛夛紝闅愰┈灝旂澶ā鍨嬶紙Hidden Markov Models錛夊拰 閬椾紶綆楁硶錛圙enetic Algorithms錛夈?/span>
Lua
  • Torch鏄竴縐嶇瀛﹁綆楁鏋訛紝鍙敮鎸佸縐嶈綆楁満瀛︿範綆楁硶銆?/span>
Haskell
  • DNNGraph鏄竴涓敤 Haskell 緙栧啓鐨勬繁搴︾緇忕綉緇滅敓鎴?DSL銆?/span>
.NET
  • Accord.NET鏄竴縐?NET 鏈哄櫒瀛︿範妗嗘灦錛屽寘鍚0闊沖拰鍥懼儚澶勭悊搴擄紝瀹冨畬鍏ㄧ敱 C# 緙栧啓銆傚畠鏄竴縐嶄負寮鍙戠敓浜х駭鐨勮綆楁満瑙嗚銆佽綆楁満鍚銆佷俊鍙峰鐞嗗拰緇熻搴旂敤鑰岃璁$殑瀹屾暣妗嗘灦銆?/span>
R
  • darch鍖呭彲浠ョ敤浜庡緩绔嬪灞傜緇忕綉緇滐紙娣卞眰緇撴瀯錛夈傚叾涓殑璁粌鏂瑰紡鍖呮嫭浣跨敤瀵規瘮鍙戞暎娉曡繘琛屾彁鍓嶈緇冿紝鎴栦嬌鐢ㄩ氬父鐨勮緇冩柟娉曪紙濡傚弽鍚戜紶鎾拰鍏辮江姊害錛夎繘琛屼竴浜涘井璋冦?/span>
  • deepnet瀹炵幇浜嗕竴浜涙繁搴﹀涔犳灦鏋勫拰紲炵粡緗戠粶綆楁硶錛屽寘鎷?BP銆丷BM銆丏BN銆佹繁搴﹁嚜緙栫爜鍣ㄧ瓑絳夈?/span>


Meng Lee 2016-11-13 00:45 鍙戣〃璇勮
]]>
鎴戞槸濡備綍榪涘叆璋鋒瓕http://www.tkk7.com/menglee/archive/2014/06/13/414689.htmlMeng LeeMeng LeeThu, 12 Jun 2014 18:00:00 GMThttp://www.tkk7.com/menglee/archive/2014/06/13/414689.htmlhttp://www.tkk7.com/menglee/comments/414689.htmlhttp://www.tkk7.com/menglee/archive/2014/06/13/414689.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/414689.htmlhttp://www.tkk7.com/menglee/services/trackbacks/414689.html浠婂ぉ錛岀粓浜庢湁鏃墮棿闈欎笅蹇冩潵鍥為【榪囧幓涓ゅ勾鏉ユ墍鍋氱殑浜嬫儏錛屾劅鎱ㄤ竾鍗冿紝涓鏃朵箣闂寸珶涓嶇煡浠庝綍璇磋搗銆備袱騫翠互鏉ワ紝閬囧埌鐨勫洶闅劇潃瀹炰笉灝戯紝浣嗘瘡姣忛伃閬囨尗鎶樹笌涓嶉『涔嬪悗錛屽嵈寰寰鑳芥煶鏆楄姳鏄庯紝閬囧埌鏂扮殑杞満錛?/span>璁╂垜鐪熺湡鍒囧垏鍦版劅鍙楀埌浜嗗姛澶笉璐熸湁蹇冧漢榪欏彞璇濈殑鍚剰銆?/span>

涓銆佷負浠涔堣鍑哄浗
鍏跺疄錛屼箣鍓嶄粠鏉ユ病鏈夎冭檻榪囪鍑哄浗錛屾洿娌℃湁鎯寵繃鑳界洿鎺ュ嚭鍥藉伐浣溿?/span>鍥炴兂涓涓嬶紝榪欎釜鍐沖畾鐨勫仛鍑猴紝澶氬崐榪樻槸緙樹簬鑷繁楠ㄥ瓙閲岀殑涓嶅畨鍒嗐?/span>鎴戜粠寰堝ぇ紼嬪害涓婃潵璇存槸涓涓棽涓嶄綇鐨勪漢錛屼粠灝忓銆佷腑瀛︺?/span>澶у鍒扮爺絀剁敓錛屾垜鍑犱箮姣忓ぉ閮芥湁鏄庣‘鐨勭洰鏍囥傜劧鑰岋紝2013騫翠粠鍏徃鍒頒簨涓氬崟浣嶅伐浣滀互鍚庯紝鎴戠殑鐢熸椿鍙戠敓浜嗗法澶у湴杞彉銆傜畝鍗曠殑宸ヤ綔銆佺┖媧炵殑鍏枃銆?/span>鏃犺亰鐨勬椿鍔ㄥ崰鎹簡鎴戝叏閮ㄧ殑宸ヤ綔浠誨姟銆?/span>鏈夋鏃墮棿鍑犱箮澶╁ぉ鍐欐潗鏂欐悶媧誨姩銆傞瀵肩粡甯稿じ鎴戞潗鏂欏啓寰楀張蹇張濂斤紝媧誨姩涔熸悶寰楁湁澹版湁鑹詫紝蹇冮噷鎰熻寰堟湁鎴愬氨鎰熴傜劧鑰岋紝鏃墮棿涓闀匡紝閫愭笎鍙戠幇閭d簺鍏枃姘歌繙鏄竴涓璺紝浠ヨ嚦浜庢垜鍒嗛棬鍒被錛?/span>鎽哥儲鍑轟簡鍑犱釜涓囪兘妯℃澘銆傝屾椿鍔ㄥ垯鍗冪瘒涓寰嬶紝璁╀漢鐤蹭簬搴斾粯銆?/span>鎴戠敋鑷沖彲浠ョ湅鍒板叚鍗佸瞾閫浼戞椂鎴戝湪騫蹭粈涔堬紝浜庢槸涓闃墊亹鎯ф劅甯稿父浼氳帿鍚嶈鏉ワ紝鍥犱負鎴戜笉瀹夊垎銆佷笉婊¤凍浜庢銆?/span>鎴戜笉鑳芥斁寮冩墍瀛︽墍闀匡紝鎴戜笉鑳藉焊搴哥紕屽湪榪欓噷搴﹁繃鏈潵鐨勫嚑鍗佸勾錛?/span>鎴戣繕鏈夋ⅵ鎯籌紝鎴戣繕瑕佺櫥楂樼湅涓栫晫銆備負浜嗚繖涓紝鎴戣蛋榪囦簡涓嶅鉤鍑$殑涓ゅ勾銆?/span>

浜屻佸浣曞嚭鍥?/span>
瀵逛簬鏅氫漢鏉ヨ錛屽嚭鍥藉ぇ鑷存湁涓夋潯璺?/span>
絎竴鏉¤礬鏄敵璇峰幓鍥藉鐣欏錛?/span>鍙栧緱瀛︿綅涔嬪悗浠ュ簲灞婃瘯涓氱敓鐨勮韓浠芥壘宸ヤ綔錛岀劧鍚庣暀鍦ㄥ浗澶栫敓媧匯?/span>榪欐槸涓鏉℃瘮杈冪ǔ濡ャ佺畝渚跨殑璺紝璧拌繖鏉¤礬鐨勪漢鏈澶氥?/span>
絎簩鏉¤礬鏄厛榪涘叆璺ㄥ浗鍏徃鐨勪腑鍥藉垎鍏徃宸ヤ綔涓孌墊椂闂達紝鐒跺悗鎵炬満浼氬媧懼埌鍥藉鎬婚儴宸ヤ綔銆傝蛋榪欐潯璺殑瑕佹眰姣旇緝澶氾紝棣栧厛瑕佽兘澶熻繘鍏ユ瘮杈冨ぇ鐨勮法鍥藉叕鍙稿伐浣滐紝鍏舵榪欎釜鍏徃鎰挎剰灝嗕腑鍥藉憳宸ransfer鍒板浗澶栵紝鍚屾椂榪樿澶栧浗鎬婚儴鏈夐儴闂ㄦ効鎰忔帴鏀朵綘錛屾墍浠ヨ繕鏄渶瑕佷竴浜涜繍姘斻?/span>浣嗘槸錛屽鏋滄垚鍔燂紝濂藉涔熸樉鑰屾槗瑙併傜渷鍘諱簡璇諱功鐨勬椂闂村拰瀛﹁垂錛?/span>闄嶄綆浜嗗搴礋鎷咃紝瀵逛簬瀹跺涓鑸殑浜烘槸闈炲父濂界殑閫夋嫨銆?/span>
絎笁鏉¤礬鏄洿鎺ュ弬鍔犲鍥藉叕鍙哥殑闈㈣瘯錛岄氳繃涔嬪悗鐩存帴鍘誨浗澶栧伐浣溿?/span>榪欐潯璺姹傛渶楂橈紝闇瑕侀氳繃澶栧浗鍏徃涓ユ牸鐨勯潰璇曪紝鍙﹀榪樿鑳藉鎴愬姛鍙栧緱絳捐瘉錛堢編鍥藉伐浣滅璇佸氨闇瑕佹娊絳撅級銆傚洜姝わ紝璧拌繖鏉¤礬鏇撮渶瑕佸疄鍔涖佹満閬囧拰榪愭皵銆?/span>
閴翠簬絎笁鏉¤礬闈炲父闅捐蛋錛屼負浜嗕繚璇佹垚鍔燂紝鎴戦夋嫨浜嗗悓鏃剁敵璇峰鏍″拰鍙傚姞澶栧浗鍏徃闈㈣瘯鐨勫姙娉曪紝榪欎篃娉ㄥ畾浜嗘垜灝嗕粯鍑烘洿澶氱殑鑹拌嫤鍔姏銆?/span>

涓夈佺敵璇峰鏍?/span>
鐢寵瀛︽牎浠庡噯澶囧埌鏈緇堝畬鎴愶紝鎴戝ぇ姒傜敤浜嗕竴騫存椂闂淬?/span>鍏墮棿鍙傚姞浜嗕笁嬈RE鍜屼竴嬈℃墭紱忚冭瘯銆傚洖鎯沖噯澶囩殑榪囩▼錛?/span>鏈澶х殑鏁屼漢灝辨槸鑷繁錛屾渶閲嶈鐨勬硶瀹濆氨鏄潥鎸佸潥鎸佸啀鍧氭寔銆?/span>璁板緱絎竴嬈¤僄RE娌℃湁鍙栧緱鐞嗘兂鐨勬垚緇╋紝鍥犱負鏄涓嬈″弬鍔犺嫳璇冭瘯錛屽績鎯呴潪甯稿け钀姐傚垢浜忓綋鏃舵湁濂蟲湅鍙嬶紙鐜板湪鐨勮佸﹩錛夌殑榧撳姳錛屾垜緇х畫澶嶄範娌℃湁鏀懼純銆傜粡榪囦竴涓湀鐨勫涔狅紝鍙栧緱浜嗛潪甯鎬笉閿欑殑鎵樼鎴愮嘩銆傝寰楁墭紱忓嚭鎴愮嘩鐨勯偅澶╋紝鎴戠揣寮犲緱涓嶆暍鏌ワ紝鐐瑰紑欏甸潰鐨勯偅涓鍒伙紝鎴戦兘涓嶆暍鐩鎬俊灞呯劧鑳芥湁榪欎箞涓嶉敊鐨勬垚緇┿傜壒鍒槸鍚姏錛?/span>鑰冭瘯鐨勬椂鍊欒寰楀ソ鍑犱釜閮芥病鏈夊惉娓呮錛屾渶鍚庡眳鐒舵湁27鍒嗭紝鐪熸槸涓嶅彲鎬濊錛屽彲瑙佸姛澶笉璐熸湁蹇冧漢錛屼粯鍑烘繪湁鍥炴姤鐨勩?/span>
鏈変簡鑻辮鎴愮嘩涔嬪悗錛屽氨鏄挵鍐欑敵璇鋒枃涔︺傝繖鏂歸潰鎴戝畬鍏ㄦ病鏈夌粡楠岋紝鎵鏈夌殑淇℃伅鍏ㄩ儴鏄氳繃涓浜╀笁鍒嗗湴璁哄潧鑾峰緱鐨勩?/span>榪欎釜璁哄潧淇℃伅闈炲父涓板瘜錛屽熀鏈笂鎵鏈夌敵璇風浉鍏崇殑鍐呭閮芥湁娑夊強銆?/span>鎴戞瘡澶╅兘浼氳姳涓浜涙椂闂存祻瑙堝埆浜虹殑甯栧瓙錛屼負鑷繁瀹氫綅閫夋牎錛?/span>鎵炬枃涔︾伒鎰熺瓑絳夈傞潪甯告劅璋㈡垜鐨勬湰縐戝拰鐮旂┒鐢熷甯堬紝榪樻湁钂嬪織璇氫負鎴戦掓帹鑽愪俊錛屾病鏈変綘浠殑甯姪錛?/span>鎴戜笉鍙兘瀹屾垚鐢寵宸ヤ綔銆?/span>
鏈鍚庯紝鎴戠敵璇蜂簡緹庡浗鍜屽姞鎷垮ぇ鐨勫崄浜旀墍瀛︽牎鐨勮綆楁満涓撲笟鐨勭爺絀剁敓錛?/span>鎷垮埌浜咰MU銆乁SC鍜屽浼﹀澶у鐨刼ffer銆傚叾涓紝CMU鐨凞ata Science program搴旇鏄笘鐣屾暟涓鏁頒簩鐨勶紝褰曞彇鐜囬潪甯鎬綆錛?/span>姣曚笟鍚庣殑鍘誨悜涔熼潪甯稿ソ錛屽ぇ澶氭暟閮藉彲浠ヨ繘鍏ョ編鍥戒竴嫻佸叕鍙稿伐浣溿?/span>澶氬ぇ涔熸槸鍔犳嬁澶ф帓鍚嶇涓鐨勫鏍★紝璁$畻鏈虹殑灝變笟涔熼潪甯稿ソ銆?/span>

鍥涖丗acebook鐨勯潰璇?/span>
鍙傚姞Facebook鐨勯潰璇曚篃瀹屽叏鏄棤鎰忕殑錛?/span>鍦↙inkedin涓婃敹鍒頒簡Facebook HR鐨勯個璇蜂俊錛屼簬鏄篃娌℃湁鎬庝箞鍑嗗灝卞仛浜嗙數闈紝灞呯劧鍙嶉闈炲父濂斤紝椹笂灝辯粰鎴戝畨鎺掍簡onsite闈㈣瘯錛屽湴鐐規槸鍗板害鐨勬搗寰楁媺宸淬?/span>浣嗘槸錛屽緇堟槸娌℃湁鍋氫粈涔堝噯澶囷紝鑰屼笖鍜岃胺姝屼笉涓鏍風殑鏄紝HR鍔炰簨鏁堢巼瀹炲湪澶珮錛屾瘡涓杞棿闅旈兘闈炲父鐭紝瀵艱嚧鎴戞牴鏈病鏈夋椂闂寸儹韜竴涓嬶紝榪瀕eetcode閮芥病鏈夊仛榪囧氨鍖嗗寙鍙傚姞闈㈣瘯浜嗭紝鏈緇堟病鏈夊鎰塊氳繃闈㈣瘯銆?/span>
涓嶈繃錛岃繖嬈¢潰璇曡繕鏄緢鏈夋敹鑾楓傜涓嬈″嚭鍥斤紝絎竴嬈″弬鍔犵編鍥藉叕鍙稿叏鑻辨枃闈㈣瘯錛屽鍒頒簡澶錛岀Н绱簡緇忛獙錛?/span>鍙互璇村鏋滄病鏈塅acebook鐨勫け璐ワ紝鎴戞槸涓嶅彲鑳借繘鍏ヨ胺姝岀殑銆?/span>

浜斻丟oogle鐨勯潰璇?/span>
鍙傚姞璋鋒瓕鐨勯潰璇曞彲浠ヨ瀹屽叏鏄佸﹩鐨勬傛伩銆?/span>浠庡嵃搴﹀弬鍔犲畬Facebook闈㈣瘯鍥炴潵涔嬪悗錛?/span>鎴戝氨寮濮嬩笓蹇冧簬瀛︽牎鐢寵浜嗐備絾鏄紝鑰佸﹩寤鴻鎴戣瘯璇曢潰涓涓婫oogle銆?/span>鐢變簬Facebook鐨勫け鍒╁拰Google榪戜箮鑻涘埢鐨勯潰璇曟祦紼嬶紝鎴戝紑濮嬫槸鎶楁嫆鍙傚姞鐨勩傛渶鍚庯紝鍦ㄨ佸﹩鐨勪竴鍐嶈姹備笅錛?/span>鎴戠粓浜庢壘浜嗕竴涓湪璋鋒瓕涓婃搗宸ヤ綔鐨勫笀鍏勫仛浜嗗唴鎺ㄣ?/span>鍥涙湀搴曟垜鏀跺埌浜嗚胺姝屽寳浜琀R鐨勭涓閫氱數璇濓紝涔熸寮忔媺寮浜嗘垜涓烘湡涓騫寸殑闈㈣瘯嫻佺▼銆?/span>
鍜孒R閫氱數璇濅笉涔咃紝鎴戣繘琛屼簡絎竴嬈$數璇濋潰璇曘?/span>璋鋒瓕鐨勭數璇濋潰璇曞拰Facebook宸笉澶氾紝灝辨槸闈㈣瘯瀹樻墦榪囨潵錛?/span>鎶婇鐩彛榪板茍涓斿啓鍦℅oogle Doc涓婏紝鐒跺悗鎴戞妸紼嬪簭鍐欏湪Google Doc涓娿傜涓嬈$數闈㈢殑棰樼洰涓嶉毦錛?/span>浣嗚胺姝屽浠g爜鏁堢巼鍜屾竻鏅板害鐨勮姹傝繙榪滆秴鍑轟簡鎴戠殑鎯沖儚銆?/span>絎竴杞潰寰楃紓曠粖緇婏紝浣嗘槸騫稿ソ闈㈣瘯瀹樻槸涓浗浜猴紝闈炲父nice錛?/span>娌℃湁璁╂垜fail銆?/span>
浜庢槸錛屾垜鍙堣瑕佹眰榪涜絎簩嬈$數闈€傛湡闂寸敱浜庨潰璇曞畼涓存椂鏈変簨鐖界害錛?/span>鎴戠瓑浜嗗樊涓嶅涓涓湀銆備絾鏄紝涔熷氨鏄繖涓涓湀錛?/span>鎴戝姫鍔涘仛浜嗕竴浜涘噯澶囷紝铏界劧闈㈣瘯渚濇棫涓嶆槸鍗佸叏鍗佺編錛?/span>浣嗘槸鎴戣繕鏄湁鎯婃棤闄╁湴榪涘叆鍒頒簡onsite闈㈣瘯鐜妭銆?/span>
铏界劧鍙互onsite闈㈣瘯浜嗭紝浣嗘槸鎴戜緷鏃у榪涘叆璋鋒瓕涓嶆姤浠諱綍甯屾湜錛屽洜涓烘垜娓呮鐨勭煡閬擄紝璋鋒瓕闈㈣瘯瀹炲湪鏄お闅句簡錛宱nsite闈㈣瘯鐨勬寫鎴樺皢榪滆繙澶т簬鐢甸潰銆?/span>鍥犳錛屾垜鍘誨寳浜潰璇曞畬鍏ㄦ槸鎯沖仛涓嬈″厤璐規梾娓搞?/span>闈㈣瘯鍓嶄竴澶╄繕璁鎬箙涓嶈鐨勪竾濞佸か濡囧悆楗紝鑱婂緱寰堝紑蹇冿紝瀹屽叏娌℃湁鎶婇潰璇曟斁鍦ㄥ績涓娿?/span>
涔熻鏄斁鏉劇殑鍘熷洜錛屾垜鍓嶄竴澶╂櫄涓婄潯寰楀緢濂斤紝絎簩澶╂垜綺劇闈炲父濂姐?/span>
涓嶈繃璋鋒瓕姣曠珶鏄胺姝岋紝闈㈣瘯絎竴杞竴涓婃潵灝辯粰浜嗘垜涓涓笅椹▉銆?/span>涓涓猚oding棰樹竴涓璁¢錛岃〃闈笂寰堢畝鍗曪紝浣嗘槸鍋氬嚭鏉ユ繪槸鏈夎繖鏍烽偅鏍風殑闂錛?/span>絎竴杞畬浜嗕箣鍚庢垜鍩烘湰鎵撶畻鍥炲浜嗐?/span>
浣嗘槸錛屼笉鐭ラ亾涓轟粈涔堬紝浠庣浜岃疆寮濮嬶紝灝辮秺鏉ヨ秺欏哄埄錛?/span>coding鍋氬緱闈炲父濂斤紝鍩烘湰涓婃槸涓嬈″啓瀹岋紝娌℃湁娑傛敼錛?/span>涔熸病鏈夎闈㈣瘯瀹樻壘鍒板ぇ鐨刡ug銆傜獊鐒朵箣闂達紝闅愰殣鎰熻鍑虹幇浜嗕竴涓濆笇鏈涖?/span>
鍥涜疆榪囧悗錛屾垜緇撴潫浜嗙涓嬈nsite闈㈣瘯銆備絾鏄紝涓夊ぉ涔嬪悗錛?/span>鎴戣鍛婄煡鐢變簬璁捐棰樺仛寰椾笉濂斤紝鎴戣瑕佹眰榪涜涓嬈″姞闈紝鍦扮偣鍦ㄤ笂嫻楓備簬鏄紝鎴戝張鍦ㄤ笂嫻峰仛浜嗕竴嬈¢潰璇曪紝鍙湁涓涓璁¢銆?/span>鎴戞劅瑙夌瓟寰楄繕鍙互錛屼絾鏄績鎯呯湡鐨勬槸蹇愬繎涓嶅畨錛?/span>鐗瑰埆鏄帴涓嬫潵鐨勪竴涓ぜ鎷滐紝鍑犱箮鏄潗绔嬩笉瀹夈?/span>
璁板緱鏄竴涓ぜ鎷滀箣鍚庣殑紺兼嫓浜斾腑鍗堬紝鎴戞鍋氬噯澶囦富鎸佷笅鍗堢殑閬撳痙璁插爞錛岀獊鐒舵帴鍒頒簡涓涓?10鐨勭數璇濓紝鎴戠煡閬撴槸璋鋒瓕鐨勭數璇濄傛帴閫氱數璇濈殑閭d竴鍒伙紝絀烘皵閮藉嚑涔庤鍑濆浐浜嗭紝褰撳惉鍒伴氳繃HC鐨勬秷鎭椂錛屾垜嬋鍔ㄥ緱涓嶈兘鑷凡銆?/span>涓嶅彲鑳藉畬鎴愮殑浠誨姟灞呯劧瀹屾垚浜嗭紝铏界劧涓嶇煡閬撹兘涓嶈兘鍘葷編鍥芥婚儴宸ヤ綔錛?/span>浣嗘槸鑳借繘鍏ヨ胺姝屽凡緇忛潪甯鎬笉瀹規槗浜嗭紝鑰屼笖璋鋒瓕闈炲父榧撳姳transfer鍘葷編鍥藉伐浣滐紝鍥犳鏈轟細榪樻槸寰堝鐨勩?/span>
鐒惰岋紝璁╂垜娌℃湁鎯沖埌鐨勬槸錛屾帴涓嬫潵鐨則eam match鍗村紓甯歌壈闅撅紝闄嗛檰緇畫鍑犱釜team閮芥病鏈夋垚鍔焟atch涓娿?/span>杞溂灝卞埌浜?014騫存槬瀛o紝鍗婂勾鐨勭瓑寰呰鎴戝浣曟椂榪涘叆璋鋒瓕闈炲父鎮茶錛?/span>鍔犱笂鐢寵瀛︽牎宸ヤ綔鍗佸垎綣侀噸錛屾垜鍩烘湰娌℃湁鍏蟲敞榪欎釜浜嬫儏銆?/span>
灝卞湪鎴戝揩瑕佹斁寮冪殑鏃跺欙紝鎷垮埌浜嗙編鍥戒竴涓叕鍙哥殑offer錛?/span>浠栦滑絳斿簲緇欐垜鍔濰1B絳捐瘉銆備簬鏄紝鎴戞妸榪欎釜鎯呭喌鍛婅瘔浜嗚胺姝岋紝瑕佹眰浠栦滑灝藉揩緇欐壘鍒皌eam錛屼笉鐒舵垜灝卞幓緹庡浗浜嗐?/span>緇撴灉璋鋒瓕灞呯劧鍦ㄤ笁澶╀箣鍐呬負鎴憁atch涓婁簡鑻卞浗office鐨勪竴涓猼eam錛岃浜轟笉寰椾笉鎰熷徆榪樻槸瑕乷ffer澶氭墠濂藉晩錛佷簬鏄紝鎴戝張緇忚繃浜嗚繎涓変釜鏈堢殑絳捐瘉鍔炵悊嫻佺▼錛岀粓浜庤鍚▼璧磋嫳浜嗐?/span>

鍥為【涓ゅ勾鏉ョ殑鍔姏錛岀粓浜庤瀹炵幇鑷繁鐨勬ⅵ鎯充簡錛屾劅鎱ㄤ竾鍗冦?/span>鍦ㄧ煭鐭殑浜虹敓涓紝鑳芥湁榪欎竴孌典笉瀵誨父鐨勭粡鍘嗭紝鎴戣寰楀崄鍒嗗垢榪愩?/span>灞曟湜鏈潵錛屾垜鎯寵涓囧嵎涔︿笉濡傝涓囬噷璺紝鏈潵甯屾湜鑳藉鍒╃敤鍦ㄤ雞鏁﹀伐浣滅殑鏈轟細錛屽敖閲忓鍘繪媧插悇鍥借蛋璧幫紝涓板瘜鑷繁鐨勯槄鍘嗭紝寮鎷撹嚜宸辯殑鐪肩晫銆?/span>

鏈鍚庤鎰熻阿鑰佸﹩涓鐩翠互鏉ョ殑鏀寔鍜岄紦鍔憋紝浣犱竴鐩存槸鎴戝墠榪涚殑鍔ㄥ姏錛?/span>鍏舵瑕佹劅璋㈢埗姣嶇殑涓嶇悊瑙e拰涓嶆敮鎸侊紝浣犱滑鐨勫弽瀵硅鎴戞洿鍔犲畬鍠勪簡鑷繁鐨勮鍒掞紝閫肩潃鎴戞壘鍒頒簡涓鏉℃渶濂界殑鍑鴻礬錛涜繕瑕佹劅璋㈠笀闀垮拰鏈嬪弸浠殑甯姪錛?/span>鎰熻阿鏉ㄨ佸笀鍜屾矆鑰佸笀榪樻湁钂嬪織璇氫笉鍘屽叾鐑﹀湴甯垜閫掓帹鑽愪俊錛?/span>鎰熻阿涓囧▉澶澶氭鍦ㄥ寳浜寰呮垜錛屾病鏈変綘浠殑緹庨錛?/span>鎴戞槸涓嶅彲鑳藉畬鎴愰潰璇曠殑錛涜繕鏈夎澶氬府鍔╄繃鎴戠殑浜猴紝鍦ㄨ繖閲屽氨涓嶈兘涓涓鎰熻阿浜嗐?/span>


Meng Lee 2014-06-13 02:00 鍙戣〃璇勮
]]>
[Leetcode] Trapping Rain Waterhttp://www.tkk7.com/menglee/archive/2014/01/14/408898.htmlMeng LeeMeng LeeTue, 14 Jan 2014 01:16:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/14/408898.htmlhttp://www.tkk7.com/menglee/comments/408898.htmlhttp://www.tkk7.com/menglee/archive/2014/01/14/408898.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408898.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408898.html綆楁硶寰堢畝鍗曪紝鏍稿績鎬濇兂鏄細瀵規煇涓糀[i]鏉ヨ錛岃兘trapped鐨勬渶澶氱殑water鍙栧喅浜庡湪i涔嬪墠鏈楂樼殑鍊糽eftMostHeight[i]鍜屽湪i鍙寵竟鐨勬渶楂樼殑鍊紃ightMostHeight[i]銆傦紙鍧囦笉鍖呭惈鑷韓錛夈傚鏋渕in(left,right) > A[i]錛岄偅涔堝湪i榪欎釜浣嶇疆涓婅兘trapped鐨剋ater灝辨槸min(left,right) – A[i]銆?/div>
鏈変簡榪欎釜鎯蟲硶灝卞ソ鍔炰簡錛岀涓閬嶄粠宸﹀埌鍙寵綆楁暟緇刲eftMostHeight錛岀浜岄亶浠庡彸鍒板乏璁$畻rightMostHeight錛屽湪絎簩閬嶇殑鍚屾椂灝卞彲浠ヨ綆楀嚭i浣嶇疆鐨勭粨鏋滀簡錛岃屼笖騫朵笉闇瑕佸紑絀洪棿鏉ュ瓨鏀緍ightMostHeight鏁扮粍銆?/div>
鏃墮棿澶嶆潅搴︽槸O(n)錛屽彧鎵簡涓ら亶銆?br />
 1 public class TrappingRainWater {
 2     public int trap(int A[], int n) {
 3         if (n <= 2)
 4             return 0;
 5 
 6         int[] lmh = new int[n];
 7         lmh[0] = 0;
 8         int maxh = A[0];
 9         for (int i = 1; i < n; ++i) {
10             lmh[i] = maxh;
11             if (maxh < A[i])
12                 maxh = A[i];
13         }
14         int trapped = 0;
15         maxh = A[n - 1];
16         for (int i = n - 2; i > 0; --i) {
17             int left = lmh[i];
18             int right = maxh;
19             int container = Math.min(left, right);
20             if (container > A[i]) {
21                 trapped += container - A[i];
22             }
23             if (maxh < A[i])
24                 maxh = A[i];
25         }
26         return trapped;
27     }
28 }


Meng Lee 2014-01-14 09:16 鍙戣〃璇勮
]]>[Leetcode] Permutation Sequencehttp://www.tkk7.com/menglee/archive/2014/01/07/408642.htmlMeng LeeMeng LeeTue, 07 Jan 2014 08:06:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/07/408642.htmlhttp://www.tkk7.com/menglee/comments/408642.htmlhttp://www.tkk7.com/menglee/archive/2014/01/07/408642.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408642.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408642.htmlThe set [1,2,3,…,n] contains a total of n! unique permutations.
By listing and labeling all of the permutations in order,
We get the following sequence (ie, for n = 3):
"123"
"132"
"213"
"231"
"312"
"321"
Given n and k, return the kth permutation sequence.
Note: Given n will be between 1 and 9 inclusive.

榪欓亾棰樺叾瀹炴湁寰堝己鐨勮寰嬪彲寰傞鍏堬紝n涓厓绱犵殑鎺掑垪鎬繪暟鏄痭!銆傚湪涓嬮潰鐨勫垎鏋愪腑錛岃k鐨勮寖鍥存槸0 <= k < n!銆傦紙棰樼洰浠g爜瀹為檯涓婃槸1<=k<=n!)
鍙互鐪嬪埌涓涓寰嬶紝灝辨槸榪檔錛佷釜鎺掑垪涓紝絎竴浣嶇殑鍏冪礌鎬繪槸(n-1)!涓緇勫嚭鐜扮殑錛屼篃灝辮濡傛灉p = k / (n-1)!錛岄偅涔堟帓鍒楃殑鏈寮濮嬩竴涓厓绱犱竴瀹氭槸arr[p]銆?/div>
榪欎釜瑙勫緥鍙互綾繪帹涓嬪幓錛屽湪鍓╀綑鐨刵-1涓厓绱犱腑閫愭笎鎸戦夊嚭絎簩涓紝絎笁涓紝...錛屽埌絎琻涓厓绱犮傜▼搴忓氨緇撴潫銆?/div>
 1 /**
 2  * The set [1,2,3,…,n] contains a total of n! unique permutations.
 3  * 
 4  * By listing and labeling all of the permutations in order, We get the
 5  * following sequence (ie, for n = 3):
 6  * 
 7  * "123" "132" "213" "231" "312" "321" Given n and k, return the kth permutation
 8  * sequence.
 9  * 
10  * Note: Given n will be between 1 and 9 inclusive.
11  * 
12  */
13 
14 public class PermutationSequence {
15     public String getPermutation(int n, int k) {
16         char[] arr = new char[n];
17         int pro = 1;
18         for (int i = 0; i < n; ++i) {
19             arr[i] = (char) ('1' + i);
20             pro *= (i + 1);
21         }
22         k = k - 1;
23         k %= pro;
24         pro /= n;
25         for (int i = 0; i < n - 1; ++i) {
26             int selectI = k / pro;
27             k = k % pro;
28             pro /= (n - i - 1);
29             int temp = arr[selectI + i];
30             for (int j = selectI; j > 0; --j) {
31                 arr[i + j] = arr[i + j - 1];
32             }
33             arr[i] = (char) temp;
34         }
35         return String.valueOf(arr);
36     }
37 }
38 


Meng Lee 2014-01-07 16:06 鍙戣〃璇勮
]]>[Leetcode] Lowest Common Ancestor of a Binary Search Tree (BST) && Lowest Common Ancestor of Binary Treehttp://www.tkk7.com/menglee/archive/2014/01/06/408544.htmlMeng LeeMeng LeeMon, 06 Jan 2014 01:32:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/06/408544.htmlhttp://www.tkk7.com/menglee/comments/408544.htmlhttp://www.tkk7.com/menglee/archive/2014/01/06/408544.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408544.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408544.html
Lowest Common Ancestor of a Binary Search Tree (BST)
Given a binary search tree (BST), find the lowest common ancestor of two given nodes in the BST.
       _______6______
      /              \
   ___2__          ___8__
  /      \        /      \
  0      _4       7       9
        /  \
        3   5
Using the above tree as an example, the lowest common ancestor (LCA) of nodes 2 and 8 is 6. 
But how about LCA of nodes 2 and 4? Should it be 6 or 2?
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between 
two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a 
node to be a descendant of itself).” Since a node can be a descendant of itself, the LCA of 2 and 
4 should be 2, according to this definition.
Hint:
A top-down walk from the root of the tree is enough.

 1 public class LowestCommonAncestorOfaBinarySearchTree {
 2     public TreeNode LCA(TreeNode root, TreeNode p, TreeNode q) {
 3         if (root == null || p == null || q == null)
 4             return null;
 5         if (Math.max(p.val, q.val) < root.val)
 6             return LCA(root.left, p, q);
 7         if (Math.min(p.val, q.val) > root.val)
 8             return LCA(root.right, p, q);
 9         return root;
10     }
11 }


Given a binary tree, find the lowest common ancestor of two given nodes in the tree.
 
 
        _______3______
       /              \
    ___5__          ___1__
   /      \        /      \
  6      _2       0       8
         /  \
         7   4
If you are not so sure about the definition of lowest common ancestor (LCA), please refer to my previous 
post: Lowest Common Ancestor of a Binary Search Tree (BST) or the definition of LCA here. Using the tree 
above as an example, the LCA of nodes 5 and 1 is 3. Please note that LCA for nodes 5 and 4 is 5.
 
Hint:
Top-down or bottom-up? Consider both approaches and see which one is more efficient.
 1 public class LowestCommonAncestorOfBinaryTree {
 2     public TreeNode LCA(TreeNode root, TreeNode p, TreeNode q) {
 3         if (root == null)
 4             return null;
 5         if (root == p || root == q)
 6             return root;
 7         TreeNode left = LCA(root.left, p, q);
 8         TreeNode right = LCA(root.right, p, q);
 9         if (left != null && right != null)
10             return root;
11         return left != null ? left : right;
12     }
13 }


Meng Lee 2014-01-06 09:32 鍙戣〃璇勮
]]>[Leetcode] Scramble Stringhttp://www.tkk7.com/menglee/archive/2014/01/05/408521.htmlMeng LeeMeng LeeSun, 05 Jan 2014 04:33:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/05/408521.htmlhttp://www.tkk7.com/menglee/comments/408521.htmlhttp://www.tkk7.com/menglee/archive/2014/01/05/408521.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408521.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408521.htmlGiven a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively.
Below is one possible representation of s1 = "great":
    great
   /    \
  gr    eat
 / \    /  \
g   r  e   at
           / \
          a   t
To scramble the string, we may choose any non-leaf node and swap its two children.
For example, if we choose the node "gr" and swap its two children, it produces a scrambled string "rgeat".
    rgeat
   /    \
  rg    eat
 / \    /  \
r   g  e   at
           / \
          a   t
We say that "rgeat" is a scrambled string of "great".
Similarly, if we continue to swap the children of nodes "eat" and "at", it produces a scrambled string "rgtae".
    rgtae
   /    \
  rg    tae
 / \    /  \
r   g  ta  e
       / \
      t   a
We say that "rgtae" is a scrambled string of "great".
Given two strings s1 and s2 of the same length, determine if s2 is a scrambled string of s1.

 1 public class ScrambleString {
 2     public boolean isScramble(String s1, String s2) {
 3         if (s1.length() != s2.length())
 4             return false;
 5         if (s1.equals(s2))
 6             return true;
 7 
 8         int[] A = new int[26];
 9         for (int i = 0; i < s1.length(); i++) {
10             ++A[s1.charAt(i) - 'a'];
11         }
12 
13         for (int j = 0; j < s2.length(); j++) {
14             --A[s2.charAt(j) - 'a'];
15         }
16 
17         for (int k = 0; k < 26; k++) {
18             if (A[k] != 0)
19                 return false;
20         }
21 
22         for (int i = 1; i < s1.length(); i++) {
23             boolean result = isScramble(s1.substring(0, i), s2.substring(0, i))
24                     && isScramble(s1.substring(i), s2.substring(i));
25             result = result
26                     || (isScramble(s1.substring(0, i),
27                             s2.substring(s2.length() - i, s2.length())) && isScramble(
28                             s1.substring(i), s2.substring(0, s2.length() - i)));
29             if (result)
30                 return true;
31         }
32         return false;
33     }
34 }


Meng Lee 2014-01-05 12:33 鍙戣〃璇勮
]]>
[Leetcode] Largest Rectangle in Histogramhttp://www.tkk7.com/menglee/archive/2014/01/05/408520.htmlMeng LeeMeng LeeSun, 05 Jan 2014 04:31:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/05/408520.htmlhttp://www.tkk7.com/menglee/comments/408520.htmlhttp://www.tkk7.com/menglee/archive/2014/01/05/408520.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408520.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408520.htmlGiven n non-negative integers representing the histogram's bar height where the width of each bar is 1, find the area of largest rectangle in the histogram.
Above is a histogram where width of each bar is 1, given height = [2,1,5,6,2,3].
The largest rectangle is shown in the shaded area, which has area = 10 unit.
For example,
Given height = [2,1,5,6,2,3],
return 10.

鏈闇瑕佷嬌鐢ㄦ爤緇存姢涓涓珮搴﹀崟璋冮掑鐨勫簭鍒椾笅鏍囷紝濡傛灉閬囧埌涓涓厓绱犳瘮褰撳墠鏍堥《鍏冪礌楂樺害灝忥紝閭d箞鍑烘爤錛屽茍璁$畻褰撳墠鏈澶ч潰縐傚鏋滄爤涓虹┖錛岄渶瑕佺壒孌婅冭檻銆?br />
 1 public class LargestRectangleinHistogram {
 2     public int largestRectangleArea(int[] height) {
 3         Stack<Integer> stack = new Stack<Integer>();
 4         int i = 0;
 5         int maxArea = 0;
 6         int[] h = new int[height.length + 1];
 7         h = Arrays.copyOf(height, height.length + 1);
 8         while (i < h.length) {
 9             if (stack.isEmpty() || h[stack.peek()] <= h[i]) {
10                 stack.push(i++);
11             } else {
12                 int t = stack.pop();
13                 maxArea = Math.max(maxArea, h[t] * (stack.isEmpty() ? i : i - stack.peek() - 1));
14             }
15         }
16         return maxArea;
17     }
18 }


Meng Lee 2014-01-05 12:31 鍙戣〃璇勮
]]>
[Leetcode] Binary Tree Inorder Traversalhttp://www.tkk7.com/menglee/archive/2014/01/04/408477.htmlMeng LeeMeng LeeSat, 04 Jan 2014 03:17:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/04/408477.htmlhttp://www.tkk7.com/menglee/comments/408477.htmlhttp://www.tkk7.com/menglee/archive/2014/01/04/408477.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408477.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408477.htmlGiven a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3},
   1
    \
     2
    /
   3
return [1,3,2].
Note: Recursive solution is trivial, could you do it iteratively?

鍒囪p鑺傜偣鍒濆鏃舵寚鍚憆oot.left銆備唬鐮佸涓嬶細
 1 public class BinaryTreeInorderTraversal {
 2     public ArrayList<Integer> inorderTraversal(TreeNode root) {
 3         ArrayList<Integer> inOrder = new ArrayList<Integer>();
 4         if (root == null)
 5             return inOrder;
 6         Stack<TreeNode> s = new Stack<TreeNode>();
 7         s.add(root);
 8         TreeNode p = root.left;
 9         while (!s.empty()) {
10             while (p != null) {
11                 s.add(p);
12                 p = p.left;
13             }
14             TreeNode n = s.pop();
15             inOrder.add(n.val);
16             p = n.right;
17             if (p != null) {
18                 s.add(p);
19                 p = p.left;
20             }
21         }
22         return inOrder;
23     }
24 }


Meng Lee 2014-01-04 11:17 鍙戣〃璇勮
]]>
[Leetcode] Subsets IIhttp://www.tkk7.com/menglee/archive/2014/01/03/408444.htmlMeng LeeMeng LeeFri, 03 Jan 2014 08:40:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/03/408444.htmlhttp://www.tkk7.com/menglee/comments/408444.htmlhttp://www.tkk7.com/menglee/archive/2014/01/03/408444.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408444.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408444.htmlGiven a collection of integers that might contain duplicates, S, return all possible subsets.
Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If S = [1,2,2], a solution is:
[
  [2],
  [1],
  [1,2,2],
  [2,2],
  [1,2],
  []
]

鐢變簬鍏冪礌涓彲鑳藉瓨鍦ㄩ噸澶嶏紝鍥犳杈冧箣浜嶴ubset鐨勫疄鐜幫紝闇瑕佸姞涓浜涘垽鏂傚鏋滅鍒頒簡閲嶅鍏冪礌錛屽彧闇瑕佸湪涓婁竴嬈¤凱浠f柊澧炵殑瀛愰泦鐨勫熀紜涓婂啀榪涜榪唬鍗沖彲銆傚疄鐜頒唬鐮佸涓嬶細
 1 public class SubsetsII {
 2     public ArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
 3         ArrayList<ArrayList<Integer>> ret = new ArrayList<ArrayList<Integer>>();
 4         ArrayList<ArrayList<Integer>> lastLevel = null;
 5         ret.add(new ArrayList<Integer>());
 6         Arrays.sort(num);
 7         for (int i = 0; i < num.length; i++) {
 8             ArrayList<ArrayList<Integer>> tmp = new ArrayList<ArrayList<Integer>>();
 9             ArrayList<ArrayList<Integer>> prev = i == 0 || num[i] != num[i - 1] ? ret : lastLevel;
10             for (ArrayList<Integer> s : prev) {
11                 ArrayList<Integer> newSet = new ArrayList<Integer>(s);
12                 newSet.add(num[i]);
13                 tmp.add(newSet);
14             }
15             ret.addAll(tmp);
16             lastLevel = tmp;
17         }
18         return ret;
19     }
20 }


Meng Lee 2014-01-03 16:40 鍙戣〃璇勮
]]>
[Leetcode] Word Ladder IIhttp://www.tkk7.com/menglee/archive/2014/01/02/408381.htmlMeng LeeMeng LeeThu, 02 Jan 2014 05:59:00 GMThttp://www.tkk7.com/menglee/archive/2014/01/02/408381.htmlhttp://www.tkk7.com/menglee/comments/408381.htmlhttp://www.tkk7.com/menglee/archive/2014/01/02/408381.html#Feedback0http://www.tkk7.com/menglee/comments/commentRss/408381.htmlhttp://www.tkk7.com/menglee/services/trackbacks/408381.htmlGiven two words (start and end), and a dictionary, find all shortest transformation sequence(s) from start to end, such that:
Only one letter can be changed at a time
Each intermediate word must exist in the dictionary
For example,
Given:
start = "hit"
end = "cog"
dict = ["hot","dot","dog","lot","log"]
Return
  [
    ["hit","hot","dot","dog","cog"],
    ["hit","hot","lot","log","cog"]
  ]
Note:
All words have the same length.
All words contain only lowercase alphabetic characters.

榪欎釜棰樼洰搴旇綆楁槸leetcode涓婃瘮杈冮毦鐨勯鐩簡銆傚垰寮濮嬫垜閲囩敤浜嗗拰Word Ladder鐩鎬技鐨勫仛娉曪紝鍙槸鐢ˋrrayList璁板綍浜嗗綋鍓嶅彉鎹㈣礬寰勶紝鍦ㄥ皬鏁版嵁鐨勬儏鍐典笅鍙互Accept錛屼絾鏄ぇ鏁版嵁瓚呮椂銆傜┒鍏跺師鍥狅紝鏄敱浜庝負姣忎釜褰撳墠鑺傜偣璁板綍鍙樻崲璺緞鐨勬椂鍊欙紝闇瑕佸鍒朵箣鍓嶇殑ArrayList錛岃繖涓椂闂村紑閿杈冨ぇ銆?br />鍏跺疄錛屾垜浠彲浠ラ噰鐢ㄤ竴涓狹ap<String, HashSet<String>>緇撴瀯錛岃褰曞瓧鍏稿崟璇嶇殑姣忎竴涓墠椹憋紝榪欐牱鎴戜滑鍙互浠巈nd鍙嶅悜閬嶅巻錛屾瀯閫犲嚭杞崲璺緞銆?br />鍚屾椂錛屾垜鍒╃敤浜嗕袱涓狝rrayList錛屼氦鏇胯褰曚笂涓灞傚拰涓嬩竴灞傜殑鑺傜偣錛屽鏋滀笅涓灞傝妭鐐逛負絀猴紝鍒欎笉瀛樺湪璺緞錛岀珛鍗寵繑鍥炪傚鏋滀笅涓灞備腑鍑虹幇浜唀nd錛岃瘉鏄庢壘鍒頒簡鎵鏈夌殑鏈鐭礬寰勶紝鍋滄鎼滅儲寮濮嬫瀯閫犺礬寰勩傚疄鐜頒唬鐮佸涓嬶細
 1 public class WordLadderII {
 2     private void GeneratePath(Map<String, ArrayList<String>> prevMap,
 3             ArrayList<String> path, String word,
 4             ArrayList<ArrayList<String>> ret) {
 5         if (prevMap.get(word).size() == 0) {
 6             path.add(0, word);
 7             ArrayList<String> curPath = new ArrayList<String>(path);
 8             ret.add(curPath);
 9             path.remove(0);
10             return;
11         }
12 
13         path.add(0, word);
14         for (String pt : prevMap.get(word)) {
15             GeneratePath(prevMap, path, pt, ret);
16         }
17         path.remove(0);
18     }
19 
20     public ArrayList<ArrayList<String>> findLadders(String start, String end,
21             HashSet<String> dict) {
22         ArrayList<ArrayList<String>> ret = new ArrayList<ArrayList<String>>();
23         Map<String, ArrayList<String>> prevMap = new HashMap<String, ArrayList<String>>();
24         dict.add(start);
25         dict.add(end);
26         for (String d : dict) {
27             prevMap.put(d, new ArrayList<String>());
28         }
29         ArrayList<HashSet<String>> candidates = new ArrayList<HashSet<String>>();
30         candidates.add(new HashSet<String>());
31         candidates.add(new HashSet<String>());
32         int current = 0;
33         int previous = 1;
34         candidates.get(current).add(start);
35         while (true) {
36             current = current == 0 ? 1 : 0;
37             previous = previous == 0 ? 1 : 0;
38             for (String d : candidates.get(previous)) {
39                 dict.remove(d);
40             }
41             candidates.get(current).clear();
42             for (String wd : candidates.get(previous)) {
43                 for (int pos = 0; pos < wd.length(); ++pos) {
44                     StringBuffer word = new StringBuffer(wd);
45                     for (int i = 'a'; i <= 'z'; ++i) {
46                         if (wd.charAt(pos) == i) {
47                             continue;
48                         }
49 
50                         word.setCharAt(pos, (char) i);
51 
52                         if (dict.contains(word.toString())) {
53                             prevMap.get(word.toString()).add(wd);
54                             candidates.get(current).add(word.toString());
55                         }
56                     }
57                 }
58             }
59 
60             if (candidates.get(current).size() == 0) {
61                 return ret;
62             }
63             if (candidates.get(current).contains(end)) {
64                 break;
65             }
66         }
67 
68         ArrayList<String> path = new ArrayList<String>();
69         GeneratePath(prevMap, path, end, ret);
70 
71         return ret;
72     }
73 }


Meng Lee 2014-01-02 13:59 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 日木av无码专区亚洲av毛片| 国产精品无码亚洲一区二区三区| 亚洲日韩在线中文字幕综合 | 亚洲日本成本人观看| 国产精品国产午夜免费福利看| 一级日本高清视频免费观看| 国产乱子伦精品免费无码专区| 中文字幕不卡高清免费| 亚洲制服丝袜一区二区三区| 亚洲精品成人a在线观看| 最近中文字幕大全免费视频 | 亚洲熟妇无码av另类vr影视| 黑人大战亚洲人精品一区| 亚洲免费视频一区二区三区| 亚洲欧洲中文日韩av乱码| 99在线观看精品免费99| 男女交性无遮挡免费视频| 久久亚洲私人国产精品vA| 免费少妇a级毛片| 国产精品免费看久久久香蕉| 亚洲国产精品成人精品软件| 亚洲爽爽一区二区三区| 毛片免费观看视频| 久久99国产乱子伦精品免费| 黄页网站在线免费观看| 亚洲中文字幕无码久久精品1 | 久久精品免费网站网| 亚洲综合精品第一页| 亚洲AV人无码综合在线观看| 2015日韩永久免费视频播放| www永久免费视频| 亚洲精品久久久久无码AV片软件| 亚洲图片在线观看| 亚洲色精品88色婷婷七月丁香| 99在线观看免费视频| 国产日韩久久免费影院 | 女人体1963午夜免费视频| 国产成人亚洲综合无| 亚洲第一男人天堂| 自拍偷自拍亚洲精品第1页| 日日夜夜精品免费视频|