{"id":11458,"date":"2022-05-13T04:20:03","date_gmt":"2022-05-13T04:20:03","guid":{"rendered":"https:\/\/www.softwareeverydayblog.com\/?p=11458"},"modified":"2022-05-13T04:21:55","modified_gmt":"2022-05-13T04:21:55","slug":"programming-problem-3","status":"publish","type":"post","link":"https:\/\/www.softwareeverydayblog.com\/?p=11458","title":{"rendered":"[Programming Problem] Largest Number"},"content":{"rendered":"<pre lang=\"text\">\r\nGiven a list of non-negative integers nums, arrange them such that they form the largest number and return it.\r\n\r\nSince the result may be very large, so you need to return a string instead of an integer.\r\n\r\nExample 1:\r\nInput: nums = [10,2]\r\nOutput: \"210\"\r\n\r\nExample 2:\r\nInput: nums = [3,30,34,5,9]\r\nOutput: \"9534330\"\r\n<\/pre>\n<p>Take two numbers, say 3 and 30. How would you decide which one would come first? You would simply compare &#8216;330&#8217; and &#8216;303&#8217; and decide.<\/p>\n<p>Given the above comparison function, we simply sort these numbers using a custom comparator which compares two numbers in the above way. Then, just concat array and return number.<\/p>\n<p>One gotcha: the system expects you to remove leading zeros. We use a regex for that.<\/p>\n<pre lang=\"javascript\">\r\n\/**\r\n * @param {number[]} nums\r\n * @return {string}\r\n *\/\r\nvar largestNumber = function(nums) {\r\n    nums.sort((a, b) => Number(a+\"\"+b) > Number(b+\"\"+a) ? -1 : 1);\r\n    return nums.join(\"\").replace(\/^0*(.+)\/, '$1');\r\n};\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Given a list of non-negative integers nums, arrange them such that they form the largest number and return it. Since the result may be very large, so you need to return a string instead of an integer. Example 1: Input: nums = [10,2] Output: &#8220;210&#8221; Example 2: Input: nums = [3,30,34,5,9] Output: &#8220;9534330&#8221; Take two [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-11458","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/posts\/11458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11458"}],"version-history":[{"count":4,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/posts\/11458\/revisions"}],"predecessor-version":[{"id":11460,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=\/wp\/v2\/posts\/11458\/revisions\/11460"}],"wp:attachment":[{"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.softwareeverydayblog.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}