Kacam.net

दुनिया को देखें

एल्गोरिदम: एक बार में एक ही तरकीब

«सॉर्टिंग» या «डायनामिक प्रोग्रामिंग» नहीं, बल्कि «बाइनरी सर्च की सीमा», «DP में स्टेट कैसे तय करें», «यह दोहराव एक ही स्तर का है या एक ही शाखा का» — हर पर्ची एक ही जगह खोदती है, जब तक आप कारण न बता सकें।

ये प्रॉम्प्ट अभी सिर्फ़ 简体中文 में हैं।

इसे कैसे इस्तेमाल करें

यह श्रृंखला सिखाती है, जिरह नहीं करती: यह आपको राह दिखाती है, न कि तब तक दबाती है जब तक कहने को कुछ न बचे। अटकने पर पहले पूछती है कि आप किस परत पर अटके हैं (कभी सुना ही नहीं / जानता हूँ पर क्यों नहीं पता / क्यों पता है पर लिख नहीं पाता), फिर तय करती है कि क्या देना है। एक ही जगह दो बार राह दिखाने के बाद ही सीधा उत्तर देती है — और फिर आपसे अपने शब्दों में दोहरवाती है।

कैसे शुरू करें

  1. एक चुनिए, खोलिए, प्रॉम्प्ट कॉपी कीजिए।
  2. एकदम नई, ख़ाली बातचीत में चिपकाइए, कुछ मत कहिए, पहले सवाल का इंतज़ार कीजिए।
  3. कोड से पहले हाथ से चलाकर देखिए — यह आपको टोकेगी। लंबाई 2 के ऐरे पर हर क़दम चलाना, टेम्पलेट दस बार लिखने से बेहतर है।

बीच में कभी भी कहे जा सकने वाले चार संकेत

  • 跳过 तुरंत अगले दृश्य पर
  • 换个说法 इस जगह को दूसरे कोण से फिर समझाना
  • 直说吧 पूरा उत्तर बताना, फिर मुझसे दोहरवाना
  • 复盘 सीधे समापन पर जाकर पुनरावलोकन कार्ड निकलवाना

तीन फंदे

  • अंत वाला उत्तर-पत्र पहले मत पढ़िए — उसका «आम तौर पर लोग क्या ग़लत समझते हैं» वाला हिस्सा ही हर सवाल का जवाब है।
  • कोड लिखने पर मत टूटिए। एल्गोरिदम में कोड लिखना ही वह काम है जो «असल में समझा नहीं» को सबसे अच्छे से ढक देता है।
  • जब वह तारीफ़ करने लगे, उसे «मेरी तारीफ़ मत करो» वाला नियम याद दिलाइए। राह दिखाना दुलारना नहीं है।

हल ही नहीं सूझता? पहले स्टेट की परिभाषा कीजिए। सीमाएँ बार-बार ग़लत होती हैं? बाइनरी सर्च और प्रीफ़िक्स सम। समस्या का आकार पहचान नहीं पाते? मोनोटोनिक स्टैक और स्लाइडिंग विंडो। जटिलता वाली पर्ची कई और पर्चियों की नींव है — जल्दी कीजिए।

बुनियाद

二分的边界
会写,但老是错边界 —— 因为你没说清自己维护的是哪个不变量。
★★★☆☆ · लगभग 35 मिनट
滑动窗口什么时候不能滑
数组里有负数,你那个滑动窗口就错了 —— 说得出为什么吗?
★★★☆☆ · लगभग 35 मिनट
同样是 O(n log n),为什么快排更快
快排和堆排都是 O(n log n),实测差两三倍。差在哪?
★★★★☆ · लगभग 40 मिनट

डेटा संरचनाएँ

单调栈:什么形状的题会塌成它
模板八行,难的是看见一道新题认出它是这个形状。
★★★☆☆ · लगभग 35 मिनट
求第 k 大,为什么用小顶堆
求最大的 100 个,用小顶堆 —— 方向是反的,为什么?
★★★☆☆ · लगभग 30 मिनट
并查集:两个优化各省了什么
十行代码,但去掉按秩合并会退化成什么,你说得出吗?
★★★☆☆ · लगभग 30 मिनट
前缀和能用的前提是可逆
区间和能用它,区间最大值不能 —— 那条界线在哪?
★★★☆☆ · लगभग 30 मिनट

डिज़ाइन शैलियाँ

动态规划:状态定义才是那道坎
「看得懂题解、自己想不出来」,卡的几乎都是这一步。
★★★★☆ · लगभग 45 मिनट
贪心:过了样例不等于对
唯一一类跑过样例仍然可能彻底错的算法。
★★★★☆ · लगभग 35 मिनट
回溯去重:同层还是同枝
去重条件里那个感叹号,为什么在那儿?
★★★★☆ · लगभग 35 मिनट
ये प्रॉम्प्ट ओपन सोर्स हैं मूल पाठ सार्वजनिक रिपॉज़िटरी kacam-net/hero-prompts में रखा जाता है। लगे कि कोई पर्याप्त सख़्ती से नहीं कुरेदता, या उसकी कुंजी में एक पंक्ति छूट गई है, तो जाकर बदल दीजिए — यहाँ चढ़ेगा या नहीं, यह अलग फ़ैसला है और इस तरफ़ की सूची तय करती है।