LeetCode 可被三整除的最大和

LeetCode1262:可被三整除的最大和(动态规划) 1262. 可被三整除的最大和 给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 /** * 可被三整除的最大和:动态规划 * dp[i][0]表示nums[0...i]模三余零的最大和 * dp[i][1]表示nums[0...i]模三余一的最大和 * dp[i][2]表示nums[0...i]模三余二的最大和 * 零状态:当前数字最大和模三余零 * 一状态:当前数字最大和模三余一 * 二状态:当前数字最大和模三 阅读详情

题目地址:https://leetcode.cn/problems/greatest-sum-divisible-by-three/description/

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

// 思路:计算数组和sum 并算出sum%3的值mod
// 如果 sum % 3 == 1 , 那么移出一个余1 或者两个余2的元素即可
// 如果 sum % 3 == 2 , 那么移出一个余2 或者两个余1的元素即可

func maxSumDivThree(nums []int) int {
	sum := 0
	for _, n := range nums {
		sum += n
	}
	mod := sum % 3
	if mod == 0 {
		return sum
	}
	rest1 := math.MaxInt
	rest2Min1 := math.MaxInt
	rest2Min2 := math.MaxInt
	for _, n := range nums {
		// 找到一个最小值
		if n%3 == mod {
			rest1 = min(rest1, n)
		}
		// 找到两个最小值
		if (3 - n%3) == mod {
			if n <= rest2Min1 {
				rest2Min2 = rest2Min1
				rest2Min1 = n
			} else if n < rest2Min2 && n != rest2Min1 {
				rest2Min2 = n
			}
		}

	}
	// 没有找到两个最小值
	if rest2Min1 == math.MaxInt || rest2Min2 == math.MaxInt {
		rest2Min1 = 0
		rest2Min2 = math.MaxInt
	}
	return sum - min(rest1, rest2Min1+rest2Min2)
}
LeetCode 5265. 可被三整除的最大和 LeetCode 5265. 可被三整除的最大和 题目 给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 示例 1: 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输... 阅读详情

相关推荐

HIDL概述

HIDL背景 Treble 是 Google Android 团队的一项重大项目,意在 Android 操作系统框架在架构方面的一项重大改变,旨在让制造商以更低的成本更轻松、更快速地将设备更新到新版 Android 系统。Android 7.x 及更早版本中没有正式的供应商接口,因此设备制造商必须更新大量 Android 代码才能将设备更新到新版 Android 系统: 图1 Treble ...

u013357557的专栏 2万+

​LeetCode解法汇总1262. 可被三整除的最大和

选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。4 不能被 3 整除,所以无法选出数字,返回 0。,请你找出并返回能被三整除的元素最大和。

分享+记录 382

NVIDIA Jetson Orin系列 - 使用SDK Manager安装JetPack全流程解析

本文详细解析了使用NVIDIA官方SDK Manager为Jetson Orin系列开发板安装JetPack系统的完整流程。从环境准备、设备进入恢复模式,到SDK Manager图形化界面的分步操作指南,提供了新手友好的全流程解析,并分享了安装后的验证方法及常见问题解决方案,帮助开发者高效搭建稳定的边缘AI开发环境。

nn3456的博客 405

力扣 | 1262. 可被三整除的最大和

引用的地方还要在理解一遍,还是有问题。

ttxiaoxiaobai的博客 238

【每天一个知识点】多视图子空间聚类(Multi-view Subspace Clustering)

本文深入解析了多视图子空间聚类技术,这是一种处理多源异构数据的先进方法。它通过融合多个数据视图(如文本、图像、网络结构)的共识与互补信息,学习统一的潜在子空间表示,从而获得比单一视图更鲁棒、准确的聚类结果。文章详细阐述了其核心思想、主流技术流派(如图融合、共同潜在子空间、张量及深度学习方法),并提供了Python实战代码与调优经验,适用于跨模态检索、生物信息学等多领域复杂数据分析。

weixin_29065015的博客 459

基于STM32与毫米波雷达的非接触式睡眠监测系统

物联网和嵌入式系统技术正在推动医疗健康设备的智能化发展。通过传感器网络采集生理信号,结合信号处理算法实现健康监测已成为主流技术方案。毫米波雷达凭借其非接触检测特性,在呼吸、心率等生命体征监测中展现出独特优势。STM32系列MCU凭借丰富外设和低功耗特性,成为医疗级嵌入式设备的首选平台。本系统整合60GHz毫米波雷达、红外测温与无线传输模块,构建了完整的睡眠质量评估解决方案,其硬件架构设计、信号处理算法和低功耗优化策略对可穿戴医疗设备开发具有参考价值。

weixin_36369848的博客 611

1262. 可被三整除的最大和(leetcode)

解释:最后得到的子数组不能为空,所以我们不能选择 [-1] 并从中删去 -1 来得到 0。解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。我们应该直接选择 [-1],或者选择 [-1, -1] 再从中删去一个 -1。给你一个整数数组 nums,请你找出并返回能被三整除的元素 最大和。输入:arr = [-1,-1,-1,-1]输入:nums = [3,6,5,1,8]解释:我们直接选出 [3],这就是最大和。输入:arr = [1,-2,-2,3]

lulutoy的博客 869

告别Arduino IDE!用VSCode搭建Arduino UNO R3开发环境(含代码补全配置)

本文详细指导如何用VSCode替代Arduino IDE搭建Arduino UNO R3开发环境,包含代码补全配置和高效开发技巧。通过安装必要插件、配置项目结构和优化工作流,可显著提升开发效率,特别适合复杂项目开发。文章还提供了常见问题解决方案和高级功能调优方法。

weixin_30698297的博客 476

leetcode算法题--可被三整除的最大和

原题链接:https://leetcode-cn.com/problems/greatest-sum-divisible-by-three/ 动态规划 dp[0]存储余数为0的最大和 dp[1]存储余数为1的最大和 dp[2]存储余数为2的最大和 状态转移: dp[0]+=nums[i];dp[1]+=nums[i];dp[2]+=nums[i]; if num[i]%3...

bob的博客 1022

【LLM数据篇】预训练数据集+指令生成sft数据集

在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等 优秀的开源sft数据集:alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note 构造指令实例的3种方式 sft:Aligning Large Language Models with Human: A Survey Alpaca 1. self

发现问题,并解决问题,批判性思维 1万+

使用静态库在嵌入式系统中进行开发

静态库是一种包含预编译对象代码的文件,它可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。静态库是包含预编译对象代码的文件,可以与应用程序链接在一起,并在编译时将库的代码复制到最终的可执行文件中。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。需要注意的是,由于嵌入式系统的资源限制,开发人员应该仔细选择需要包含在静态库中的功能,并避免引入不必要的依赖关系。的静态库文件,可以在嵌入式系统的应用程序中使用它了。

ZrElixir的博客 201

力扣(可被三整除的最大和)

方法二:先整体求出所有数的和sum,然后判断宿命对3的余数,如果是0,则直接返回。若是1,则结果可能是sum减去一个余数是1的元素,或者sum减去两个余数是二的元素。若是2,则结果可能是sum减去一个余数是2的元素,或者sum减去两个余数是一的元素。方法一:利用一个长度为3的数组,分别保存0到i内余数为0,1,2的最大和,这样对于一个进入的数k,依次更新数组每一个元素,最后dp[0]就是所要求的结果.,请你找出并返回能被三整除的元素。

yyssas的博客 555

[RK3568 Android12] 添加自定义启动脚本

1:定义添加的脚本 2:rk3568_s.mk 中定义打包 3:在启动脚本中init.rk356x.rc添加权限及何时启动 4:添加权限文件file_contexts 5:系统确认是否运行

OpenWrt/WLAN/驱动/Android/嵌入式开发总结 2219

leetcode第1262题可被三整除的最大和

leetcode第1262题 可被三整除的最大和 题目 可被三整除的最大和 给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 思路 每个数只有选和不选两种状态,那么根据什么转移呢,因根据当前数模3之后3的余数来进行转移。 dp[i][0]=到i为止被三整除的最大和 dp[i][1]=到i为止除三余1的最大和 dp[i][2]=到i为止除三余2的最大和 当nums[i-1]%3==0时,加入当前的数字不会对除以三的结果造成影响 dp[i][0]=max(dp[i-1][0],dp

timoraty的博客 282

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

LeetCode 1262. 可被三整除的最大和

LeetCode 1262. 可被三整除的最大和 给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。

<font color="Pink">Tisfy的博客</font> 1014

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【leetcode】可被三整除的最大和

给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 示例 1: 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输入:nums = [1,2,3,4,4] 输出:12 解...

Skyed_blue的博客 1442

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

LeetCode163周赛第三题——1262. 可被三整除的最大和

1262. 可被三整除的最大和 题目描述 给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 示例 示例1 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例2 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 题目分析1 一个直观的思路就是...

FiveWords的博客 1439

可被三整除的最大和—leetcode1262

给你一个整数数组nums,请你找出并返回能被三整除的元素最大和。 示例 1: 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输入:nums = [1,2,3,4,4] 输出:12 解释:选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。 ..

独行侠 2359

Leetcode.1262 可被三整除的最大和

解释:选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。解释:4 不能被 3 整除,所以无法选出数字,返回 0。输入:nums = [3,6,5,1,8]输入:nums = [1,2,3,4,4],请你找出并返回能被三整除的元素最大和。按照定义,最终的答案就为。输入:nums = [4]

感觉画质不如...原神的博客 209

可被三整除的最大和【力扣1262】

nums数组中的数可以分为三种类型s0,s1,s2;s0表示除以3余0的数,s1表示除以3余1的数;找出能被三整除的元素最大和sum,那么sum中包含全部s0,以及s1和s2组成的能被三整除的数(比如三个余1的数、一个余1一个余2的数、三个余2的数,等)。设s1中有l1个数,s2中有l2个数。如果sum=s0+s1+s2(贪心算法),则sum%3= (l1+2*l2)%3=r。

qq_44228301的博客 299

[leetcode][1262. 可被三整除的最大和]

1262. 可被三整除的最大和 难度中等81 给你一个整数数组nums,请你找出并返回能被三整除的元素最大和。 示例 1: 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输入:nums = [1,2,3,4,4] 输出:12 解释:选出数字 1, 3, 4 以及 ..

Linger0519的博客 405

LeetCode(1262):可被三整除的最大和 Greatest Sum Divisible by Three(Java)

2019.11.24 LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 这是第一次参加周赛,最后没完全做出这道01背包问题,其关键在于初始值的设定。 建立dp数组,dp[i][j]代表到第i位数字(num[i-1])模3的余数为j的最大累加和。 i=0时的初始值为{0,-INT,-INT},若...

NJU_ChopinXBP的博客 773

LeetCode 1262. 可被三整除的最大和 - 解题思路与代码

本文介绍了解决LeetCode 1262题“可被三整除的最大和”的两种方法。题目要求从数组中选出元素,使其和最大且能被3整除。第一种是贪心算法:先计算总和,若总和模3不为0,则减去最小的一组余1或余2的数。时间复杂度O(NlogN)。第二种是动态规划:维护dp[0-2]表示不同余数的最大和,通过状态转移更新。时间复杂度O(N)。两种方法都能有效解决问题,贪心思路直观,DP效率更高。示例分析验证了算法的正确性。

goodparty的专栏 1331

LeetCode 1262.可被三整除的最大和

给你一个整数数组 nums,请你找出并返回能被三整除的元素最大和。 示例 1: 输入:nums = [3,6,5,1,8] 输出:18 解释:选出数字 3, 6, 1 和 8,它们的和是 18(可被 3 整除的最大和)。 示例 2: 输入:nums = [4] 输出:0 解释:4 不能被 3 整除,所以无法选出数字,返回 0。 示例 3: 输入:nums = [1,2,3,4,4] 输出:12 解释:选出数字 1, 3, 4 以及 4,它们的和是 12(可被 3 整除的最大和)。 提示: 1 <= n

qq_38888209的博客 571

LeetCode 1262:可被三整除的最大和 (贪心算法)—— 题解

贪心问题——可被三整除的最大和

2601_96587588的博客 566
上一篇: LeetCode Hot100 柱状图中最大的矩形
下一篇: Kaggle 下载依赖报错
Wenhao.
博客等级 码龄4年 77粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值