343. 整数拆分 golang 动态规划

题目

  1. 整数拆分
    给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。

示例 1:

输入: 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。
示例 2:

输入: 10
输出: 36
解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
说明: 你可以假设 n 不小于 2 且不大于 58。

解法

首先这个题可以不用动态规划的方式做出来。思路是将任何一个数拆分成多少个3,然后进行余数判断,就可以得到正确答案。

动态规划

在这里插入图片描述

在这里插入图片描述

code

func integerBreak(n int) int {dp := make([]int, n+1)dp[1] = 1dp[2] = 1for i := 3; i <=n; i++ {for j := 1; j < i; j++ {dp[i] = max(dp[i], j * max(i-j, dp[i-j]))}}// fmt.Println(dp)return dp[n]
}func max(a, b int) int {if a > b {return a}return b
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382185.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

279. 完全平方数 golang 动态规划

题目 类似题目&#xff1a;322. 零钱兑换 279. 完全平方数 给定正整数 n&#xff0c;找到若干个完全平方数&#xff08;比如 1, 4, 9, 16, …&#xff09;使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 示例 1: 输入: n 12 输出: 3 解释: 12 4 4 4. 示例…

动态规划-01背包问题详解

read&#xff0c;write&#xff0c;comprehend

322. 零钱兑换 golang 动态规划

题目 零钱兑换 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额&#xff0c;返回 -1。 示例 1: 输入: coins [1, 2, 5], amount 11 输出: 3 解释: 11 5 5 1 示例 2: 输入…

377. 组合总和 Ⅳ golang 动态规划

题目 377. 组合总和 Ⅳ 类似322 给定一个由正整数组成且不存在重复数字的数组&#xff0c;找出和为给定目标正整数的组合的个数。 示例: nums [1, 2, 3] target 4 所有可能的组合为&#xff1a; (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1) 请注意…

LeetCode上读不懂题!看不懂测试用例的那些题(有生之年更新。。。)

文章目录599. 两个列表的最小索引总和521. 最长特殊序列 Ⅰ645. 错误的集合小彩蛋599. 两个列表的最小索引总和 假设Andy和Doris想在晚餐时选择一家餐厅&#xff0c;并且他们都有一个表示最喜爱餐厅的列表&#xff0c;每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索…

746. 使用最小花费爬楼梯 golang 动态规划

746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯&#xff0c;第 i个阶梯对应着一个非负数的体力花费值 costi。 每当你爬上一个阶梯你都要花费对应的体力花费值&#xff0c;然后你可以选择继续爬一个阶梯或者爬两个阶梯。 您需要找到达到楼层顶…

474. 一和零 golang动态规划

474. 一和零 在计算机界中&#xff0c;我们总是追求用有限的资源获取最大的收益。 现在&#xff0c;假设你分别支配着 m 个 0 和 n 个 1。另外&#xff0c;还有一个仅包含 0 和 1 字符串的数组。 你的任务是使用给定的 m 个 0 和 n 个 1 &#xff0c;找到能拼出存在于数组中…

518. 零钱兑换 II golang动态规划

518. 零钱兑换 II 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount 5, coins [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 55 5221 52111 511111 示例 2: 输入: amount 3, co…

494. 目标和 golang 动态规划

题目 494. 目标和 给定一个非负整数数组&#xff0c;a1, a2, …, an, 和一个目标数&#xff0c;S。现在你有两个符号 和 -。对于数组中的任意一个整数&#xff0c;你都可以从 或 -中选择一个符号添加在前面。 返回可以使最终数组和为目标数 S 的所有添加符号的方法数。 示…

1360. 日期之间隔几天 golang

1360. 日期之间隔几天 请你编写一个程序来计算两个日期之间隔了多少天。 日期以字符串形式给出&#xff0c;格式为 YYYY-MM-DD&#xff0c;如示例所示。 示例 1&#xff1a; 输入&#xff1a;date1 “2019-06-29”, date2 “2019-06-30” 输出&#xff1a;1 示例 2&#…

1154. 一年中的第几天 golang

1154. 一年中的第几天 给你一个按 YYYY-MM-DD 格式表示日期的字符串 date&#xff0c;请你计算并返回该日期是当年的第几天。 通常情况下&#xff0c;我们认为 1 月 1 日是每年的第 1 天&#xff0c;1 月 2 日是每年的第 2 天&#xff0c;依此类推。每个月的天数与现行公元纪…

1185. 一周中的第几天 golang

1185. 一周中的第几天 给你一个日期&#xff0c;请你设计一个算法来判断它是对应一周中的哪一天。 输入为三个整数&#xff1a;day、month 和 year&#xff0c;分别表示日、月、年。 您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday…

golang time包梳理

import “time” 官方文档 func main() {fmt.Println(time.Now())// Parse解析一个格式化的时间字符串并返回它代表的时间fmt.Println(time.Parse("2006.01.02", "2012.02.11"))date : time.Now()// 判断两个时间是否相同&#xff0c;会考虑时区的影响&a…

179. 最大数 golang (自定义sort)

179. 最大数 给定一组非负整数&#xff0c;重新排列它们的顺序使之组成一个最大的整数。 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 说明: 输出结果可能非常大&#xff0c;所以你需要返回一个字符串而不是整数。 Code import ("so…

1356. 根据数字二进制下 1 的数目排序 golang

golang的自定义排序 根据数字二进制下 1 的数目排序 给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同&#xff0c;则必须将它们按照数值大小升序排列。 请你返回排序后的数组。 示例 1&#x…

LeetCode单链表题目测试代码(只需添加对应题目,本地即可debug)

本地模拟单链表 package single_listimport ("strconv" )/*** Definition for singly-linked list.* type ListNode struct {* Val int* Next *ListNode* }*/type ListNode struct {Val intNext * ListNode } // Add String method to use print func (l *L…

138. 复制带随机指针的链表 golang

138. 复制带随机指针的链表 这个题结构体特殊&#xff0c;需要更改上一篇博客的node结构体 给定一个链表&#xff0c;每个节点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。 我们用一个由 n 个节点组成的链表…

160. 相交链表 golang

160. 相交链表 计算两个链表长度&#xff0c;让长的先走到两个链表一样长&#xff0c;然后找交点 编写一个程序&#xff0c;找到两个单链表相交的起始节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, li…

86. 分隔链表 golang

86. 分隔链表 只把小的放在一边&#xff0c;大于的不用放到右边&#xff08;这个题的题目比较晦涩&#xff0c;很多人说看不懂题&#xff0c;我也没看懂&#xff0c;解法也没什么特殊&#xff0c;半天没读懂题&#xff0c;看了别人的解法&#xff09; 给定一个链表和一个特定值…

141. 环形链表 golang

141. 环形链表 给定一个链表&#xff0c;判断链表中是否有环。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如果 pos 是 -1&#xff0c;则在该链表中没有环。 示例 1&#xff1a; 输入&a…