每日算法系列【LeetCode 1363】形成三的最大倍数

简介: 给你一个整数数组 digits,你可以通过按任意顺序连接其中某些数字来形成 3 的倍数,请你返回所能得到的最大的 3 的倍数。由于答案可能不在整数数据类型范围内,请以字符串形式返回答案。如果无法得到答案,请返回一个空字符串。

题目描述


给你一个整数数组 digits,你可以通过按任意顺序连接其中某些数字来形成 3 的倍数,请你返回所能得到的最大的 3 的倍数。

由于答案可能不在整数数据类型范围内,请以字符串形式返回答案。

如果无法得到答案,请返回一个空字符串。

示例1

输入:
digits = [8,1,9]
输出:
"981"

示例2

输入:
digits = [8,6,7,1,0]
输出:
"8760"

示例3

输入:
digits = [1]
输出:""

示例4

输入:
digits = [0,0,0,0,0,0]
输出:
"0"

提示

  • 1 <= digits.length <= 10^4
  • 0 <= digits[i] <= 9
  • 返回的结果不应包含不必要的前导零。

题解



image.png

代码


c++

classSolution {
public:
intdel(vector<int>&cnt, intq) {
for (inti=0; i<=9; ++i) { 
if (i%3==q&&cnt[i]) {    
return--cnt[i];     
            }    
        }     
return-1;
    }
stringlargestMultipleOfThree(vector<int>&digits) { 
vector<int>cnt(10, 0);    
intsum=0;    
for (autox : digits) {     
cnt[x]++;     
sum+=x;    
        }      
intq=sum%3;   
if (q&&del(cnt, q) <0) { 
del(cnt, 3-q);     
del(cnt, 3-q); 
        }       
stringres=""; 
for (inti=9; i>=0; --i) { 
while (cnt[i]--) {    
res+=i+'0';      
            }       
        }   
if (res.size() &&res[0] =='0') return"0";   
returnres; 
    }
};

image.png

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理与深度学习喜欢与人分享技术与知识,期待与你的进一步交流~


相关文章
|
9月前
|
算法 C语言 C++
Leetcode 每日一题 2341. 数组能形成多少数对
返回一个下标从 0 开始、长度为 2 的整数数组 answer 作为答案,其中 answer[0] 是形成的数对数目,answer[1] 是对 nums 尽可能执行上述操作后剩下的整数数目。
28 0
|
12月前
|
算法 C++
【每日算法Day 77】LeetCode 第 181 场周赛题解
【每日算法Day 77】LeetCode 第 181 场周赛题解
|
12月前
|
算法 C++
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
|
12月前
|
算法 C++ Python
【每日算法Day 63】LeetCode 第 179 场周赛题解
起床打开 leetcode,准备看看今天搞点啥题目水一水的,突然发现周赛还剩 1 小时整。看了眼题目也都挺简单的,就把 4 道题都做掉了。
|
12月前
|
算法 C++
【每日算法Day 62】LeetCode 815. 公交路线
【每日算法Day 62】LeetCode 815. 公交路线
|
12月前
|
算法 C++ Python
【每日算法Day 61】LeetCode 672. 灯泡开关 Ⅱ
【每日算法Day 61】LeetCode 672. 灯泡开关 Ⅱ
|
12月前
|
算法 C++
每日算法系列【LeetCode 319】灯泡开关
每日算法系列【LeetCode 319】灯泡开关
|
12月前
|
算法 C++
每日算法系列【LeetCode 1363】形成三的最大倍数
每日算法系列【LeetCode 1363】形成三的最大倍数
|
12月前
|
算法 C++
每日算法系列【LeetCode 128】最长连续序列
每日算法系列【LeetCode 128】最长连续序列
|
12月前
|
算法 C++
每日算法系列【LeetCode 329】矩阵中的最长递增路径
每日算法系列【LeetCode 329】矩阵中的最长递增路径