LeetCode 179. 最大數
題目描述:
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。
示例 1:
輸入:[10,2]
輸出:210
示例 2:
輸入:[3,30,34,5,9]
輸出:9534330
說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。
思路:這裡使用了一個比較邏輯,就是如果字串陣列中相鄰兩位如a,b,都有a+b>b+a,那麼按照這個比較邏輯排序得到的陣列,從頭到尾相連得到的字串一定是最大的(可用反證法證明),通過自定義的compare函式以及sort函式排序,然後把字串陣列中的字串相連
程式碼:
class Solution { public: static bool compare(string &a, string &b){ string s1=a+b; string s2=b+a; if(s1>s2) return true; else return false; } string largestNumber(vector<int>& nums) { string s=""; int length=int(nums.size()); if(length==0) return s; vector<string> strings; int i; int count_0=0; for(i=0;i<length;++i) { if(nums[i]==0 ) count_0++; strings.push_back(to_string(nums[i])); } if(count_0==length) return "0"; if(length==1){ s+=strings[0]; return s; } sort(strings.begin(), strings.end(), compare); for(i=0;i<length;++i) s+=strings[i]; return s; } };
相關推薦
LeetCode 179. 最大數(C++)
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。 C++
LeetCode 179. 最大數
題目描述:給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。示例 1:輸入: [10,2] 輸出: 210示例 2:輸入: [3,30,34,5,9] 輸出: 9534330說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。思路:這裡使用了一個比較邏輯,
leetcode 179 最大數
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。 解題思路: 和
[LeetCode javaScript] 179. 最大數
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。 /** *
【LeetCode】179. 最大數 結題報告 (C++)
題目描述: 給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。
179.最大數
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是整數。 class
179. 最大數
給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結
【leetcode】最大數
最大數 一、要求 給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,3
LeetCode 179.Largest Number (最大數)
題目描述: 給定一組非負整數,重新排列它們的順序使之組成一個最大的整數。 示例 1: 輸入: [10,2] 輸出: 210 示例 2: 輸入: [3,30,34,5,9] 輸出: 9534330 說明: 輸出結果可能非常大,所以你需要返回一個字串而不是
LeetCode 179. Largest Number(最大數)
Given a list of non negative integers, arrange them such that they form the largest number. For example, given [3, 30, 34, 5, 9], the
[LeetCode] Largest Number At Least Twice of Others 至少是其他數字兩倍的最大數
arr ret ice integer value pla clas post there In a given integer array nums, there is always exactly one largest element. Find whethe
LeetCode:至少是其他數字兩倍的最大數【747】
描述 index lee 提示 int highlight pan 是不是 dom LeetCode:至少是其他數字兩倍的最大數【747】 題目描述 在一個給定的數組nums中,總是存在一個最大元素 。 查找數組中的最大元素是否至少是數組中每個其他數字的兩倍。 如果是,則返
LeetCode-整形陣列組合最大數(Java)
文章目錄 題目描述 示例 解析 題目描述 給定一個正整型陣列,將陣列中各個元素組合成一個數,輸出組合結果最大的那個數。 示例 輸入: {9, 3, 32, 33, 303} 輸出: 933332
LeetCode 747. 至少是其他數字兩倍的最大數(C、C++、python)
在一個給定的陣列nums中,總是存在一個最大元素 。 查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。 如果是,則返回最大元素的索引,否則返回-1。 示例 1: 輸入: nums = [3, 6, 1, 0] 輸出: 1 解釋: 6是最大的整數, 對於陣列中的其他整數, 6大
[leetcode]至少是其他數字兩倍的最大數
747. 至少是其他數字兩倍的最大數 在一個給定的陣列nums中,總是存在一個最大元素 。 查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。 如果是,則返回最大元素的索引,否則返回-1。 示例 1: 輸入: nums = [3, 6, 1, 0] 輸出: 1
【leetcode陣列和字串】 至少是其他數字兩倍的最大數
在一個給定的陣列nums中,總是存在一個最大元素 。 查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。 如果是,則返回最大元素的索引,否則返回-1。 示例 1: 輸入: nums = [3, 6, 1, 0] 輸出: 1 解釋: 6是最大的整數, 對於陣列中的其他整數, 6大
[Leetcode] 747. 至少是其他數字兩倍的最大數 java
在一個給定的陣列nums中,總是存在一個最大元素 。 查詢陣列中的最大元素是否至少是陣列中每個其他數字的兩倍。 如果是,則返回最大元素的索引,否則返回-1。 示例 1: 輸入: nums = [3, 6, 1, 0] 輸出: 1 解釋: 6是最大的整數, 對於陣列中
[LeetCode] Create Maximum Number 建立最大數
Given two arrays of length m and n with digits 0-9 representing two numbers. Create the maximum number of length k <= m + n from digits of the two. Th
Leetcode 321.拼接最大數
拼接最大數 給定長度分別為 m 和 n 的兩個陣列,其元素由 0-9 構成,表示兩個自然數各位上的數字。現在從這兩個陣列中選出 k (k <= m + n) 個數字拼接成一個新的數,要求從同一個陣列中取出的數字保持其在原陣列中的相對
leetcode+從左到右每一個區間裡的最大數,雙向單調佇列
//雙向單調佇列 class Solution { public: vector<int> maxSlidingWindow(vector<int>& num