हमारे पास एन संख्याओं की एक श्रृंखला है। सभी संख्याएं 1-के बीच हैं।एक सरणी में सबसे लगातार तीन गुना खोजें
समस्या यह है कि सबसे लगातार तीन गुना खोजने का सबसे अच्छा तरीका कैसे प्राप्त करें।
समस्या मेरे दृष्टिकोण है:
कहते हैं यदि इनपुट की तरह है {1, 2, 3, 4, 1, 2, 3, 4}
त्रिक की गिनती के लिए सबसे पहले खोज (1, 2, 3) सरणी के अंत तक सरणी में दूसरे तत्व से शुरू करें। अब हमारे पास गिनती होगी 1. अब {2, 3, 4) से शुरू करें और सरणी खोजें।
प्रत्येक तिगुना के लिए हम सरणी स्कैन करते हैं और गिनती पाते हैं। इस तरह हम एन -1 बार के लिए सरणी चलाते हैं।
इस तरह मेरा एल्गोरिदम एन * एन समय जटिलता के क्रम में चलता है।
इस समस्या के लिए कोई बेहतर तरीका है?
'triplet' की आपकी परिभाषा क्या है - क्रम में किसी भी 3 संख्या, या केवल 3 लगातार पूर्णांक? '3,4,1' एक तिहाई है? –
आपके द्वारा अपेक्षित अंतरिक्ष जटिलता क्या है? – jackalope
क्या आप जानते हैं कि आपको 'ट्रिपलेट' की आवश्यकता है या क्या आप इसे खोजने के लिए अलगो का इरादा रखते हैं? – bonCodigo