[Powered by Google Translate] [Seminar: Technical conloquia] [Kenny Yu, Harvard University] [Hoc est CS50.] [CS50.TV] Hi omnes, Im 'Kenny. EGO sum currently a junior studendo computer quod scientia. Im 'prioris CS TF, et volo habui hoc quando fui underclassman, et ut 'quare Im isto faciendo seminar. Sic spero te frui eam. Hoc seminar est circa technical congressi, et haec omnia possunt opes amet, Haec pagina praesens est, duobus mauris. Ita recensuit amet profecto plerique elit. Etiam generale resources page ubi possimus invenire tips quam parare adito Qua in re magna agis colloquium, necnon quomodo accedere ad problemata et opibus pro futuro referantur. Tota online. Et justus, ut praefiges hoc seminar, a Disclaimer, sicut hic non moreretur - vos conloquium praeparatio non limitatur ad hoc album. Non nisi duce destinatum, dico vobis et pro certo grano salis decessit, sed omnia uti in colloquium uti praeparatione rutrum. Ego rem intra paucos velocitate labitur possumus ita rem ipsam meditari. Structuram adito pro software engineering postion, typice est XXX ad XLV minutes, multiple rounds, fretus company. Saepe youll 'exsisto coding in album tabulis. Sic alba tabula, sicut hic, sed saepe inter minora lanx. Si vestri 'habens phone conloquium, youll probabiliter usura aut collabedit vel Google Doc ut videant vixeritis coding tu dum capias ens interviewed super phone. , Conlocutum se est typice II aut III problems tentantes vestri computer scientia scientiam. Et erit fere definite involvunt coding. Rationes questions ut youll 'animadverto solent notitia structuris et algorithms. Facientes has quaestiones et interrogavero, ut, tempus et quod multipliciter Deus magnus? Saepe quoque interrogo, superiori-level quaestiones, sic, cogitans est systema, quomodo esset ista reponitis, sicco vestri codice? Quid interfaces quaenam genera, quae in moduli rationem habetis, et quomodo istae penitus pariter? Sic notitia structuris et algorithms necnon cogitans ratio. Aliqua generali tips antequam nos intendere in nostrae causae studiis. Ut semper aliquis cogitet de summis reor magna. Occasione sermonis putant esse sententiam ostendendas aliqua. Interviewer sermonis est usque ad coniecturam quam tu putas, per quam res. Taceat licet, maximum totius rei colloqui. Quod suus 'iustus non bonum. Cum data sit, intelligas volo facio certus vos est. Ut tua verba rursus interrogo rursus et nitatur operari instructius pauci simplex test casibus Certe ut intelligas pertinere. Operante per paucos test casibus et dabo tibi intuitionem, in quam ut solve is forsit. Vos vires etiam reperire paucis exemplaria ad auxilium vobis problema solvunt. Eorum magnus tip est ad non adepto frustrari. Non adepto frustrari. Quae conloquia amet, pessimus potestis facere praeter tacere, frustra visibilis est. Non vis dare illam impressionem ad Interviewer. Quod aliud - ita multi, ut in conloquium venire, prima solutio maxime conantur invenire, quando realiter, illic 'usitas a LUCULENTE patet solutio. Ne segnis, inutilis esset, sed eas tantum statum, unde tantum tibi melius procedit. Et tardum est solutio ostendit, secundum magnus O tempus complexitate aut spatium complexionem, demonstrabimus ad Interviewer, intelligere te his rebus cum scribimus code. Ne timeas a simplicissimis algorithm primum venire et ibi melius. Ullus questions tam longe? Okay. Sic lets 'intendere in nostram primum problema. "Datæ intellegeretur compluras n integri, scribere functio, ut shuffles, in aciem in locum ita ut omnes permutaciones n integri sunt aequaliter probabile. " Et assumere habetis available temere integer generans i 0 rhoncus a generante per integrum medium patens. Quilibet intelligat hoc question? N numeros integros impositam nubem tibi, et quam volo miscere. Aliquam meo scripsi paucis id demonstrare elit. Ego rem XX impositam nubem miscere principia a -10 ad IX, et haec nomina output volo. Sic hoc est meum sorted input acie, que volo vos shuffle eam. Puteus 'operor is iterum. Vtrum Intelligant omnes question? Okay. Ita est ad vos. Quid sunt quidam idearum? Ut facias ^ n II n index n, n? Aperi proponendi. Okay. Itaque una idea, innutum per Emmy, est primum computant temere numero, temere integer, in range ab 0 ad XX. Sic assumere nostri array habet longitudinem XX. In nostra diagramma XX elementa, nostra haec est input ordinata. Et nunc, eam suggestione est creare novum apparatu, sic haec erit output ordinata. Et ex i reversi sunt per Rand - Si ita est, quod dicitur XVII, effingo 17 elementi in prima positione. Nunc debemus ut delete - nos postulo ut amoveo omnia elementa hic ut in fine habent nec foramina in medio foramen. Nunc iterum elit. Nunc nos pick novum temere integer inter 0 et XIX. Hic habemus novum, et imitari in hoc loco aliqua. Deinde nos, amoveo items transilit, et iteramus processus donec habemus nostram plenariam novum ordinata. Quid est run tempus huius algorithm? Bene, lets considerare labefactum of hoc. Nos moventes omnis elementum. Hunc ego cum nos ea omnia quae in sinistrum verso. Quod est o (n) sumptus quia remoto primo elementum? Sic de singulis remotio, amoveamus - singulis remotionem incurrit O (n) operationem, et quia sumus ustus in remotiones, hoc perducit ad O (n ^ II) shuffle. Okay. Ita bonum exordium. Bonum exordium. Alius consilium est uti aliquo notus ut Knuth shuffle, aut Fisher-Yates shuffle. Quod suus 'vere a linearibus tempus shuffle. Et similis est ratio. Iterum, nos have nostrum input apparatu, sed pro usura duo vestit pro nostra input / output, utimur prima pars, in aciem ut servo semita nostri lentis portionem, et ne vestigia nostri habitus ad reliquas denique partes unshuffled. Et dico hic. Nos satus off - nos deligendus, i, XX exercitu ab 0. Nostri nunc monstratorem indicat ad primum index. Eligimus quidam i hic nunc nos PERMUTO. IV et V si hoc ita esset, consecuturo array habebit V hic et IV hic. Et nunc nos note titulum hic. Omnia ad sinistra lentis, et omne ius unshuffled. Possumus dicere et aliqua. Eligimus temere index inter I et XX nunc. Sic nostri opinor novum i est hic. Nunc nos PERMUTO hoc i cum nostris current novum situm hic. Illuc unde permutando ut sic. Fac me certiorem facere iuris adducunt. Nos satus cum in arbitrio nostro i - nos satus i exaequabo 0, pick temere location j in unshuffled portio apparatu, i ad n-I. Hic si me potius temere huc index inter cetera acie et nos PERMUTO. Hoc est tota codice necessarium ut shuffle vestra ordinata. Ullus questions? Bene, unum opus est quaestio, cur hoc recte? Cur est omnis alternando aeque? Et non per evidentiam, sed multa problems in computatrum scientia potest probatur per inductionem. Inductione notissimum quot mihi? Okay. Frigus. Sic vos can probare rectitudinem hoc algorithm per simplicem inductione, ubi vestra inductione hypothesis esset, supponas mea shuffle redit omnis alternando aeque ad primum elementum. Nunc, considerate i + I. Et in via eligimus noster index j ad PERMUTO, hinc - tum singulis elaborare, saltem plena probatio, quare hoc algorithm redit omnis alternando pariter verisimile probabilitatis. Omni jure, postero forsit. Sic "datum, intellegeretur compluras integri, jus positivum, nulla, negative, scribere functio, ut computantem maximum summam de ullo continueous subarray de input ordinata. " Exemplum est, in qua omnes numeri integri affirmativi, tunc currently optimus choice est integrum accipiet ordinata. I, II, III, IV, X aequalis. Cum habeas aliqua negativis in ibi, prima duo in hoc vis quia eligens -1 et / vel -3 adducam summae down. Nunc media acie inire poterat. Nihil volo sumo aliquando, quod non sit aliquid optimum. Melius quandoque est peccatum Magna res, quia supervacuum est. Sic ullus idearum? (Studiosum, potest) >> Yeah. Puta me non auferent -1. Tunc aut eligo 1,000 et 20000, aut ego iustus sumo III billion. Atque ut omnibus numeris primis eligit. Hoc -1, vocacione negative, summa ne ego melior -1. Una res est, ut supra dixi, evidenter apparet apice et brutis vis solutio primi. Quod huius quaestionis solutio vires? Yeah? [Jane] Perabunde, puto bruta vis solutio omnia accumsan sit addere potest (potest). [Yu] okay. Sic Jane scriptor idea est ut tollat ​​omne possibile - Im 'paraphrasi - est accipere omne possibile continuum subarray, supputant suam totalitatem, et tolle omnium maximum, possibilis continua subarrays. Quid unice identifies a subarray in mea input ordinata? Qualisque duo mihi opus? Yeah? (Studiosum, potest) >> RECTO. Inferior ligari ex indicem et superiorem ligatus index unice determinat continua subarray. [Female studiosum] sumus pensitandisque suus 'intellegeretur compluras unique numeros? [Yu] No ergo quaestioni suae est, sumus assumentis nostri array - noster est array omnes unique numeros, et responsum non est. Si utimur bruta vis solutio, tunc satus / finis indices unice determinat nostri continui subarray. Si igitur RESUMO pro omnibus possibilis satus viscus, et pro omnibus finis entries> aut = ut satus, et > Zero. Iustus non capiant -5. Hic quoque suus futurus 0. Yeah? (Studiosum, potest) [Yu] Oh, rumex, est -3. II ita est, sit -3. Okay. Sic -4 comprehenduntur, quis 'maximalia subarray ad finem illa positio ubi -4 est ad? Zero. Unum? I, V, VIII. Sed ut finem ad locum in -2. Ita VI, V, VII, hoc est IV. Scientes quod, mea sunt haec entries pro transformatae forsit ubi uos oportet me finire in singulis Indicis illius, tunc meus, finalis responsum iustum est, accipe verrunt traiciuntur, et accipe maximum numerum. Ac per hoc illud VIII. Hoc implicat quod maximalia subarray desinit ad hoc indice pro cujusque, quod coepi alicubi ante eam. Quilibet intelligat hoc transformamur subarray? Okay. Esto enim est figura ex eternum. Lets considerare iustus primoris pauci introitibus. Et hic est 0, 0, 0, I, V, VIII. -2 Et erat ibi usque ad VI duxit. Ita si ego voco introitu in situ i subproblem (i), quomodo potest usus sum responsio ad priore subproblem responderet ad hoc subproblem? Vide si sit de ista vestibulum. Quomodo possum supputant responsum VI aspiciendo a iunctura huius acie atque responsio ad previous subproblems in hoc ordinata? Etiam? [Female studiosum] es tollis milítia summarum Ante loco, sic VIII, et tunc addas current subproblem. [Yu] Sic eam suggestione est spectare hi duo numeri, hoc numero et hoc numerus. Ita intelligitur hoc responso subproblem VIII (i - I). Quod lets voca me input array A. Ut habeatur locus desinit esse maxima subarray I Habeo duas choices: Ego potest aut perseveraverunt subarray Index priore finita, et incipit novam aciem. Si ego essem continuare subarray qui coepta est in priore Indecem erit maxima summa ego consequi potest responsio est ad priore subproblem plus current array ingressu. Sed, ego quoque electionem habeat profectionis novum subarray, 0, quo casu summa. Ita respondendum est, max of 0, subproblem i - I, plus current array ingressu. An hoc recidivam facere sensus? Nostri recidivam, ut paulo inventa, est subproblem i aequalis est maximum of priore subproblem plus mea current array ingressu, quod interpretatur perseverant priore subarray, aut 0, satus a novus subarray procul meus current index. Mensam semel et elit hac aedificavit ergo dicendum ultimum, iustus facio linearibus verrunt trans subproblem array et accipe maximum numerum. Quid sit proprie dictum turpis. Ita et nos partum a novus subproblem apparatu, subproblems. Vestibulum vestibulum est vel prima vel 0 primum, maximum illarum. Et reliqua subproblems utimur exigere recidivam nos iustus repertis. Nunc nos supputant maximum of nostri subproblems acie, que ut 'etiam finalis responsum. Sic quam tantumque spatii sumus usura in hoc algorithm? Lorem CS50 solum si tunc de spatio plurimum posse. Bene, una res animadvertendum est quod vocavi malloc hic cum mole n. Quid autem suggeret vobis? Hoc algorithm utitur linearibus spatio. Possumus melius? Oportet animadvertere quod est ultimum dicendum videris? Suspicor re melius quam ipsum nonne usque ad finem portent? Sed si consideremus quarum utimur tantum curat de priore subproblem, et nos tantum curat de maximum weve vidit umquam quatenus. Animadvertere ultimum respondetur, non omne opus ornatus. Ultimum opus tantum numerum horum numerorum. Last numerum subproblem apparatu, et novissima numerus pro maximi. Sic, in facto, possumus DECOCO his ansas simul et recedam ab linearibus spatio ad constans spatio. Current summam tam longe, hic, reponit munus subproblem noster subproblem ordinata. Sic current summa, tam longe, responsio est ad priore subproblem. Quod denique attinet, maximum locum tenet. Nos supputant maximum sicut et nos pergam. Et sic venimus ire a linearibus spatio ad constans spatio, et etiam nos habere linearibus solutio ad nostrum subarray forsit. Vives in huiusmodi quaestionibus colloqui. Quid est tempus complexitate: quid est spatium complexitate? Potes melius? Ibi sunt quæ sunt supervacuis ut custodiant circumspicitis? Te quoque fecisse digeruntur in lumine tuo sicut vos erant 'opus per haec problems. Semper postulare teipsum, 'Num ego possum melius facere? " Nam melius possumus? Modi dolum quaestio est. Non potes quia opus saltem legere input ad forsit. Unde oportet quod saltem in dubium input legat quam non poteris quin aliquot diebus Non semper quam et purus. Sic enim optima solutio ad hoc. Quaestiones? Okay. Stock forum problema: "N numeros integros copia data positiva, nihil aut non, exhibentes pretium stirpe super n diebus, scribere functio supputare maximum lucrum vos can planto dato quod tibi emere et vendere exacte I stirpe intra haec n diebus. " Essentialiter, nos emere velle humiliabitur, vendere altitudinis. Ut instar sicco melius proficere volumus possumus. Regressæ meo tip, quid est statim patet, simplicissima responsum, tamen suus 'tardus? Etiam? (Studiosum, potest) >> Etiam. >> Sic et vos esset iustus vado quamvis et inviso stirpe prices in utroque puncto in tempore, (inintelligibile). [Yu] okay, ita eam solutio - eam suggerentibus computing infimo et computo summum non necessario operari quia supremum infimi contingat ante. Quid est solutio problematis vires? Quid sunt duæ quæ ego postulo ut unice determinare lucrum ponam? Rectus. Vires autem solutio - oh Georgius tantum opus est biduo suggerente ad unice determinare in utilitatem eorum duobus diebus. Ita et nos supputant quodlibet par, similis buy / vendere, fructus spatia, quorum sive positivi sive negativi nulla. Supputant maximum lucrum, ut demus post iterando super omnia paria diebus. Ultimum dicendum erit. Quae solutio erit O (n ^ II), quia non est n eligere paria duo - dies ut vos can sumo inter finis diebus. Bene, ita vires transire Non sum via est. Im 'iens ut nuntiarem tibi ut illic' an n log n solutio. Quid algorithm operor vos currently scient quia est n log n? Sed dolus non est. Merge huiusmodi. Merge generis est n log n, et quidem, ut est ratio huius quaestionis solutionem a merge modi qualem ideam vocatur, in genere, dividite et vincere. Et ratio talis est. Vos volo ut supputant optimus buy / vendere par in sinistro dimidium. Optime possis utilitatis, sicut in primis duobus n. Tunc vos volo ut oompute optimum buy / vendere par in dextro dimidium, ita ultimus n super duobus diebus. Et nunc est quaestio, quomodo nos merge his solutiones revertebantur simul? Etiam? (Studiosum, potest) >> Okay. Itaque tabulam trahere. Etiam? (George, potest) >> Etiam. George solutio est exigo rectus. Sic eius suggestio est, primo supputant optimus buy / vendentes coniugatione, et in sinistra parte fiunt, ita sinistra vocatione reliquerunt. Optimus buy / vendere par qui contingit in ius dimidium. Si comparari hi duo numeri tantum, ut si desunt ubi ememus hic et vendere alicubi in dextro dimidium. In sinistra parte ememus vendiderit partem rectam. Et optimus via ut supputant optimus buy / vendentes coniugatione palmis utrumque medietates est supputant minimum hic et supputant maximum hic et capessere pro differentia. Sic duo quibus enim buy / vendentes par occurrit solum hic, modo hic definitur partes tres vel plures simul. Ita noster algorithm ut merge nostri solutiones retro simul, nos volo ut supputant optimus buy / vendentes par ubi ememus a sinistris dimidiam et vendere in dextro dimidium. Et hoc est maxime ad primum turpis spatia duarum, dextra pars maxima pretium, et differentia. Inde fructus trium tres numero tu maxime e tribus, et quod suus 'optimus lucrum vos can planto super has primum et finis diebus. Hic magni momenti sunt lineae in rubrum. Hoc est recursive vocatio ad supputant responsum in sinistro dimidium. Hoc est recursive vocatio ad supputant responsum in dextro dimidium. Duo illa quibus ansas supputant min et max a sinistris et rectum dimidium, respective. Nunc ego supputant, utilitatem palmis utrumque medietates, et respondebit finis est maxime haec tria. Okay. Sic nimirum habemus algorithm sed maior quaestio, quid sit tempus multiplicitate hoc? Ideo dixi dividere tale responsum tale merge in duas et tunc bus nostris solutiones revertebantur simul est prorsus forma merge huiusmodi. Itaque tempus transierit. Si t opus esse (n) numerus graduum pro n diebus, nostra, duos recursive vocat utraque mihi constabit t (n / II) duo illic 'vocat. Nunc eget sinistram partem minime computato, quam possum facere in n / II tempus, plus maximum of ius dimidium. Sic hoc, iustus est n. Et tunc plus constante quadam opus. Et hoc recidivam aequatio est prorsus recidivam aequatio pro merge huiusmodi. Et nos omnes scimus ut merge generis est n log n tempus. Ideo nobis algorithm etiam ustus in log n tempus. An hoc iteratione facere sensus? Iustus a brevis recap huius: T (n) est numerus gradus ad supputant maximum lucrum n decursu dies. Via diducitur nostri recursive vocat est vocando solutionem nostram in primo n / II diebus, ita ut suus 'unus invocabis, et etiam secunda parte dicemus. Sic ut 'duo vocat. Et deinde sinistra parte minima, in quibus aliquot diebus invenire maximum of ius dimidiam, quae facere possumus in linearibus tempus. Sic n / II + n / II iustum est n. Constanti erit opus, hoc est arithmetica. Hoc recidivam aequatio est exigo recidivam aequatio pro merge huiusmodi. Unde, nostri shuffle algorithm est etiam n stipes n. Sic quam tantumque spatii sumus usura? Eamus ad Codicis. Melior est quaestio, quot ACERVUS tabulas operor nos unquam habere quolibet nunc? Cum nos erant 'usura recursion, numerum ACERVUS tabulas determinat nostris spatium instructio. Lets considerare n = VIII. Vocamus shuffle in VIII, quod mos vocare shuffle in primo quattuor viscus, quod mos vocant shuffle in primo duo introitibus. Ita noster ACERVUS est - huius noster est ACERVUS. Et tunc vocamus shuffle rursum super I, et quod est scriptor quid nostri basi casus est, ita et nos redire statim. Facere nos semper habere plus quam hoc multi ACERVUS tabulae erunt? No Quia utrumque tempus nos facere invocatione, a recursive invocatione ad shuffle, nos nostras dividat quantitatis in dimidium. Sic numerus maxime ACERVUS tabulas nos semper habere simul quodlibet momentum est ex ordine log n ACERVUS tabulae erunt. Singulis ACERVUS frame firmiter spatio, ideoque summa loci maximum amount of tractus umquam nobis uti est O (log n) spatium ubi n est numerum dierum. Sed cur ipse 'melius possumus? " Et in specie ad hanc reduci potest solvi quaestio superius diximus? Indicant: duae quaestiones de hoc tantum, quod suus 'non iens ut miscere. Nos possit convertere stirpis forum forsit in maximalia subarray forsit. Quomodo possumus hoc facere? Unus ex vobis? Emmy? (Emmy intellegens) [Yu] Etiam. Ita maximalia subarray forsit, nos 'vultus pro summam super continua subarray. Et Emmy suggerente pro nervum forsit, considerate mutationes, aut deltas. Imago haec et - id pretium velit, Si autem acceperunt singulos continuos dies inter - Sicut patet quod maximum pretium commodo eget poteramus est si ememus hic et vendere hic. Sed lets 'inviso continua - lets' inviso subarray forsit. Ita hic possumus - hinc euntem hic mutatio positiva sunt et hinc euntem hinc negativa fiunt. At ingens hinc ire hinc positivum mutatio. Denique et hae mutationes velimus arcessere summam profutura. Tunc nos sumus negativum maiorem mutationes hic. Clavem ad redigo nostra stirpe forsit in nostram maximalia subarray forsit consideret deltas inter diebus. Ita et nos partum a novus array vocavit deltas, initialize primum ingressum ad sit 0 Quisque et Delta (i) sit differentia mei input array (i), et array (i - I). Deinde nos, nostrum appellare translaticiarum procedendi ratio maxima subarray transeunter Delta est scriptor ordinata. Et quia maximalia subarray est linearibus tempore, et hoc reductionem, hoc processus of partum hoc Delta apparatu, est etiam linearibus tempore, tunc finalis solutio pro nervo est O (n) opus plus O (n) opere, est adhuc O (n) opus. Est ergo nobis linearibus tempus solutio ad nostrum problema. Vtrum Intelligant omnes hac transformatione? Fere semper ut utilem est minuere novum forsit ut vestri 'videns. Si is vultus familiar ad vetus, forsit, experiri reducendo eam ad vetus forsit. Et si dici possit ex vetere re feceris omnia instrumenta solvere novum forsit. Ut ita involventque et technicae conloquia prouocas. Ex quo forte ista difficilia problemata ut videre adito Si igitur intelligere non modo quaestiones, quas operuit suus bonus. Haec ex pluribus quaestionibus amet. Exercitatione, usus, usus. Dedi multus of problems in handout, ita definite reprimendos foras. Et bonam fortunam in vestri conloquia. Haec mea pagina copia cornu, et unus ex senioris meo amicos obtulérunt ad facere illudere technical congressi, sic si vos es quorum interest email Arbitrio Yao illo email oratio. Percunctari si possis quaeris. Operor vos guys habeat specificam quaestionibus relatis ad technicae conloquia aut ullus problems weve videri tam longe? Okay. Bene, fortuna in vestri conloquia. [CS50.TV]