LeetCode650
LeetCode每日一题2021.9.19
分析
我们发现每个数字只能由它的因数通过复制而来, 因为复制操作是每次去添加一个相同的个数.
因此我们就可以得出DP方程 dp[i] = min({dp[i], dp[i/j] + j, dp[j] + i/j})
因为我们直接两重循环进行状态转移即可
const int N = 1010;
class Solution {
public:
int f[N] = {0};
int minSteps(int n) {
memset(f, 0x3f, sizeof f);
f[1] = 0;
for(int i = 2; i <= n; i ++ ) {
for(int j = 1; j <= i / j; j ++ ) {
if(i % j == 0)
f[i] = min({f[i], f[i/j]+j,f[j]+i/j});
}
}
return f[n];
}
};
LeetCode650的更多相关文章
- [Swift]LeetCode650. 只有两个键的键盘 | 2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...
- leetcode650—2 Keys Keyboard
Initially on a notepad only one character 'A' is present. You can perform two operations on this not ...
- leetcode650 2 Keys Keyboard
思路: 把给定的数分解质因子之后,对于每一个质因子x,都需要x次操作(一次copy all操作和x-1次paste),所以答案就是对分解后的所有质因子求和. 实现: class Solution { ...
- leetcode weekly contest 43
leetcode weekly contest 43 leetcode649. Dota2 Senate leetcode649.Dota2 Senate 思路: 模拟规则round by round ...
随机推荐
- hdu 4549 M斐波那契数列(快速幂 矩阵快速幂 费马小定理)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4549: 题目是中文的很容易理解吧.可一开始我把题目看错了,这毛病哈哈. 一开始我看错题时,就用了一个快速 ...
- Lucky7(hdu5768)
Lucky7 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- hdu-5587 Array(递归)
Array Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- 高并发 IO 模型
五种IO模型包括:阻塞IO.非阻塞IO.IO多路复用.信号驱动IO.异步IO. 阻塞IO模型: 不管是网络IO还是磁盘IO,对于读操作而言,都是等到网络的某个数据分组到达后/数据准备好后,将数据拷贝到 ...
- docker学习:docker镜像
镜像是什么 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. UnionFS(联合文件系 ...
- Hadoop常用命令及基本概念
HADOOP 是什么? 分布式计算开源框架,其核心组件为:HDFS.MAPREDUCE.YARN Hadoop各个功能模块的理解 1. HDFS模块 HDFS负责大数据的存储,通过将大文件分块后进行分 ...
- Docker_容器(container)使用(4)
参数说明 -i: 交互式操作. -t: 终端. -d: 指定容器运行模式. --name:指定容器的NAMES字段名称,不指定则随机生成名称 --restart:容器启动策略.默认为no,常用为alw ...
- 第51篇-SharedRuntime::generate_native_wrapper()生成编译入口
当某个native方法被调用时,一开始它会从解释入口进入,也就是我之前介绍的.由InterpreterGenerator::generate_native_entry()函数生成的入口例程.在这个例程 ...
- Pop Sequeue
题目描述 Given a stack which can keep M numbers at most. Push N numbers in the order of 1,2,3...,N and p ...
- GNU C字节对齐__attribute__((aligned(n))) #pragma pack(n)
在阅读gnu软件c源代码时,经常会遇到字节对齐相关操作,比如uboot命令相关的代码中,会遇到__attribute__((aligned(n)))扩展关键字,#pragma pack(n)预处理指令 ...