[Powered by Google Translate] [સેમિનાર: ટેકનિકલ ઇન્ટરવ્યૂઝ] [કેની યૂ, હાર્વર્ડ યુનિવર્સિટી] [આ CS50 છે.] [CS50.TV] હાય દરેકને, હું કેની છું. હું હાલમાં એક જુનિયર અભ્યાસ કોમ્પ્યુટર વિજ્ઞાન છું. હું એક ભૂતપૂર્વ સીએસ ટીએફ છું, અને મારી ઇચ્છા હું આ હતો જ્યારે હું એક underclassman હતી, અને તેથી જ હું આ પરિસંવાદ આપીને છું. તેથી હું આશા છે કે તમે તેને આનંદ અનુભવે છે. આ પરિસંવાદ તકનીકી મુલાકાતો વિશે છે, અને મારા બધા સ્રોતો આ લિંક પર શોધી શકાય છે, આ અહીં કડી, સ્રોતો એક દંપતિ. તેથી હું સમસ્યાઓની યાદી બનાવી, ખરેખર, ખૂબ થોડા સમસ્યાઓ. પણ એક સામાન્ય સાધનો પાનું જ્યાં અમે ટિપ્સ શોધી શકો છો કેવી રીતે એક મુલાકાતમાં માટે તૈયાર કરવા માટે પર, તમે શું ખરેખર મુલાકાત દરમિયાન શું કરવું જોઈએ પર ટિપ્સ, તેમજ કેવી રીતે ભાવિ સંદર્ભ માટે અને સમસ્યાઓ સાધનો સંપર્ક કરો. તે બધું ઓનલાઇન. અને ફક્ત આ પરિસંવાદ, દાવો જતો ઉપોદ્ઘાત માટે, તમારા ઇન્ટરવ્યૂ તૈયારી - આ જેવી જોઈએ શકાય મર્યાદિત આ યાદીમાં નથી. આ માત્ર એક માર્ગદર્શક થઈ ગયું છે, અને તમે ચોક્કસપણે બધું હું મીઠું એક અનાજ સાથે કહેવું લેવી જોઇએ, પણ બધું જ હું તમારી મુલાકાતમાં તૈયારીમાં મદદ ઉપયોગ વાપરો. હું ઝડપ આગામી થોડા સ્લાઇડ્સ પસાર થઇ રહ્યો છું તેથી અમે વાસ્તવિક કેસ અભ્યાસ માટે મેળવી શકો છો. સોફ્ટવેર એન્જિનિયરિંગ postion માટે એક મુલાકાતમાં માળખું, ખાસ કરીને તે 30 થી 45 મિનિટ છે, બહુવિધ રાઉન્ડમાં, કંપની પર આધાર રાખીને. ઘણી વાર તમે એક સફેદ બોર્ડ પર કોડિંગ આવશે. તેથી આ જેવા છે, પરંતુ નાના સ્કેલ પર ઘણી વખત સફેદ બોર્ડ. જો તમે એક ફોન મુલાકાતમાં આવી રહી છે, તો તમે કદાચ ઉપયોગ કરી શકશો ક્યાં collabedit અથવા Google ડૉક્સ, જેથી તેઓ તમને કોડિંગ Live જોઈ શકો છો જ્યારે તમે ફોન પર કરવામાં આવી મુલાકાત કરી રહ્યા છો. એક મુલાકાતમાં પોતે સામાન્ય રીતે 2 અથવા 3 સમસ્યાઓ તમારા કમ્પ્યુટર વિજ્ઞાન જ્ઞાન પરીક્ષણ. અને તે લગભગ ચોક્કસપણે કોડિંગ સમાવેશ થશે. પ્રશ્નો પ્રકારો કે જે તમે જોશો સામાન્ય રીતે માહિતી માળખાં અને અલગોરિથમ. અને સમસ્યાઓ આ પ્રકારના કરવાથી, તેઓ તમને, ગમે કરશે, કયા સમય અને જગ્યા જટિલતા, મોટા ઓ છે? ઘણી વખત તેઓ પણ ઉચ્ચ સ્તરીય પ્રશ્નો પૂછી, તેથી, સિસ્ટમ ડિઝાઇન, તમે કેવી રીતે તમારી કોડ મૂકે છે? કરે છે, શું વર્ગો મોડ્યુલો શું તમે તમારી સિસ્ટમ પાસે શું, અને કેવી રીતે આ એક સાથે વાર્તાલાપ કરી શકું? તેથી માહિતી માળખાં અને અલગોરિથમ તેમજ ડિઝાઇન સિસ્ટમો. કેટલાક સામાન્ય પહેલાં અમે અમારા કેસ અભ્યાસ કરવા માટે ડાઇવ ટીપ્સ. મને લાગે છે કે સૌથી વધુ મહત્વપૂર્ણ નિયમ હંમેશા બહાર આવે અવાજે વિચારવાનો. આ મુલાકાતમાં તમારા માટે આ બોલ તમારી વિચારસરણી પ્રક્રિયા બતાવવા તક હશે તેવું માનવામાં આવે છે. મુલાકાત ઓફ બિંદુ છે માટે ઇન્ટરવ્યુઅર ગેજ માટે તમને લાગે છે અને કેવી રીતે તમે એક સમસ્યા પસાર કેવી રીતે. આ સૌથી ખરાબ બાબત તમે શું કરી શકો છો સમગ્ર ઇન્ટરવ્યૂ દરમિયાન પ્રયત્ન શાંત છે. કે જે હમણાં જ કોઈ સારી છે. જ્યારે તમે એક પ્રશ્ન આપવામાં આવે છે, તો તમે પણ ખાતરી કરો કે તમે પ્રશ્ન સમજવા બનાવવા માંગો છો. તેથી પ્રશ્ન પાછા પુનરાવર્તન તમારા પોતાના શબ્દોમાં અને પ્રયાસ સંપૂર્ણ થોડા સરળ ટેસ્ટ કેસ કામ કરવા માટે માટે ખાતરી કરો કે તમે પ્રશ્ન સમજવા બનાવે છે. થોડા ટેસ્ટ કેસ દ્વારા કામ પણ તમે કેવી રીતે આ સમસ્યા ઉકેલવા માટે પર અંતઃપ્રેરણા આપશે. તમે પણ થોડા પેટર્ન મદદ માટે તમે સમસ્યા હલ શોધી શકે છે. તેમના મોટા ટિપ હતાશ મળશે નથી. શું હતાશ ન કરો. ઇન્ટરવ્યૂ પડકારરૂપ છે, પરંતુ સૌથી ખરાબ વસ્તુ તમે કરી શકો છો, મૂક હોવા ઉપરાંત માટે દેખીતી હતાશ છે. તમારે એક ઇન્ટરવ્યુઅર કે છાપ આપી નથી માંગતા. એક વસ્તુ છે કે જે તમને - તેથી, ઘણા લોકો, જ્યારે તેઓ એક મુલાકાતમાં જાય, તેઓ માટે શ્રેષ્ઠ ઉકેલ શોધવા પ્રથમ પ્રયાસ પ્રયત્ન કરે છે, જ્યારે ખરેખર, ત્યાં સામાન્ય રીતે સુસ્પષ્ટ રીતે સ્પષ્ટ ઉકેલ છે. તે ધીમું હોઈ શકે છે, તે બિનકાર્યક્ષમ હોઈ શકે, પણ તમે તેને હોવી જોઇએ, માત્ર જેથી તમે એક કે જેમાંથી સારું કામ શરૂ બિંદુ છે. પણ, બહાર ઉકેલ પોઇન્ટ ધીમા દ્રષ્ટિએ છે મોટું ઓ સમય જટિલતા અથવા જગ્યા જટિલતા, આ ઇન્ટરવ્યુઅર કે તમે સમજવા માટે નિદર્શન કરશે આ મુદ્દાઓ જ્યારે કોડ લખ્યું. તેથી તેને સરળ અલ્ગોરિધમનો આંબવું ભયભીત પ્રથમ ન હોઈ નથી અને પછી ત્યાં વધુ સારી કામ કરે છે. કોઈપણ પ્રશ્નો અત્યાર સુધી? ઠીક છે. તેથી આપણે આપણી પ્રથમ સમસ્યા ડાઇવ. N "પૂર્ણાંકો ઝાકઝમાળ આપેલ છે, એક કાર્ય છે કે જે એરે શફલ્સ લખી જેમ કે n પૂર્ણાંકો બધા ક્રમચયો સમાન તેવી શક્યતા છે જગ્યાએ. " અને ધારે તમે ઉપલબ્ધ રેન્ડમ પૂર્ણાંક જનરેટર છે કે 0 થી હું શ્રેણીમાં પૂર્ણાંક પેદા, અડધા રેંજ. નથી દરેકને આ પ્રશ્ન સમજી? હું તમને n પૂર્ણાંકો ઝાકઝમાળ આપે છે, અને હું તો તમે તેને શફલ કરવા માંગો છો. મારા ડિરેક્ટરીમાં, હું થોડા પ્રદર્શન માટે હું શું અર્થ કાર્યક્રમો લખ્યું હતું. હું 20 તત્વો ઝાકઝમાળ શફલ કરવા જઇ રહ્યો છું, -10 થી +9 માટે, અને હું તમે આ જેવી યાદી બનાવવામાં કરવા માંગો છો. તેથી આ મારા છટણી ઇનપુટ એરે છે, અને હું તો તમે તેને શફલ કરવા માંગો છો. અમે તે ફરીથી કરવું પડશે. નથી દરેક પ્રશ્ન સમજી? ઠીક છે. તેથી તે તમે નક્કી કરો. કેટલાક વિચારો શું છે? તમે ^ n 2, એન લોગ n એ, એન તરીકે કરી શકે છે? સૂચનો માટે ખોલો. ઠીક છે. તેથી એક વિચાર, એમી દ્વારા સૂચવેલા, પ્રથમ 0 થી 20 માટે રેન્ડમ નંબર, રેન્ડમ પૂર્ણાંક શ્રેણીમાં, ગણતરી છે. તેથી ધારે અમારા એરે 20 ની લંબાઈ ધરાવે છે. 20 તત્વો અમારી રેખાકૃતિ માં, આ અમારી ઇનપુટ એરે છે. અને હવે, તેમના સૂચન એક નવો એરે બનાવવાનું છે, તેથી આ આઉટપુટ એરે હશે. અને આઈ રેન્ડ દ્વારા પરત પર આધારિત - તેથી જો હું હતી, ચાલો કહે, 17, પ્રથમ સ્થિતિ માં 17 મી તત્વ નકલ કરો. હવે અમે કાઢી નાંખવાની જરૂર છે - અમે બધા તત્વો અહીં સ્થળાંતર કરવાની જરૂર ઉપર કે જેથી અમે અંતે તફાવત અને મધ્યમ કોઈ છિદ્રો હોય છે. અને હવે અમે આ પ્રક્રિયા પુનરાવર્તન કરો. હવે અમે 0 અને 19 વચ્ચે એક નવી રેન્ડમ પૂર્ણાંક બનાવ્યો. અમે હવે એક નવો હું અહીં છે, અને અમે આ સ્થિતિમાં આ તત્વ નકલ કરો. તો પછી અમે ઉપર વસ્તુઓ પાળી અને અમે પ્રક્રિયા પુનરાવર્તન ન થાય ત્યાં સુધી અમે અમારા સંપૂર્ણ નવા એરે હોય છે. આ અલ્ગોરિધમનો ઓફ રન સમય શું છે? વેલ, ચાલો આ અસર ગણે છે. અમે દરેક તત્વ સ્થળાંતર કરવામાં આવે છે. જ્યારે અમે આ હું દૂર કરવા માટે, અમે તેને પછી બધા તત્વો ડાબી સ્થળાંતર કરવામાં આવે છે. અને તે એક ઓ કિંમત (એન) છે કારણ કે જો અમે પ્રથમ તત્વ દૂર કરવી છે? તેથી દરેક દૂર કરવા, અમે દૂર - દરેક દૂર એક ઓ કામગીરી (એન) આવતી હોવાને કારણે, અને ત્યારથી અમે દૂર n છે, આ એક ઓ શફલ (n ^ 2) તરફ દોરી જાય છે. ઠીક છે. તેથી સારી શરુઆત. સારી શરુઆત. અન્ય સૂચન માટે નુથ શફલ તરીકે ઓળખાય છે કંઈક ઉપયોગ થાય છે, અથવા શફલ ફિશર-યેટ્સ. અને તે ખરેખર એક રેખીય સમય શફલ છે. અને આ વિચાર ખૂબ જ સમાન છે. ફરીથી, અમે અમારી ઇનપુટ એરે હોય છે, પરંતુ તેના બદલે અમારી ઇનપુટ / આઉટપુટ માટે બે એરે ઉપયોગ, અમે એરે પ્રથમ ભાગ વાપરવા માટે અમારા shuffled ભાગ ટ્રેક રાખવા માટે, અને અમે ટ્રેક રાખવા માટે, અને પછી અમે unshuffled ભાગ માટે અમારા એરે બાકીના છોડી દો. તેથી અહીં હું શું અર્થ થાય. અમે સાથે બંધ શરૂ - અમે એક હું પસંદ કરો, 0 થી 20 માટે ઝાકઝમાળ. અમારા વર્તમાન નિર્દેશક પ્રથમ ઇન્ડેક્સ પોઇન્ટ છે. અમે કેટલાક હું અહીં પસંદ કરો અને હવે અમે સ્વેપ. તેથી જો આ 5 હતી અને આ 4 હતું, પરિણામી એરે અહીં 5 અને 4 અહીં હશે. અને હવે અમે એક માર્કર અહીં નોંધ કરો. ડાબી બધું shuffled છે, અને જમણી બધું unshuffled છે. અને હવે અમે આ પ્રક્રિયા પુનરાવર્તન કરી શકો છો. અમે 1 અને 20 વચ્ચે હવે રેન્ડમ અનુક્રમણિકા પસંદ કરો. તેથી અમારા નવા ધારી હું અહીં છે. હવે અમે અમારા વર્તમાન નવી સ્થિતિ સાથે આ હું અહીં સ્વેપ. તેથી અમે આ જેવી નથી અને પાછળ આગળ જેઓ. મને જે તેને વધુ કોંક્રિટ બનાવવા કોડ લાવે છે. અમે હું અમારી પસંદગી સાથે શરૂ - અમે શરૂ સાથે હું 0 થી જેટલી, અમે રેન્ડમ સ્થાન જ પસંદ એરે ના unshuffled ભાગમાં, આઇ n-1 છે. તેથી જો હું અહીં છું, અહીં અને એરે બાકીના વચ્ચે રેન્ડમ અનુક્રમણિકા પસંદ કરો, અને અમે સ્વેપ. આ બધી તમારી એરે શફલ માટે જરૂરી કોડ છે. કોઈપણ પ્રશ્ન છે? વેલ, એક પ્રશ્ન માટે જરૂરી છે, આ સાચું શા માટે છે? દરેક ક્રમચય કેમ છે સમાન રીતે સંભવિત? અને હું આ સાબિતી મારફતે જશે, પરંતુ કોમ્પ્યુટર વિજ્ઞાન ઘણી સમસ્યાઓ ઇન્ડક્શન દ્વારા સાબિત કરી શકાય છે. તમે કેટલા ઇન્ડક્શન સાથે પરિચિત હોય છે? ઠીક છે. સરસ. તેથી તમે સરળ ઇન્ડક્શન દ્વારા આ અલ્ગોરિધમનો ચોકસાઈ સાબિત કરી શકો છો, જ્યાં તમારા ઇન્ડક્શન પૂર્વધારણા હશે, કે ધારે મારા શફલ દરેક ક્રમચય સમાન શક્યતા આપે છે અપ પ્રથમ હું તત્વો છે. હવે, હું + 1 વિચારો. અને જે રીતે અમે અમારા અનુક્રમણિકા જ સ્વેપ પસંદ દ્વારા, આ તરફ દોરી જાય છે - અને તે પછી તમે બહાર વિગતો કામ કરે છે, ઓછામાં ઓછા શા માટે આ અલ્ગોરિધમનો આપે સંપૂર્ણ સાબિતી સમાન રીતે સંભવિત સંભાવના સાથે દરેક ક્રમચય. તમામ હક, આગામી સમસ્યા. તેથી "પૂર્ણાંકો ઝાકઝમાળ, postive, શૂન્ય, નકારાત્મક આપવામાં આવે છે, એક કાર્ય છે કે મહત્તમ રકમ ગણતરી લખી ઇનપુટ એરે કોઈપણ continueous subarray છે. " અહીં એક ઉદાહરણ કેસ જ્યાં દરેક નંબરો હકારાત્મક હોય છે, પછી હાલમાં શ્રેષ્ઠ પસંદગી માટે સમગ્ર એરે લેવાનું હોય છે. 1, 2, 3, 4, 10 સમકક્ષ હોય છે. , જ્યારે તમે ત્યાં કેટલાક નકારાત્મક હોય છે આ કિસ્સામાં અમે માત્ર પ્રથમ બે માંગો છો કારણ કે -1 અને / અથવા -3 પસંદ અમારા રકમ લાવવા નીચે આવશે. ક્યારેક અમે એરે મધ્યમાં શરૂ હોય શકે છે. ક્યારેક અમે બધા અંતે કશું કરવાનું પસંદ કરવા માંગો છો, તે શ્રેષ્ઠ છે કશું લેવા નથી. અને ઘણી વાર તે સારું માટે પતન લે છે, કારણ કે તે પછી વસ્તુ સુપર મોટી છે. કોઈપણ વિચારો જેથી? (વિદ્યાર્થી દુર્બોધ) >> યાહ. ધારો કે હું -1 લેતા નથી. પછી ક્યાં તો હું 1,000 અને 20,000 પસંદ કરો, અથવા હું માત્ર 3 આ અબજ પસંદ કરો. વેલ, શ્રેષ્ઠ વિકલ્પ બધી સંખ્યાઓ લેવાનું હોય છે. આ -1, નકારાત્મક હોવા છતાં, સમગ્ર રકમ કરતા વધુ સારી હું હતા -1 ન લો છે. તેથી એક ટીપ્સ હું પહેલાં સૂચવાયેલ ઓફ કરવા માટે સ્પષ્ટપણે દેખીતું રાજ્ય હતું અને જડ બળ પ્રથમ ઉકેલ. આ સમસ્યા માં જડ બળ ઉકેલ શું છે? યાહ? [જેન] વેલ, હું જડ બળ ઉકેલ લાગે સુધી તમામ શક્ય મિશ્રણોનો (દુર્બોધ) ઉમેરો થશે. [યુ] ઠીક. તેથી જેન્સ વિચાર માટે દરેક શક્ય લાગી છે - હું paraphrasing છું - દરેક શક્ય સતત subarray લાગી છે, તેની રકમ ગણતરી, અને પછી બધા શક્ય સતત subarrays મહત્તમ લો. શું અનન્ય મારા ઇનપુટ એરે એક subarray સૂચવે છે? જેમ, બે વસ્તુઓ શું હું જરૂર છે? યાહ? (વિદ્યાર્થી દુર્બોધ) >> અધિકાર. એ નીચા ઇન્ડેક્સ અને ઉપલી બાઉન્ડ અનુક્રમણિકા પર બંધાયેલ અનન્ય સતત subarray નક્કી કરે છે. [સ્ત્રી વિદ્યાર્થી] શું આપણે અંદાજો તે અનન્ય નંબર ઝાકઝમાળ છે? [યુ] નંબર તેના પ્રશ્ન તેથી, અમે છે અમારા એરે એમ ધારી રહ્યા છીએ - અમારા એરે છે બધા અનન્ય નંબર છે, અને જવાબ ના હોય. જો અમે અમારી જડ બળ ઉકેલ, પછી સૂચકાંકો પ્રારંભ / સમાપ્તિ ઉપયોગ અનન્ય અમારા સતત subarray નક્કી કરે છે. , તેથી જો આપણે તમામ શક્ય શરૂઆત પ્રવેશો માટે ફરી વળવું અને બધા ઓવરને પ્રવેશો માટે> અથવા = શરૂ કરવા માટે, અને > જસ્ટ -5 નથી લેતા નથી. અહીં તે 0 તેમજ જ હશે. યાહ? (વિદ્યાર્થી દુર્બોધ) [યુ] ઓહ, માફ કરશો, તે -3 છે. તેથી આ એક 2 છે, આ એક -3 છે. ઠીક છે. તેથી -4, મહત્તમ કરવા માટે તે સ્થિતિમાં અંત subarray શું છે જ્યાં અંતે -4 છે? શૂન્ય. એક? 1, 5, 8. હવે, હું સ્થાન જ્યાં અંતે -2 છે અંત જ જોઈએ. 6 તેથી, 5, 7, અને છેલ્લા એક 4 છે. ખબર છે કે, આ મારું એન્ટ્રીઓ છે રૂપાંતરણ સમસ્યા જ્યાં હું આ સૂચકાંકોના દરેક સમાપ્ત થવો જોઈએ કે, પછી મારી અંતિમ જવાબ માત્ર છે, સમગ્ર રન લે છે, અને મહત્તમ સંખ્યા લો. તેથી આ કિસ્સામાં તે 8 છે. આ સૂચવે છે કે મહત્તમ subarray આ ઇન્ડેક્સ પર સમાપ્ત થાય છે, અને તે પહેલાં ક્યાંક શરૂ કર્યું. નથી દરેકને આ પરિવર્તન subarray સમજવું? ઠીક છે. વેલ, ચાલો આ માટે આવૃત્તિ આકૃતિ. ચાલો માત્ર પ્રથમ થોડા પ્રવેશો વિચારો. અહીં તે 0, 0, 0, 1 5 હતી, 8. અને પછી ત્યાં -2 અહીં એક હતી, અને તે લાવવામાં 6 બનાવ્યા. તેથી જો હું સ્થાને પ્રવેશ કૉલ આઈ subproblem (i), હું પહેલાંના subproblem કેવી રીતે ઉપયોગ કરી શકો છો જવાબ આ subproblem જવાબ? જો હું જોવા છે, ચાલો કહે છે, આ પ્રવેશ. હું જોઈ દ્વારા કેવી રીતે 6 જવાબ ગણતરી કરી શકે છે આ એરે અને આ એરે અગાઉની subproblems માટે જવાબો ભેગા? હા? [સ્ત્રી વિદ્યાર્થી] તમે રકમો ઓફ એરે લેવા આ સ્થિતિમાં અધિકાર તે પહેલા, 8 એટલી, અને પછી તમે વર્તમાન subproblem ઉમેરો. [યુ] તેથી તેના સૂચન આ બે નંબર જોવા છે, આ નંબર અને આ સંખ્યા. તેથી 8 આ subproblem માટે જવાબ (1 - i) ઉલ્લેખ કરે છે. દો અને મારા ઇનપુટ એરે એ કૉલ ક્રમમાં મહત્તમ subarray કે હું સ્થાને સમાપ્ત થાય છે શોધવા માટે બનાવવા માટે, હું બે પસંદગીઓ છે: હું ક્યાં તો subarray ચાલુ રાખી શકો છો કે જે પહેલાંના અનુક્રમણિકા પર અંત આવ્યો, અથવા એક નવું એરે શરૂ કરો. જો હું subarray કે જે પહેલાંના ઇન્ડેક્સ શરૂ ચાલુ રાખવા હતા, પછી મહત્તમ રકમ હું હાંસલ કરી શકે અગાઉના subproblem જવાબ છે ઉપરાંત વર્તમાન એરે પ્રવેશ. પરંતુ, હું પણ એક નવી subarray શરૂ પસંદગી હોય છે, જે કિસ્સામાં રકમ 0 છે. 1, ઉપરાંત વર્તમાન એરે પ્રવેશ - તેથી જવાબ 0 ની મહત્તમ, subproblem મને છે. શું આ આવૃત્તિ અર્થમાં છે? અમારા આવૃત્તિ, subproblem મને, કારણ કે અમે હમણાં જ શોધ્યું છે અગાઉના subproblem મહત્તમ વત્તા મારા વર્તમાન એરે પ્રવેશ માટે સમાન છે, જેનો અર્થ થાય છે, જે અગાઉના subarray ચાલુ રાખવા માટે, અથવા 0, મારા વર્તમાન ઇન્ડેક્સ પર એક નવું subarray શરૂ કરો. અને એકવાર અમે ઉકેલો આ કોષ્ટક બનાવવામાં આવ્યા છે, તો પછી અમારા અંતિમ જવાબ, ફક્ત subproblem એરે સમગ્ર રેખીય રન કરવું અને મહત્તમ સંખ્યા લો. આ હું શું માત્ર જણાવ્યું હતું કે એક ચોક્કસ અમલીકરણ છે. તેથી અમે એક નવું subproblem અરે, subproblems બનાવો. પ્રથમ પ્રવેશ ક્યાં તો 0 અથવા પ્રથમ પ્રવેશ, બે તે મહત્તમ છે. અને subproblems બાકીની અમે ચોક્કસ આવૃત્તિ અમે શોધ્યું વાપરો. હવે અમે અમારા subproblems એરે મહત્તમ ગણતરી છે, અને તે અમારા અંતિમ જવાબ નથી. તો કેટલી જગ્યા અમે આ અલ્ગોરિધમનો ઉપયોગ કરીને કરવામાં આવે છે? જો તમે માત્ર CS50 ભર્યું છે, તો પછી તમે જગ્યા છે ઘણો નથી ચર્ચા થઈ શકે છે. વેલ, એક નોંધ બાબત એ છે કે હું malloc માપ n સાથે અહીં કહેવામાં આવે છે. કે શું તમે કરવા માટે સૂચન કરે છે? આ અલ્ગોરિધમનો રેખીય જગ્યા વાપરે છે. અમે વધુ સારી રીતે કરી શકો છો? ત્યાં જે કંઈ પણ તમે નોંધ્યું છે કે આ અંતિમ જવાબ ગણતરી બિનજરૂરી છે? હું માનું વધુ સારી પ્રશ્ન, કઈ માહિતી છે અમે જરૂર નથી અંતે મારફતે તમામ રીતે વહન? હવે, જો આપણે આ બે લીટીઓ જુઓ, અમે ફક્ત અગાઉના subproblem વિશે ચિંતિત હોય, અને અમે માત્ર મહત્તમ અમે ક્યારેય અત્યાર સુધી જોયેલા વિશે કાળજી. અમારા અંતિમ જવાબ ગણતરી, અમે સમગ્ર એરે જરૂર નથી. અમે ફક્ત છેલ્લા નંબર, છેલ્લા બે નંબર કરવાની જરૂર છે. આ subproblem એરે, મહત્તમ અને છેલ્લા નંબર માટે છેલ્લું સંખ્યા. તેથી, વાસ્તવમાં, અમે આ આંટીઓ મળીને ફ્યૂઝ કરી શકો છો અને લીનીયર જગ્યા માંથી સતત જગ્યા પર જાઓ. વર્તમાન રકમ અત્યાર સુધી, અહીં, subproblem, અમારા subproblem એરે ભૂમિકા બદલે છે. તેથી વર્તમાન સરવાળો, અત્યાર સુધી, અગાઉના subproblem જ જવાબ છે. અને તે રકમ, અત્યાર સુધી, અમારા મહત્તમ જગ્યાએ લઈ જાય છે. અમે વધુમાં વધુ ગણતરી આપણે સાથે જાઓ. અને તેથી અમે રેખીય જગ્યા માંથી સતત જગ્યા પર જાઓ, અને અમે પણ અમારા subarray સમસ્યા માટે રેખીય ઉકેલ છે. પ્રશ્નો આ પ્રકારના તમે એક મુલાકાત દરમિયાન મળી જશે. સમય જટિલતા શું છે; જગ્યા જટિલતા શું છે? તમે વધુ સારી રીતે કરી શકો છો? ત્યાં છે વસ્તુઓ છે કે જે આસપાસ રાખવા બિનજરૂરી હોય છે? હું આ કર્યું વિશ્લેષણ કે તમે તમારા પોતાના પર લેવી જોઈએ પ્રકાશિત જેમ તમે આ સમસ્યાઓ કામ કરી રહ્યા છીએ. હંમેશા તમારી જાતને પૂછી શકાય, "હું સારી રીતે કરી શકે છે?" હકીકતમાં, અમે આ કરતાં વધુ સારી કરી શકો છો? યુક્તિ પ્રશ્ન ક્રમમાં ગોઠવો. તમે, કારણ કે તમે જરૂર નથી ઓછામાં ઓછી સમસ્યા માટે ઇનપુટ વાંચો. તેથી હકીકત એ છે કે તમે જરૂર ઓછામાં ઓછી સમસ્યા માટે ઇનપુટ વાંચો એનો અર્થ છે કે તમે રેખીય સમય કરતા વધુ સારી રીતે ન કરી શકો, અને તમે સતત જગ્યા કરતાં વધુ સારું ન કરી શકો છો. તેથી આ હકીકત માં, શ્રેષ્ઠ આ સમસ્યા માટે ઉકેલ છે. પ્રશ્નો? ઠીક છે. સ્ટોક માર્કેટ સમસ્યા: "આપેલ n પૂર્ણાંકો, હકારાત્મક, શૂન્ય, અથવા નકારાત્મક ઝાકઝમાળ, કે n એ દિવસોમાં એક શેરની કિંમત પ્રતિનિધિત્વ કરે છે, એક કાર્ય લખવા માટે મહત્તમ નફો તમે કરી શકો છો ગણતરી આપેલ છે કે જે તમને ખરીદી અને આ n એ દિવસની અંદર 1 બરાબર સ્ટોક વેચે છે. " આવશ્યકપણે, આપણે નીચા ખરીદી, ઉચ્ચ વેચાણ કરવા માંગો છો. અને અમે બહાર શ્રેષ્ઠ નફો અમે કરી શકો છો આકૃતિ કરવા માંગો છો. મારા ટોચ પર પાછા જવું છે, શું તરત જ સ્પષ્ટ, સરળ જવાબ છે, પરંતુ તે ધીમું છે? હા? (વિદ્યાર્થી દુર્બોધ) >> હા. >> તેથી તમે હમણાં જોકે જાઓ અને કરશે સ્ટોક કિંમતો જોવા અંતે સમય માં દરેક બિંદુ (દુર્બોધ). [યુ] ઠીક છે, જેથી તેના ઉકેલ - કમ્પ્યુટિંગ તેમના સૂચન સૌથી નીચો અને સર્વોચ્ચ ગણતરી જરૂરી કામ કરતું નથી કારણ કે સૌથી વધુ સૌથી નીચો તે પહેલા ઉત્પન્ન કરી શકે છે. તેથી જડ બળ આ સમસ્યા માટે ઉકેલ શું છે? બે વસ્તુઓ છે કે જે હું અનન્ય નફો હું બનાવવા તે નક્કી કરવાની જરૂર શું છે? અધિકાર. આ જડ બળ ઉકેલ છે - ઓહ, તેથી, જ્યોર્જ સૂચન છે કે અમે માત્ર બે દિવસ જરૂર વિશિષ્ટ તે બે દિવસ નફો નક્કી કરે છે. તેથી અમે દરેક જોડી ગણતરી, ખરીદી / વેચાણ ગમે, નફો, જે નકારાત્મક કે સકારાત્મક અથવા શૂન્ય હોઈ શકે ગણતરી. મહત્તમ નફો કે અમે દિવસ તમામ જોડીઓ પર વારો પછી બનાવવા ગણતરી. તે અમારી અંતિમ જવાબ હશે. અને તે ઉકેલ ઓ (n ^ 2) છે, કારણ કે ત્યાં છે n એ બે જોડી પસંદ કરો - દિવસ કે તમે ઓવરને દિવસના વચ્ચે પસંદ કરી શકો છો છે. ઠીક છે, તેથી હું જડ બળ ઉકેલ પર અહીં જાઓ નથી માંગવાનો. હું તમને કહી છે કે એક n લોગ n ઉકેલ છે જવું છું. અલ્ગોરિધમનો શું તમે હાલમાં ખબર નથી કે n લોગ n છે? તે યુક્તિ પ્રશ્ન નથી. આનાથી સૉર્ટ કરો મર્જ કરો. મર્જ કરો સૉર્ટ n લોગ n છે, અને હકીકતમાં, આ સમસ્યા હલ કરવાની એક રીત ઉપયોગ કરવા માટે છે વિચાર એક મર્જ સૉર્ટ પ્રકારની કહેવાય છે, સામાન્ય રીતે વહેંચી અને જીતી. અને વિચાર નીચે પ્રમાણે છે. તમે શ્રેષ્ઠ ખરીદી ગણતરી / ડાબી અર્ધ જોડ વેચવા માંગો છો. શ્રેષ્ઠ નફો તમે બે દિવસોમાં પ્રથમ n એ સાથે જ કરી શકે શોધો. પછી તમે શ્રેષ્ઠ ખરીદી oompute / જમણી અડધા ભાગ પર જોડી વેચવા માંગો છો, જેથી બે દિવસોમાં છેલ્લા એન. અને હવે પ્રશ્ન એ છે કે, અમે આ ઉકેલો કેવી રીતે કરી શકું ફરી પાછા સાથે મર્જ? હા? (વિદ્યાર્થી દુર્બોધ) ઠીક છે. >> તેથી દો મને એક ચિત્ર દોરે છે. હા? (જ્યોર્જ, દુર્બોધ) ચોક્કસ. >> જ્યોર્જ ઉકેલ બરાબર અધિકાર છે. તેથી તેમના સૂચન છે, પ્રથમ શ્રેષ્ઠ જોડી / ખરીદી વેચાણ ગણતરી અને તે ડાબી અડધા થાય છે, તેથી આપણે કહી કે ડાબી છોડી. શ્રેષ્ઠ ખરીદી / જોડ કે જમણા અડધા થાય વેચે છે. પરંતુ જો આપણે માત્ર આ બે નંબર સરખામણીમાં, અમે કેસ ગુમ કરી રહ્યાં છો જ્યાં અમે અહીં ખરીદી અને જમણી અડધા ક્યાંક વેચે છે. અમે ડાબી અડધા શેર ખરીદવા, જમણી અર્ધ વેચે છે. અને શ્રેષ્ઠ શ્રેષ્ઠ જોડી / ખરીદી વેચાણ કે બંને અર્ધભાગ છવાયેલો ગણતરી માર્ગ માટે લઘુત્તમ અહીં ગણતરી કરે છે અને મહત્તમ અહીં ગણતરી છે અને તેમના તફાવત લો. બે કિસ્સાઓમાં જ્યાં જોડી / ખરીદી વેચાણ માત્ર અહીં થાય છે તેથી, માત્ર અહીં, અથવા બંને અર્ધભાગ પર આ ત્રણ નંબરો દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. અમારા અલગોરિધમ જેથી અમારી ઉકેલો ફરી પાછા સાથે મર્જ, અમે શ્રેષ્ઠ જોડી / ખરીદી વેચાણ ગણતરી કરવા માંગો છો જ્યાં અમે ડાબી અડધા ભાગ પર ખરીદી અને જમણી અડધા ભાગ પર વેચે છે. અને શ્રેષ્ઠ રસ્તો એ છે કે પ્રથમ ભાગમાં સૌથી નીચો ભાવ ગણતરી છે, જમણી અડધા સૌથી વધુ કિંમત, અને તેમના તફાવત લો. પરિણામી ત્રણ નફો, આ ત્રણ નંબરો, તમે ત્રણ મહત્તમ લે છે, અને તે શ્રેષ્ઠ નફો તમે આ પ્રથમ અને અંતિમ દિવસોમાં કરી શકે છે. અહીં મહત્વની રેખાઓ લાલ હોય છે. આ એક યાદ આવવું ડાબી અર્ધ જવાબ ગણતરી કોલ છે. આ એક યાદ આવવું અધિકાર અર્ધ જવાબ ગણતરી કોલ છે. આ માટે બે આંટીઓ અને ડાબી અને જમણી અડધા પર મહત્તમ મિનિટ અનુક્રમે ગણતરી. હવે હું આ નફો કે બંને અર્ધભાગ છવાયેલો ગણતરી અને અંતિમ જવાબ ત્રણ આ મહત્તમ છે. ઠીક છે. તેથી, ખાતરી કરો કે, અમે એક અલ્ગોરિધમનો હોય છે, પરંતુ મોટા પ્રશ્ન છે, આ સમય જટિલતા શું છે? અને કારણ હું મર્જ સૉર્ટ ઉલ્લેખ કર્યો છે કે આ ફોર્મ જવાબ વિભાજીત બે ભાગમાં અને પછી અમારી ઉકેલો ફરી પાછા સાથે ભળીને બરાબર મર્જ પ્રકારના સ્વરૂપ છે. તેથી દો મને સમયગાળો પસાર થાય છે. જો અમે કોઈ કાર્ય (એન) ટી વ્યાખ્યાયિત કરવા માટે પગલાંઓ નંબર n એ દિવસો માટે, અમારા બે ફરી યાદ આવવું કોલ્સ દરેક માટે ટી (/ 2 એન) કિંમત જવાનું, અને ત્યાં આ બે કોલ છે. હવે હું ડાબી અડધા લઘુત્તમ ગણતરી કરવાની જરૂર હોય, જે હું n / 2 સમય, વત્તા અધિકાર અડધા મહત્તમ માં કરી શકો છો. તેથી આ માત્ર n છે. અને પછી કેટલાક સતત કામ વત્તા. અને આ આવૃત્તિ સમીકરણ બરાબર મર્જ સૉર્ટ માટે આવૃત્તિ સમીકરણ છે. અને આપણે બધા જાણીએ છીએ કે મર્જ સૉર્ટ n લોગ n એ સમય છે. તેથી, અમારી અલ્ગોરિધમનો પણ લોગ n એ સમય n છે. શું આ પુનરાવૃત્તિ અર્થમાં છે? માત્ર આ એક સંક્ષિપ્ત રીકેપ: ટી (એન) પગલાંઓ સંખ્યા મહત્તમ નફો ગણતરી છે n એ દિવસ દરમિયાન. જે રીતે અમે અમારી યાદ આવવું કોલ્સ વિભાજિત પ્રથમ એન / 2 દિવસ પર અમારા ઉકેલ ફોન દ્વારા છે, જેથી એક કોલ છે, અને પછી અમે બીજા અડધા ભાગ પર ફરીથી કરો. જેથી બે કોલ્સ છે. અને પછી અમે ડાબી અડધા પર ન્યૂનતમ શોધવા માટે, જે અમે રેખીય સમય માં કરી શકો છો, જમણી અડધા મહત્તમ છે, કે જે અમે રેખીય સમય માં કરી શકો છો શોધો. તેથી n / + 2 n / 2 માત્ર n છે. પછી અમે કેટલીક સતત કામ કરે છે, જે અંકગણિત કરવાનું પસંદ હોય છે. આ પુનરાવૃત્તિ સમીકરણ બરાબર મર્જ સૉર્ટ માટે આવૃત્તિ સમીકરણ છે. તેથી, અમારી શફલ અલ્ગોરિધમનો પણ છે n n પ્રવેશો. તો કેટલી જગ્યા અમે ઉપયોગ કરી રહ્યા છો? ચાલો કોડ માટે પાછા જાઓ. સારા પ્રશ્ન કેટલા સ્ટેક ફ્રેમ્સ અમે નથી છે ક્યારેય કોઇ પણ ક્ષણે છે? કારણ કે આપણે રિકર્ઝન ઉપયોગ કરી રહ્યા છો, સ્ટેક ફ્રેમ્સ સંખ્યા અમારી જગ્યા વપરાશ નક્કી કરે છે. ચાલો n એ = 8 વિચારો. અમે 8 પર શફલ કહી, , કે જે પ્રથમ ચાર એન્ટ્રીઝ પર શફલ કૉલ કરશે જે પ્રથમ બે પ્રવેશો પર શફલ કૉલ કરશે. તેથી અમારા સ્ટેક છે - આ અમારી સ્ટેક છે. અને પછી અમે શફલ ફરી કૉલ 1 પર અને તે અમારા આધાર કેસ શું છે, તેથી અમે તરત જ આવો. શું આપણે ક્યારેય આ ઘણા સ્ટેક ફ્રેમ્સ કરતાં વધારે હોય છે? નંબર દરેક સમય અમે પ્રાર્થના કરવા કારણે, શફલ માટે ફરી યાદ આવવું સ્તુતિ, અમે અડધા અમારા કદ વહેંચે છે. સ્ટેક ચોકઠાંઓ મહત્તમ સંખ્યા કે જેથી અમે ક્યારેય કોઇ પણ ક્ષણે છે લોગ n સ્ટેક ફ્રેમ્સ ક્રમ પર છે. દરેક સ્ટેક ફ્રેમ સતત જગ્યા છે, અને તેથી જગ્યાનો કુલ જથ્થો, જગ્યા મહત્તમ રકમ અમે ક્યારેય ઉપયોગ ઓ જગ્યા (લોગ એન) છે n એ દિવસોની સંખ્યા છે કે જ્યાં. હવે હંમેશા તમારી જાતને પૂછી જુઓ, "અમે વધુ સારી રીતે કરી શકે છે?" અને ખાસ કરીને, અમે સમસ્યા ઉકેલી અમે પહેલાથી જ કરી આ ઘટાડો કરી શકે છે? એક હિંટ: અમે આ પહેલા બે અન્ય સમસ્યાઓ અંગે ચર્ચા, અને તે માટે શફલ નથી ચાલી રહ્યું છે. અમે મહત્તમ subarray સમસ્યા આ સ્ટોક માર્કેટમાં સમસ્યા કન્વર્ટ કરી શકો છો. અમે આ કેવી રીતે કરી શકો છો? એક તો? એમી? (એમી, દુર્બોધ) [યુ] ચોક્કસ. મહત્તમ subarray સમસ્યા તેથી, અમે રકમ માટે સતત subarray પર શોધી રહ્યાં છે. અને શેરોમાં સમસ્યા માટે એમી સૂચન, ફેરફારો, અથવા deltas વિચારો. અને આ એક ચિત્ર છે - આ સ્ટોક કિંમત છે, પરંતુ અમે દરેક સળંગ દિવસ વચ્ચે તફાવત લીધો જો - તેથી અમે જુઓ કે મહત્તમ નફો મહત્તમ કિંમત, અમે બનાવી શકે છે જો આપણે અહીં ખરીદી અને અહીં વેચાણ કરે છે. દો પરંતુ સતત નજર - ચાલો આ subarray સમસ્યા જુઓ. અહીં, અમે કરી શકો છો - અહીંથી અહીં સુધી જવાનું, અમે સકારાત્મક પરિવર્તન હોય છે, અને તે પછી અહીં અહીં જઈને અમે નકારાત્મક ફેરફાર હોય છે. પરંતુ તે પછી, અહીં અહીં જવા અમે વિશાળ હકારાત્મક ફેરફાર હોય છે. અને આ ફેરફારો કે અમે ટૂંકમાં અમારા અંતિમ નફો મેળવવા માંગો છો છે. પછી અમે વધુ નકારાત્મક ફેરફારો અહીં છે. અમારા મહત્તમ subarray સમસ્યા અમારી સ્ટોક સમસ્યા ઘટાડવા માટે કી માટે દિવસના વચ્ચે deltas ગણે છે. તેથી અમે એક નવું deltas કહેવાય એરે બનાવો, પ્રથમ 0 પ્રયત્ન પ્રવેશ આરંભ કરવા માટે, અને પછી દરેક ડેલ્ટા માટે (i) દો, કે જે તફાવત હોઈ મારા ઇનપુટ (i) અરે, અને એરે (i - 1). તો પછી અમે અમારા એક મહત્તમ subarray માટે નિયમિત પ્રક્રિયા કૉલ એક ડેલ્ટા એરે માં પસાર. અને કારણ કે મહત્તમ subarray રેખીય સમય છે, અને આ ઘટાડો, આ ડેલ્ટા એરે બનાવવા આ પ્રક્રિયા, પણ રેખીય સમય છે, પછી શેરો માટે અંતિમ ઉકેલ ઓ (એન) વર્ક વત્તા ઓ વર્ક (એન) છે, હજુ ઓ વર્ક (એન) છે. તેથી અમે તે રેખીય સમય અમારી સમસ્યા માટે ઉકેલ છે. નથી દરેકને આ રૂપાંતર સમજવું? સામાન્ય રીતે, એક સારો વિચાર છે કે તમે હંમેશા હોવી જોઇએ છે એક નવી સમસ્યા કે તમે જોઈ રહ્યાં છો ઘટાડવા પ્રયાસ કરો. જો તે જૂની સમસ્યા માટે પરિચિત લાગે છે, તે જૂની સમસ્યા ઘટાડવા પ્રયાસ કરો. અને જો તમે બધા જ સાધનો છે કે તમે જૂના સમસ્યા પર ઉપયોગ કર્યો છે ઉપયોગ કરી શકો છો નવા સમસ્યા ઉકેલવા માગે છે. આથી લપેટી, ટેકનિકલ મુલાકાતો પડકારી છે. આ સમસ્યાઓ કદાચ વધુ મુશ્કેલ સમસ્યાઓ અમુક કે તમે એક મુલાકાતમાં જોઈ શકો, તેથી જો તમે બધા સમસ્યાઓ કે હું હમણાં જ આવરી લેવામાં નથી સમજી નથી, તે ઠીક છે. આ વધુ પડકારરૂપ મુશ્કેલીઓ થાય છે. પ્રેક્ટિસ, અભ્યાસ, અભ્યાસ. હું વક્તવ્ય - અહેવાલ સમસ્યાઓ ઘણાં આપ્યો છે, તેથી ચોક્કસપણે તે તપાસવા માટે. અને તમારા મુલાકાતો પર કોઈ નસીબ. મારા બધા સ્રોતો આ લિંક પર પોસ્ટ કરવામાં આવે છે, અને મારા એક વરિષ્ઠ મિત્ર વિનોદ તકનીકી ઇન્ટરવ્યુ કરવા ઓફર કરી છે, તેથી જો તમે રસ કરશો, ઈમેઈલ કે જે ઇમેઇલ સરનામાં પર યાઓ વિલ. જો તમને કેટલાક પ્રશ્નો છે, તો તમે મને કહી શકો છો. શું તમે ગાય્સ ચોક્કસ ટેક્નીકલ ઇન્ટરવ્યૂ માટે કોઇ પ્રશ્ન હોય અથવા કોઇપણ સમસ્યાઓ અમે અત્યાર સુધી જોઇ છે? ઠીક છે. વેલ, તમારા મુલાકાતો પર કોઈ નસીબ. [CS50.TV]