Sumber Rujukan:
- Artikel asal dari Percona Blog
- Published on haqis.com
3658. GCD of Odd and Even Sums
Difficulty: Easy
Topics: Mid Level, Math, Number Theory, Weekly Contest 464
You are given an integer n. Your task is to compute the GCD (greatest common divisor) of two values:
sumOdd: the sum of the smallest n positive odd numbers.
sumEven: the sum of the smallest n positive even numbers.
Return the GCD of sumOdd and sumEven.
Example 1:
Input: n = 4
Output: 4
Explanation:
Sum of the first 4 odd numbers sumOdd = 1 + 3 + 5 + 7 = 16
Sum of the first 4 even numbers sumEven = 2 + 4 + 6 + 8 = 20
Hence, GCD(sumOdd, sumEven) = GCD(16, 20) = 4.
Example 2:
Input: n = 5
Output: 5
Explanation:
Sum of the first 5 odd numbers sumOdd = 1 + 3 + 5 + 7 + 9 = 25
Sum of the first 5 even numbers sumEven = 2 + 4 + 6 + 8 + 10 = 30
Hence, GCD(sumOdd, sumEven) = GCD(25, 30) = 5.
Example 3:
Input: n = 1
Output: 1
Example 4:
Input: n = 2
Output: 2
Example 5:
Input: n = 3
Output: 3
Example 6:
Input: n = 10
Output: 10
Example 7:
Input: n = 100
Output: 100
Example 8:
Input: n = 1000
Output: 1000
Constraints:
1 <= n <= 1000 Hint: The first n odd numbers sum to n * n First n even numbers sum to n * (n + 1) gcd(n, n + 1) = 1, so the answer is n Solution: We solved the problem by recognizing that the GCD of the sum of the first n odd numbers and the sum of the first n even numbers simplifies directly to n. We identified that sumOdd = n² and sumEven = n(n+1), and since n and n+1 are consecutive integers (always coprime), their GCD is 1. Therefore, the answer is simply n, making the solution O(1) time and space complexity. Approach Identify the formulas for the sum of the first n odd and even numbers Recognize that sumOdd = n² and sumEven = n(n+1) Apply GCD properties: gcd(n², n(n+1)) = n × gcd(n, n+1) Use the fact that consecutive integers are always coprime: gcd(n, n+1) = 1 Simplify to get the answer: n × 1 = n Return n directly without computing large sums Let's implement this solution in PHP: 3658. GCD of Odd and Even Sums
Explanation:
Sum of first n odd numbers: The sequence is 1, 3, 5, …, (2n-1). The sum formula is n²
Sum of first n even numbers: The sequence is 2, 4, 6, …, 2n. The sum formula is n(n+1)
GCD calculation: We need gcd(n², n(n+1))
Factor out n: n × gcd(n, n+1) since both terms share a factor of n
Consecutive property: n and n+1 have no common factors other than 1
Final result: n × 1 = n, which matches all test cases
Optimization: No loops or array storage needed; the answer is always the input n
Complexity Analysis
Time Complexity: O(1) – constant time operation, regardless of input size
Space Complexity: O(1) – no additional memory allocation required
Contact Links
If you found this series helpful, please consider giving the repository a star on GitHub or sharing the post on your favorite social networks 😍. Your support would mean a lot to me!
If you want more helpful content like this, feel free to follow me:
LinkedIn
GitHub
Sumber Rujukan:
Korang pernah tak buka WordPress dashboard dan nampak widget Site Health Status tu? Dia punya bulatan hijau tu nampak menarik, lepas tu dia tulis “Baik” – tapi sebenarnya ada beberapa benda yang korang kena buat lagi. Kat bawah tu, ada tiga baris yang dia benderakan:
Kebanyakan orang, bila nampak benda ni, terus nak buang. Tapi saya nak cakap benda lain: ini masalah prestasi, dan cara biasa orang fix dia tak fix langsung.
Jom kita tengok apa widget ni buat sebenarnya. Dia bukan sekadar tunjuk skor dari database. Bila korang buka dashboard, WordPress akan jalankan beberapa ujian async melalui REST API. Antara ujian tu ialah loopback test – WordPress akan call URL sendiri dan tunggu response.
Faham tak? Kat server yang share ramai-ramai, request yang nak test tapak korang tu akan bersaing dengan request yang nak tunjuk halaman yang korang tengah pandang tu. Lambatlah jawabnya.
Yang bestnya, ada satu benda yang hampir tak ada orang tahu. WordPress ada scheduled cron event nama wp_site_health_scheduled_check yang akan jalankan semua ujian tu sekali lagi di latar belakang. Setiap minggu. Setiap tapak yang korang pernah buat. Korang tak pernah nampak benda ni sebab korang tak pernah check.
Bila korang google “how to remove site health widget”, inilah jawapan yang korang akan dapat:
Jawapan pertama (paling atas sekali): Pergi ke Dashboard → Screen Options → uncheck “Site Health Status”.
Masalahnya, benda ni hanya untuk satu user. Dia tulis kat user meta. Jadi bila korang uncheck tu, hanya korang je yang tak nampak. Client korang? Dia tetap nampak semua benda tu. Jadi kalau korang fikir dah selesai, sorrylah – tak selesai pun.
Jawapan kedua, orang akan bagi code macam ni:
add_action('wp_dashboard_setup', function () {
remove_meta_box('dashboard_site_health', 'dashboard', 'normal');
});
Code ni memang real. Widget tu hilang untuk semua user. Tapi tak ada apa yang berhenti. Cron tetap jalan. Ujian tetap ada. Korang cuma sorok bacaan tu je, bukan kerja sebenar. Kalau dashboard korang lambat sebelum ni, lepas guna code ni pun tetap lambat. Malah lagi teruk sebab korang fikir dah fix tapi sebenarnya tak fix.
Ada satu lagi cara yang orang suggest. Halaman Tools ni dia bukan datang dari widget, jadi dua cara tadi tak affect dia:
add_action('admin_menu', function () {
remove_submenu_page('tools.php', 'site-health.php');
}, 99);
Tapi korang kena faham: code ni buang menu item je, bukan halaman tu sendiri. Sesiapa yang taip /wp-admin/site-health.php terus kat browser, tetap boleh buka. Kalau korang nak betul-betul lock, kena guna capability, bukan sorok link.
Cara keempat ni ialah satu-satunya cara yang betul-betul hentikan semua semakan. Dia punya test registry dan juga cron event tu sendiri:
add_filter('site_status_tests', function ($tests) {
$tests['direct'] = [];
$tests['async'] = [];
return $tests;
});
add_action('init', function () {
$timestamp = wp_next_scheduled('wp_site_health_scheduled_check');
if ($timestamp) {
wp_unschedule_event($timestamp, 'wp_site_health_scheduled_check');
}
});
Empat hooks, empat laluan kod, satu features. Setiap panduan yang saya baca, dia cover satu je. Ada yang cover dua. Tak ada yang cover empat sekali. Dan beza antara widget tu disembunyikan dengan ujian tu dimatikan, itulah persoalan sebenar.
Orang selalu suggest benda ni kat forum. Jangan buat:
define('DISABLE_WP_CRON', true); // untuk stop weekly health check
// atau: unhook REST API // untuk stop async tests
Bunuh WP-Cron sebab nak senyapkan satu acara mingguan? Kena affect scheduled posts, backups, dan update checks sekali. Bunuh REST API sebab nak stop async tests? Block editor pun affected sekali. Kedua-duanya macam potong kaki sebab nak sembuhkan ruam. Kalau korang nampak benda ni kat tapak client, tanya kenapa.
Empat laluan kod yang berbeza, satu features. Widget boleh disembunyikan, tapi semakan tetap jalan di latar belakang. Kalau korang nak betul-betul hentikan Site Health, korang kena guna cara keempat: filter site_status_tests dan unschedule event cron tu.
Tapi korang kena ingat: disabled Site Health tak bermakna tapak korang sihat. Dia je yang akan bagitahu korang kalau PHP tak support, HTTPS salah config, module tak ada, atau update berhenti senyap-senyap. Matikan dia, tak ada siapa yang akan dengar benda-benda tu lagi.
Sumber Rujukan:
AI bukan lagi fiksyen sains. Ia sudah menjadi realiti yang boleh kita gunakan setiap hari. Dalam artikel ni, saya nak terangkan apa itu AI dan bagaimana korang boleh manfaatkannya untuk tingkatkan produktiviti korang.
Dalam artikel ni, saya akan terangkan satu persatu dengan detail supaya korang faham dan boleh apply terus dalam projek korang. Jadi, jangan skip mana-mana section sebab setiap tip ada value tersendiri.
Dalam dunia ai & machine learning, setiap perkara kecil boleh memberi impak yang besar. Dengan guna teknik yang betul, korang boleh tingkatkan produktiviti dan hasilkan kerja yang lebih berkualiti. Tips-tips ni bukan sahaja buat korang jadi lebih mahir, tapi juga bantu korang jimat masa dan kurangkan mistakes.
Penting untuk guna AI secara ethical. Pastikan korang tidak gunakan AI untuk perkara yang boleh merugikan orang lain. Sentiasa review dan validate output AI sebelum gunakan.
Common mistake: Guna AI tanpa fikir ethical implications yang boleh merugikan orang lain.
AI sangat bagus untuk automate task yang repetitive dan mengambil masa. Contohnya, korang boleh gunakan AI untuk generate code, tulis documentation, atau analisis data. Ni buat korang boleh fokus pada kerja yang lebih penting.
Common mistake: Tak guna AI untuk automate task repetitive yang menyebabkan masa terbuang dengan sia-sia.
Machine learning boleh bantu korang buat predictions berdasarkan data historical. Contohnya, korang boleh predict sales, customer behavior, atau market trends. Ni membantu korang buat planning yang lebih baik.
Common mistake: Tak guna machine learning untuk predictions yang menyebabkan planning yang kurang tepat.
AI boleh analyze data dengan lebih cepat berbanding manusia. Korang boleh gunakan AI untuk identify patterns, trends, dan anomalies dalam data korang. Ni membantu korang buat decision yang lebih baik.
Common mistake: Tak guna AI untuk data analysis yang menyebabkan missed opportunities dan decision yang kurang baik.
Tools seperti GitHub Copilot boleh bantu korang generate code dengan lebih cepat. Ia suggest code berdasarkan context korang dan boleh jimat masa korang menulis boilerplate code. Tapi ingat, korang still perlu review code yang di-generate.
Common mistake: Tak review code yang di-generate oleh AI yang boleh menyebabkan bugs dan security issues.
Chatbots boleh bantu korang handle customer service 24/7. Ia boleh jawab soalan-soalan common dan forward case yang kompleks kepada manusia. Ni buat customer korang lebih happy dan korang jimat masa.
Common mistake: Harapkan chatbots untuk handle semua case tanpa ada manusia sebagai backup.
AI boleh bantu korang generate content seperti blog posts, social media posts, atau marketing copy. Tapi pastikan korang edit dan personalize content tu supaya ia nampak authentic.
Common mistake: Hantar content AI tanpa edit yang menyebabkan content nampak robotik dan tak authentic.
Selain tips-tips di atas, korang juga boleh:
AI terus berkembang dan menjadi lebih powerful setiap masa. Pastikan korang follow updates terkini untuk manfaatkan semua features yang ada. Jangan takut untuk explore tools dan features baru yang AI tawarkan. Siapa tahu, mungkin ada tools yang sesuai dengan keperluan korang. Yang paling penting, korang kena practice. Tanpa practice, semua tips ni hanyalah teori semata-mata. Selamat mencuba dan semoga artikel ni bermanfaat untuk korang semua! Jangan lupa untuk follow kami untuk dapatkan lebih banyak tips dan trik AI yang lain.
Sumber Rujukan:
Sumber Rujukan:
Responsive design adalah wajib dalam web development hari ni. Bootstrap boleh bantu korang achieve tu dengan mudah. Tapi ramai yang tak sedar ada beberapa tips yang boleh buat kerja korang lebih efisien.
Dalam artikel ni, saya akan terangkan satu persatu dengan detail supaya korang faham dan boleh apply terus dalam projek korang. Jadi, jangan skip mana-mana section sebab setiap tip ada value tersendiri.
Dalam dunia bootstrap, setiap perkara kecil boleh memberi impak yang besar. Dengan guna teknik yang betul, korang boleh tingkatkan produktiviti dan hasilkan kerja yang lebih berkualiti. Tips-tips ni bukan sahaja buat korang jadi lebih mahir, tapi juga bantu korang jimat masa dan kurangkan mistakes.
Gambar adalah penting dalam web design. Dengan guna class img-fluid, gambar korang akan auto-resize mengikut container. Ni buat gambar nampak cantik di semua device tanpa perlu tulis media query sendiri.
Common mistake: Tak guna img-fluid yang menyebabkan gambar tak responsif di mobile.
Bootstrap ada banyak utility classes yang boleh jimat masa korang. Contohnya, d-flex untuk flexbox, m-3 untuk margin, p-2 untuk padding, dan text-center untuk text alignment.
Common mistake: Tulis custom CSS untuk benda-benda yang dah ada utility classes.
Bootstrap ada banyak JavaScript plugins yang boleh enhance user experience. Tapi jangan overuse plugins sebab ia boleh buat website jadi lambat. Pilih plugins yang benar-benar diperlukan.
Common mistake: Overuse plugins yang menyebabkan website jadi lambat dan buruk performance.
Bootstrap 5 support CSS variables yang power. Korang boleh customize colors, fonts, dan spacing dengan mudah. Cuma define variable dalam :root selector dan gunakan di mana-mana dalam CSS korang.
Common mistake: Tak guna CSS variables yang menyebabkan susah nak customize theme.
Bootstrap ada banyak components yang sedia ada seperti navbar, card, modal, dan dropdown. Sebelum korang tulis custom component, check dulu apa yang Bootstrap dah sediakan.
Common mistake: Tulis custom components sedangkan Bootstrap dah sediakan components yang serupa.
Grid system adalah teras kepada responsive design dalam Bootstrap. Bootstrap gunakan 12 column grid system yang fleksibel. Korang boleh gunakan container, row, dan column untuk buat layout yang responsif.
Common mistake: Tak faham grid system menyebabkan layout yang tak responsif dan cantik di semua device.
Mobile-first approach adalah penting dalam web design hari ni. Bootstrap memang dirancang untuk mobile-first, tapi korang kena pastikan code korang juga follow approach ni.
Common mistake: Tak optimize untuk mobile yang menyebabkan website tak cantik di small screens.
Selain tips-tips di atas, korang juga boleh:
Dengan Bootstrap, korang boleh jimat masa yang banyak dan hasilkan website yang professional tanpa perlu jadi CSS expert. Tapi ingat, Bootstrap hanyalah tools. Korang masih perlu faham prinsip asas web design seperti color theory, typography, dan user experience. Bootstrap bantu korang dari segi implementation, tapi korang still perlu gunakan kreativiti korang untuk design yang menarik. Practice tips ni setiap hari dan korang akan nampak perbezaannya. Selamat mencuba dan semoga korang menjadi designer yang lebih baik dari sebelumnya!
Sumber Rujukan:
Sumber Rujukan:
Responsive design adalah wajib dalam web development hari ni. Bootstrap boleh bantu korang achieve tu dengan mudah. Tapi ramai yang tak sedar ada beberapa tips yang boleh buat kerja korang lebih efisien.
Dalam artikel ni, saya akan terangkan satu persatu dengan detail supaya korang faham dan boleh apply terus dalam projek korang. Jadi, jangan skip mana-mana section sebab setiap tip ada value tersendiri.
Dalam dunia bootstrap, setiap perkara kecil boleh memberi impak yang besar. Dengan guna teknik yang betul, korang boleh tingkatkan produktiviti dan hasilkan kerja yang lebih berkualiti. Tips-tips ni bukan sahaja buat korang jadi lebih mahir, tapi juga bantu korang jimat masa dan kurangkan mistakes.
Bootstrap 5 support CSS variables yang power. Korang boleh customize colors, fonts, dan spacing dengan mudah. Cuma define variable dalam :root selector dan gunakan di mana-mana dalam CSS korang.
Common mistake: Tak guna CSS variables yang menyebabkan susah nak customize theme.
Bootstrap ada banyak JavaScript plugins yang boleh enhance user experience. Tapi jangan overuse plugins sebab ia boleh buat website jadi lambat. Pilih plugins yang benar-benar diperlukan.
Common mistake: Overuse plugins yang menyebabkan website jadi lambat dan buruk performance.
Gambar adalah penting dalam web design. Dengan guna class img-fluid, gambar korang akan auto-resize mengikut container. Ni buat gambar nampak cantik di semua device tanpa perlu tulis media query sendiri.
Common mistake: Tak guna img-fluid yang menyebabkan gambar tak responsif di mobile.
Mobile-first approach adalah penting dalam web design hari ni. Bootstrap memang dirancang untuk mobile-first, tapi korang kena pastikan code korang juga follow approach ni.
Common mistake: Tak optimize untuk mobile yang menyebabkan website tak cantik di small screens.
Grid system adalah teras kepada responsive design dalam Bootstrap. Bootstrap gunakan 12 column grid system yang fleksibel. Korang boleh gunakan container, row, dan column untuk buat layout yang responsif.
Common mistake: Tak faham grid system menyebabkan layout yang tak responsif dan cantik di semua device.
Bootstrap ada banyak utility classes yang boleh jimat masa korang. Contohnya, d-flex untuk flexbox, m-3 untuk margin, p-2 untuk padding, dan text-center untuk text alignment.
Common mistake: Tulis custom CSS untuk benda-benda yang dah ada utility classes.
Bootstrap ada banyak components yang sedia ada seperti navbar, card, modal, dan dropdown. Sebelum korang tulis custom component, check dulu apa yang Bootstrap dah sediakan.
Common mistake: Tulis custom components sedangkan Bootstrap dah sediakan components yang serupa.
Selain tips-tips di atas, korang juga boleh:
Bootstrap terus berkembang dan menambah features baru setiap masa. Pastikan korang follow updates terkini untuk manfaatkan semua features yang ada. Jangan takut untuk explore features baru yang Bootstrap tawarkan. Siapa tahu, mungkin ada features yang sesuai dengan projek korang. Yang paling penting, korang kena practice. Tanpa practice, semua tips ni hanyalah teori semata-mata. Selamat coding dan semoga artikel ni bermanfaat untuk korang semua! Jangan lupa untuk follow kami untuk dapatkan lebih banyak tips dan trik web development yang lain.
Sumber Rujukan:
Sumber Rujukan:
Ramai yang takut AI akan ambil kerja mereka. Tapi sebenarnya, AI adalah tools yang boleh bantu korang kerja dengan lebih efisien. Hari ni saya nak kongsi beberapa cara untuk guna AI dalam kerja korang.
Dalam artikel ni, saya akan terangkan satu persatu dengan detail supaya korang faham dan boleh apply terus dalam projek korang. Jadi, jangan skip mana-mana section sebab setiap tip ada value tersendiri.
Dalam dunia ai & machine learning, setiap perkara kecil boleh memberi impak yang besar. Dengan guna teknik yang betul, korang boleh tingkatkan produktiviti dan hasilkan kerja yang lebih berkualiti. Tips-tips ni bukan sahaja buat korang jadi lebih mahir, tapi juga bantu korang jimat masa dan kurangkan mistakes.
AI boleh analyze data dengan lebih cepat berbanding manusia. Korang boleh gunakan AI untuk identify patterns, trends, dan anomalies dalam data korang. Ni membantu korang buat decision yang lebih baik.
Common mistake: Tak guna AI untuk data analysis yang menyebabkan missed opportunities dan decision yang kurang baik.
AI boleh bantu korang generate content seperti blog posts, social media posts, atau marketing copy. Tapi pastikan korang edit dan personalize content tu supaya ia nampak authentic.
Common mistake: Hantar content AI tanpa edit yang menyebabkan content nampak robotik dan tak authentic.
Penting untuk guna AI secara ethical. Pastikan korang tidak gunakan AI untuk perkara yang boleh merugikan orang lain. Sentiasa review dan validate output AI sebelum gunakan.
Common mistake: Guna AI tanpa fikir ethical implications yang boleh merugikan orang lain.
Tools seperti GitHub Copilot boleh bantu korang generate code dengan lebih cepat. Ia suggest code berdasarkan context korang dan boleh jimat masa korang menulis boilerplate code. Tapi ingat, korang still perlu review code yang di-generate.
Common mistake: Tak review code yang di-generate oleh AI yang boleh menyebabkan bugs dan security issues.
Chatbots boleh bantu korang handle customer service 24/7. Ia boleh jawab soalan-soalan common dan forward case yang kompleks kepada manusia. Ni buat customer korang lebih happy dan korang jimat masa.
Common mistake: Harapkan chatbots untuk handle semua case tanpa ada manusia sebagai backup.
AI sangat bagus untuk automate task yang repetitive dan mengambil masa. Contohnya, korang boleh gunakan AI untuk generate code, tulis documentation, atau analisis data. Ni buat korang boleh fokus pada kerja yang lebih penting.
Common mistake: Tak guna AI untuk automate task repetitive yang menyebabkan masa terbuang dengan sia-sia.
Machine learning boleh bantu korang buat predictions berdasarkan data historical. Contohnya, korang boleh predict sales, customer behavior, atau market trends. Ni membantu korang buat planning yang lebih baik.
Common mistake: Tak guna machine learning untuk predictions yang menyebabkan planning yang kurang tepat.
Selain tips-tips di atas, korang juga boleh:
Dengan guna AI secara bijak, korang boleh tingkatkan produktiviti dan hasilkan kerja yang lebih berkualiti. Tapi ingat, AI hanyalah tools. Korang still perlu gunakan otak korang untuk buat decision dan validate output AI. Jangan terlalu bergantung pada AI sehingga korang lupa untuk berfikir sendiri. AI adalah kawan, bukan pengganti. Gunakan ia untuk bantu korang kerja dengan lebih efisien, tapi jangan biarkan ia mengawal korang. Practice tips ni setiap hari dan korang akan nampak perbezaannya. Selamat mencuba dan semoga korang menjadi pengguna AI yang lebih bijak dari sebelumnya!
Sumber Rujukan: