地址 https://leetcode-cn.com/problems/greatest-sum-divisible-by-three/

题目描述
给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。

示例 :

输入:nums = [,,,,]
输出:
解释:选出数字 , , 和 ,它们的和是 (可被 整除的最大和)。
示例 : 输入:nums = []
输出:
解释: 不能被 整除,所以无法选出数字,返回 。
示例 : 输入:nums = [,,,,]
输出:
解释:选出数字 , , 以及 ,它们的和是 (可被 整除的最大和)。
  提示: <= nums.length <= * ^
<= nums[i] <= ^

算法1
最后数组和 只有三种情况
1 除以3余0 直接返回
2 除以3余1 那么要么减少一个除以3余1的数字 或者减少两个除以3余2的数字
3 除以3余2 那么要么减少一个除以3余2的数字 要么减少两个除以3余1的数字

class Solution {
public:
vector<int> v[];
int Check(int singleIdx,int doubleIdx,int sum)
{
if (v[doubleIdx].size() < ) {
return sum - v[singleIdx][];
}
else if (v[singleIdx].size() == ) {
return sum - v[doubleIdx][] - v[doubleIdx][];
}
else {
int rem = v[singleIdx][];
if (rem > (v[doubleIdx][] + v[doubleIdx][])) rem = (v[doubleIdx][] + v[doubleIdx][]); return sum - rem;
}
} int maxSumDivThree(vector<int>& nums) {
int sum = ;
for (int i = ; i < nums.size(); i++)
{
sum += nums[i];
if (nums[i] % == ) {
v[].push_back(nums[i]);
}
else if(nums[i] % == ){
v[].push_back(nums[i]);
}
} sort(v[].begin(), v[].end());
sort(v[].begin(), v[].end());
int sum_n = sum % ; if (sum_n == ) return sum;
if (sum_n == ) {
//减少两个v2 和一个v1 选择
return Check( , ,sum);
} if(sum_n == ){
return Check( , ,sum);
} return -;
} };

最新文章

  1. Javascript 截取2位小数
  2. sizzle源码分析 (3)sizzle 不能快速匹配时 选择器流程
  3. TJI读书笔记07-初始化
  4. Django 源码小剖: Django 对象关系映射(ORM)
  5. js中的call与apply
  6. SQL查询时间去除非工作日...
  7. IE6 for WIN8
  8. Execl DataTime Format Number
  9. JDBC_mysql---防sql注入,存储图片
  10. [转] windows 上用程序putty使用 ssh自动登录Linux(Ubuntu)
  11. 【转】一个小工具类,利用shareObject把数据缓存
  12. ajax之XML简介
  13. C# reportview 按时间改变行颜色
  14. C++语言之构造函数
  15. onclick事件传递对象参数
  16. redis持久化RDB与AOF
  17. Access sql语句创建表及字段类型(转)
  18. SPOJ DQUERY - D-query (莫队算法|主席树|离线树状数组)
  19. [官方摘要]Setup And Configuration memcached with Tomcat
  20. GCT之数学公式(平面解析几何)

热门文章

  1. 深度好文:PHP写时拷贝与垃圾回收机制(转)
  2. 数据存储与访问之——SharedPreferences
  3. Linux中jar包启动和jar包后台运行
  4. Data Guard:Oracle 12c –新增和更新的功能 (Doc ID 1558256.1)
  5. 更改路由器的外网IP
  6. 如何完成述职报告或年终总结PPT
  7. IT兄弟连 HTML5教程 HTML5表单 小结及习题
  8. 01-Vue.js基础
  9. BootStrap 关于input与btn的点击focus取消特效相关css
  10. Web安全测试学习笔记-DVWA-存储型XSS