ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-25, Saturday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

LeetCode ගූඩ් පේයර් ප්‍රශ්නයේ O(n) විසඳුම – සිංහලෙන් අලුත් ආකාරයක්

LeetCode ගූඩ් පේයර් ප්‍රශ්නයේ O(n) විසඳුම – සිංහලෙන් අලුත් ආකාරයක්

LeetCode වෙබ් අඩවියේ දෛනික ප්‍රශ්නවලට සටහන් තබන LeetCode Journal එකේ පළමු ලිපිය මෙන්න. අද අපි බලන ප්‍රශ්නය නම් 1512 – Number of Good Pairs ය. ගූඩ් පේයර් කියන්නේ එකම අගයක් ඇති දෙකක්, ඒත් i < j වශයෙන් අනුක්‍රමිකව සිටිනවා නම්. මෙම ගණන ගණනය කිරීමේ ක්‍රම දෙකක් මෙහි විස්තර කරලා.

පළමු ක්‍රමය – නිරුද්ධ (brute‑force) පිළිවෙල

ඉලක්කම් පටලැවීමේ අඩවිය පුරා සෑම ඉලක්කමක් එක්කත් සෑම අන් ඉලක්කමක් එක්කත් සසඳා, අගය එකක් නම් හා i < j නම් ගණන එකතු කරනවා. කේත උදාහරණය මෙහෙමයි:

  • දෝෂයක් නැතිව for i සහ for j ලූප් දෙකක් යොදා ගත හැකිය.
  • එතැන්පත් O(n²) කාල සංකීර්ණතාවයක් ඇතිවෙයි.
  • අතුරුගත ඉඩකඩ O(1) පමණයි.

මෙම ක්‍රමය වැඩි ප්‍රමාණයක් දත්ත තිබුනොත් බරපතල වේග අඩුකමක් ඇති කරයි.

දෙවන ක්‍රමය – HashMap භාවිතා කර O(n) විසඳුම

ඔබට එක් එක් අගයක් කී වරක් පැමිණියේදැයි ගණනය කර, නව පැමිණීමක් ඇති වෙලාවට එම ගණනට එකතු කරමින් ගූඩ් පේයර් ගණන වැඩි කරගත හැකිය. මෙහි ප්‍රධාන අදහස වන්නේ, අගයක් k වරක් පෙනේ නම්, ඊළඟ පැමිණීමෙන් k නව ගූඩ් පේයර් එකතු වේ.

  • HashMap එකක key = අගය, value = පැමිණීම් ගණන ගබඩා කරයි.
  • අලුත් අගයක් ලැබුනොත්, result += map.getOrDefault(num,0) ලෙස ගූඩ් පේයර් එකතු කරයි.
  • කාල සංකීර්ණතාවය O(n) වෙයි, අමතර ඉඩකඩ O(n) වේ.

මෙම ක්‍රමය වැඩි දත්ත සෙට් වලදී කාලය ගණනාවකට ඉතිරි කරයි, ඒත් තරමක් මතක භාවිතයක් අවශ්‍ය වේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තරුණ සංවර්ධකයන්, විශ්වවිද්‍යාල සිසුන් සහ තාක්ෂණික ව්‍යාපාර සඳහා මේ අලුත් ක්‍රමය විශාල ප්‍රයෝජන දක්වයි:

  • කේත ලේඛන කුසලතා වර්ධනය: O(n) ඇල්ගොරිතමක් භාවිතා කරමින් ප්‍රශ්න විසඳුම් වේගවත් කරගැනීම, ඉගෙනුම් වේගය ඉහළ දැමීමට උපකාරී.
  • කැරැව්‍යකාරී තරුණ ව්‍යාපාර: සංකීර්ණ ගණිත ගැටලු ඉක්මනින් විසඳා, නිෂ්පාදන සංවර්ධනයේ කාල සීමා කෙටි කරයි.
  • ඉලෙක්ට්‍රොනික පරිසරය: HashMap වැනි දත්ත සංරචනා භාවිතය ඉගෙනීම, දේශීය සොෆ්ට්වේර් ඉංජිනේරුවන්ට ජාත්‍යන්තර මට්ටමේ කුසලතා ලබාදේ.

ඉදිරියට, මේ වගේ ප්‍රායෝගික උදාහරණවලින් ශ්‍රී ලංකාවේ තාක්ෂණික පද්ධතියට නව සුවිශේෂී දෘශ්‍යයක් ලබාදීමට අපේක්ෂා කරමු.

ඔබත් LeetCode ගවේෂණය කරමින්, මේ වගේ කාර්යක්ෂම ඇල්ගොරිතම් ඔබේ පෞද්ගලික සහ වෘත්තීය කාර්යයන්ට අදාළ කරගන්න. අනාගතයේ තවත් කේත අභියෝග සඳහා සූදානම් වෙන්න!

💡 ඔබේ කේත ලේඛන හැකියාවන් වැඩිදියුණු කරගන්න මේ පියවර අනුගමනය කරන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#LeetCode #GoodPairs #Algorithm #HashMap #Coding