leetcode 完全平方数 中等
时间:2021-08-17
本文章向大家介绍leetcode 完全平方数 中等,主要包括leetcode 完全平方数 中等使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
① dp:完全背包,没啥好说的
② bfs:有很重要的一点,在 bfs 中的循环中提前判断是否到达 0,能够减少很多计算。是减少很多很多!!!
③数学题:不记录。
dp:
class Solution { public: int numSquares(int n) { vector<int> dp(n + 1, INT_MAX); // 组成 i 所用的最少的数个数 dp[0] = 0; for(int i = 1; i <= n; ++ i) { for(int j = 1; j * j <= i; ++ j) { dp[i] = min(dp[i], dp[i - j * j] + 1); } } return dp[n]; } };
bfs:
class Solution { public: int numSquares(int n) { queue<pair<int, int>> que; que.push({n, 0}); vector<bool> tag(n + 1, false); while(!que.empty()) { auto front = que.front(); que.pop(); for(int i = sqrt(front.first); i >= 1; -- i) { if(front.first == i * i) return front.second + 1; // 可少跑很多数据 if(tag[front.first - i * i]) continue; // 可少跑很多数据 tag[front.first - i * i] = true; que.push({front.first - i * i, front.second + 1}); } } return -1; } };
原文地址:https://www.cnblogs.com/rookie-acmer/p/15154468.html
- React第三方组件6(状态管理之Mobx的使用①简单使用)
- poj 1088 滑雪
- 八数码难题解法大全
- React第三方组件5(状态管理之Redux的使用⑥Redux DevTools)
- React第三方组件5(状态管理之Redux的使用⑤异步操作)
- HDU - 1846 Brave Game
- React多页面应用4(webpack4 提取第三方包及公共组件)
- zoj 2420
- SPOJ NWERC11B Bird tree
- React多页面应用6(gulp自动化发布到多个环境、生成版本号、压缩成zip等)
- SDIBT 1046 Primary Arithmetic
- 洛谷P2415 集合求和
- React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
- SDIBT 1046 Primary Arithmetic
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 基于docker封装prometheus解决时区问题
- Node.js 如何处理 ES6 模块
- 关于Hive使用的一些实例
- 134. 加油站 Krains 2020-08-20 14:03:21 前缀和贪心
- 53. 最大子序和 Krains 2020-08-20 10:46:24 动态规划前缀和
- 如何用Unity导出H5与小游戏的3D场景
- 设计模式 之 模板模式
- java基础:注解的定义与使用
- 使用 vagrant 从搭建 gitlab server 开始体验整个 gitlab CI/CD 过程
- 纲手推荐程序笔记1-p5.js创意游戏编程
- 由浅入深彻底了解 Python 闭包和装饰器
- leetcode1078 Occurrences After Bigram
- 负二进制加法实现
- 如何在O(1)时间复杂度下实现LRU
- 字符串拼接的N种方式