امن برياني
ASS code ep1.cpp
بالنسبة للحل الثاني اللي اجة ببالي, طلع عمليا ميفرق هواي من ناحية السرعة لان الكومبايلر ديسوي تحسينات تخلي الكودين بنفس السرعة تقريبا
بس على العموم الفكرة جانت بدل ما اخذ القطر الاساسي واخزنه بمصفوفة, وراها اخذ القطر الثانوي واخزنه بغير مصفوفة وراها اسوي الاستبدال
كلت اخليه يسوي loop على القطر الرئيسي وتلقائيا يحسب مكان القطر الثانوي للصف الحالي ويبدل العناصر بس بعد ما سويت مقارنة بالسرعة طلع الفرق تقريبا لاشيء ومرات الاولى اصلا تطلع اسرع
هذا الكود بكل الاحوال اذا مهتم:
بس على العموم الفكرة جانت بدل ما اخذ القطر الاساسي واخزنه بمصفوفة, وراها اخذ القطر الثانوي واخزنه بغير مصفوفة وراها اسوي الاستبدال
كلت اخليه يسوي loop على القطر الرئيسي وتلقائيا يحسب مكان القطر الثانوي للصف الحالي ويبدل العناصر بس بعد ما سويت مقارنة بالسرعة طلع الفرق تقريبا لاشيء ومرات الاولى اصلا تطلع اسرع
هذا الكود بكل الاحوال اذا مهتم:
// go only though the primary diagonal,
// we can find the secondary diagonal via s-i
for (int i = 0; i < s; i++) {
int z = s - 1 - i;
// swap the primary and secondary diagonal elements from the current row,
// thanks to compiler optimizations, this method is actually faster than
// using XOR swapping, and it's better as well since the center element
// will not be zeroed due to (A XOR A = 0)
int temp = a[i][i];
a[i][i] = a[i][z];
a[i][z] = temp;
}
امن برياني
بالنسبة للحل الثاني اللي اجة ببالي, طلع عمليا ميفرق هواي من ناحية السرعة لان الكومبايلر ديسوي تحسينات تخلي الكودين بنفس السرعة تقريبا بس على العموم الفكرة جانت بدل ما اخذ القطر الاساسي واخزنه بمصفوفة, وراها اخذ القطر الثانوي واخزنه بغير مصفوفة وراها اسوي الاستبدال…
main.rs
793 B
نفس الكود براست يطلع اسرع بـ 1.5 مرة
another W for rust
another W for rust
الحلول مراح انشرها بالقناة حتى لا اخرب على اللي يريدون يحلون بنفسهم بس موجودة بحسابي مال github هنا
https://github.com/doomed-neko/neetcode-submissions
https://github.com/doomed-neko/neetcode-submissions
GitHub
GitHub - doomed-neko/neetcode-submissions: My NeetCode.io problem submissions
My NeetCode.io problem submissions. Contribute to doomed-neko/neetcode-submissions development by creating an account on GitHub.
❤1
fn eratosthenes_sieve(n: usize) -> Vec<usize> {
(2..=n.isqrt())
.fold(vec![true; n + 1], |mut numbers, current_number| {
if numbers[current_number] {
(current_number * current_number..=n)
.step_by(current_number)
.for_each(|i| numbers[i] = false);
}
numbers
})
.into_iter()
.enumerate()
.skip(2)
.filter_map(|(index, is_prime)| is_prime.then_some(index))
.collect()
}معقولة الfunctional programming هي احسن شي🤔