easy implementation || using heap || O(nlogk) time || O(log k) space
\n# Code\n\nclass Solution {\npublic:\n    struct myCmp{\n        bool operator()(string &s1,string &s2){\n            if(s1.length()>s2.length())\n            
\n# Code\n```\nclass Solution {\npublic:\n    struct myCmp{\n        bool operator()(string &s1,string &s2){\n            if(s1.length()>s2.length())\n                return true;\n            else if(s1.length()<s2.length())\n                return false;\n            else{\n                for(int i=0;i<s1.length();i++){\n                    if(s1[i]-\'0\'>s2[i]-\'0\')\n                        return true;\n                    else if(s1[i]-\'0\'<s2[i]-\'0\')\n                        return false;\n                }\n                return false;\n            }\n            \n        }\n    };\n    string kthLargestNumber(vector<string>& nums, int k) {\n        //idea is to create an min heap\n        priority_queue<string,vector<string>,myCmp>q;\n        \n        for(int i=0;i<nums.size();i++){\n            q.push(nums[i]);\n            if(q.size()>k)q.pop();           \n            \n        }\n        \n        return q.top();\n        \n    }\n};\n\n```
['C++']