Diary of a programmer
26 subscribers
7 photos
18 links
At the Moment IT
Download Telegram
BUgungi masalaning yechimini sizlar bilan ulashmoqchiman.

public class Solution {
public string LargestNumber(int[] nums) {
string[] a = new string[nums.Length];

///Maqsad barcha nums larni stringga o'tkazib olish
for (int i = 0; i < nums.Length; i++)
{
a[i] = nums[i].ToString();
}

int[] b = new int[nums.Length];// maqsad elementlarni "katta" dan "kichik" ka tomoon saqlab borish
int k = 0;//it is b index
int max = 0;///Maqsad sonlar ichidan en "katta" sini aniqlab olib maxda saqlash
bool isEnterIf = false;// Bu "katta" elementlarni b massivga joylash jarayonida bning indexini ko'tarishga ruxsat. Yani keyingi katta elementni qidirishga ruxsat
int index = -1;//Bu ayni jarayondagi 'katta' elementning indeksi
bool isEqualNumbreLength = true;// sonlarni solishtirish jarayonida xonalar soni xar hil bo'lsa bishqa logika va bir xil bo'lsa boshqa logikadan borishga yo'l
// Berilgan sonlarni eng avval 9 bilan boshlanganlarini keyin 8 ... kabi qilib b ga joylashtirish
for (int i = 9; i > 0; i--)
{
for (int j = 0; j < nums.Length; j++)
{
//"katta" element olingandan so'ng u keyingi katta elementni olishga halaqit bermasligi lozim;
if (nums[j] == 0)
{
continue;
}

if (max.ToString().Length != a[j].Length && max != 0 && a[j].StartsWith(i.ToString()))
{
///uzuliklari teng bo'lmagan holat uchun ikkki sonning qaysi birinchisini "katta" ligini aniqlash
long nummax = (long)Convert.ToDouble(a[j].ToString() + max.ToString());
long maxnum = (long)Convert.ToDouble(max.ToString() + a[j].ToString());

if (maxnum > nummax)
{
continue;
}
else
{
max = nums[j];

index = j;
}
isEnterIf = true;
}


///uzuliklar teng bo'lgan holatda "katta" sonni aniqlash
if (a[j].StartsWith(i.ToString()))
{

if (max < nums[j])
{
max = nums[j];
index = j;
isEnterIf = true;
}
}
}

if (isEnterIf && max != 0)
{
i++;
b[k] = max;
max = 0;
nums[index] = 0;
k++;
}
}

///Massivdagi barcha stringlarni qo'shib bizga response etringni yani "eng katta sonni" aniqlash algoritmi;
string response = "";
for (int i = 0; i < b.Length; i++)
{
response += b[i].ToString();
}

//Agar massiv faqat 0 sonidan iborat bo'lsa "000...0" emas "0" qaytarishimiz lozim shuning algoritmi
if(response.Length > 0 && response.Replace("0", "") == ""){
return 0.ToString();
}

return response;
}
}


It is for You.
Read and Learn!
Do'stlar men ikki soat davomida 85 qator code yozib ishlagan masalamni bitta Professional bro Lambda Expression bilan roppa - rosa 5 barobar kam yani 17 qator bilan ishlab qo'yibdilar😱.
Yomon alam qiladi-a!
Lekin bu usulni ham o'rganib oldim juda zo'r usul ekan bitta logika va hammasi tamom.
Marhamat do'stlar sizlar uchun o'sha brodan "java" dasturlash tilidagi yechim:
https://leetcode.com/problems/largest-number/solutions/5785445/beats-99-best-solution-simplified-easy-approach-all-languages/
Channel name was changed to «Algoritm with Hojimurod»
Do'stlar biz albatta algoritmik masalalarsiz Dasturlashni tasavvur eta olmaymiz.
Unda "ODOP"(One Day One Problem) Challangeda qatnashamiz degan umidda har kuni Leetcodedan bitta masalani tanlab olamiz!
Biz bilan birga rivojlaning!
https://t.me/datastructureandalgoritm
👍4
Dõstlar sizga qiziq bõlgan mavzularni izohlarda qoldiring!
Biz challange davomida sizga qiziq bõlgan mavzularga doir misollarni muhokama qilamiz.
Do'stlar bugungi ODOP challengimiz bo'yicha tanlangan masalani kimlar yecha oldi?
O'z g'oyalaringizni izohlarda qoldiring!
Bu esa uning yechimi!
It is for You.
Read and Learn!
Do'stlar Leetcode day Problemni ham yechdik. Noodatiy ko'rinishdagu bu masalamiz rekursiv ko'rinishda o'z yechimini topdi.
Lekin juda ko'p vaqt talab qiladi albatta rekursiya bo'lgandan keyin.
Sizlardan yaxshiroq yechim kutib qolaman!
Do'stlar masallarni ham ishlab Algoritmik bilimlarimizni oshirmoqdamiz. Data structuralarni ham yaxshi o'rganish uchun izlanib asosiy mavzular bo'yicha maqolalar tayyorlasam sizlar uchun ham foydali bo'ladi degan umiddaman. Va buning uchun qo'ldan kelgancha harakat qilaman!
Channel photo updated
Assalomu aleykum Hammag xayrli kun!
Mening ismim Hojimurod va men Java va .Net backend dasturchiman(tajribasiz junior🙃).
Mening murojaatim Asp.Net Corechilarga.
Men .Netni internetdan o'rgandim.
Farhod Dadajonov va MDC Uzbekistan youtube kanallariga minnatdorchiligimni bildiraman.
Asp.Net coreda project qilishni o'rganmoqchi bo'lganimda juda ko'p qiyinchiliklarga duch keldim.
Chunki men barcha ishlarni qismlarda o'rganganman.Avvl bitta videoda CRUD keyin ikkinchisida Log , uchunchisida token .....
Meni murojaatim shuki biz junior bachchalarga foydali bo'ladi degan umidda Real proekt qilib video kurs qilsangizlar degandim.
Tajribali Senior , Middle akalar bitta yaxshi idea bilan bu proyekt real darajaga chiqquncha bo'ladigan barcha jarayonlarni o'z ichiga oluvchi bir hayotni ko'rsatib beradigan videolavha qilib bersanglar degandim.(Unda oddiy bir kutubxonani tanlashdan tortib Arxitekturani qanday qurish qaysi provayderlar biz uchun qulayligini tanlashu vaho kazolarni ichga olsa degandim xatto bug izlashni ham.)
Hurmat ila Junior Hojimurod Ergashov!
🔥2
Assalomu aleykum do'stlar.
Leetcodeni yangi boshlaganlar uchun yaxshi taklif ekan Leetcode tomonidan Leetcode 75:
https://leetcode.com/studyplan/leetcode-75/
#leetcode_75
2-Masalani yechishga urinib ko'raylikchi qani do'stlar!
Do'stlar Algoritmlashda nazariy bilimlar ham juda muhim shuning uchun nazariy maqolalrimizni sizlar uchun havola etamiz! #algorithmicArticle hashtegi sizlar uchun muntazir.
It is for You!
Read and Learn!
#algorithmicArticle
Asymptotic analiz.Notationlar.
Notation - bu Algoritm qanday ishlashini o'lchab beradi. Ya'ni biz yozgan algoritm qanday maxsuldorligini vaqtdek izohlab beradi lekin vaqtini emas.
Asosiy ishlatiladigan notationlar:
1.Big O notation: Algoritmning ishlash vaqti yoki boʻsh joydan foydalanish tezligining yuqori chegarasini taʼminlaydi.Bu eng yaxshi bo'lmagan algoritmlarni ko'rsatadi vaholanki bundanda yaxshi yechim bo'lish ehtimoli katta.
2.Ω notation: Algoritmning ishlash vaqti yoki boʻsh joydan foydalanish tezligining past chegarasini taʼminlaydi.Bu eng yaxshi algoritmik yechimni beradi desak bo'ladi.
3.θ notation: Algoritmning ishlash vaqti va bo'sh vaqtdan foydalanishining ham pastki va ham yuqori chegarasini ko'rsatadi.U o'rtacha holatni ko'rsatadi.


Shuni ta'kidlash kerakki, asimptotik belgi algoritm uchun aniq ishlash vaqtini yoki bo'sh joydan foydalanishni aniq ko'rsatmaydi, balki algoritmning kirish o'lchamiga nisbatan qanday o'zgarishini tavsiflaydi
#algorithmicArticle
Tasavvur qiling bizda bir muammoning ikki xil algoritmik yechimi bor. Va bu ikki algoritm turli yondashuvlar va boshqa xususiyatlari bilan farq qiladi.
Ulardan qaysi biri ibiz uchun ma'qul , ya'ni mahsuldor ekanini qanday bilamiz?
Bu ikki algoritmni turli test caselari orqali tekshirishimiz va bunda hotira va vaqtning qanday band qilishini bir jadvalga joylasak ancha javobga yaqinlashamiz. Lekin bu aynan bir kompyuterda qilinmoqda. MAsalan har hil OS da turli yondashuv bilan qurilgan turli tillarda yozilgan algoritm bo'lsa bizning algoritmlarimiz. Vaholanki eng afzali bizning muammoyimining qaysi yechimi biz uchun muhimligi bilan o'lchanadi.
Va Asymptotic anlysis bunda bizga yordam beradi.
Asymptotic analysis - bu algoritmlarni tahlil qilishda ba'zi muammolarni hal qiladigan katta g'oya. Asimptotik tahlilda biz algoritmning ishlashini kirish hajmi bo'yicha baholaymiz . Biz algoritm tomonidan qabul qilingan vaqt (yoki bo'sh joy) kirish hajmi bilan qanday oshishini hisoblaymiz.