279. 完全平方数

server/2024/10/22 0:30:37/

在这里插入图片描述

解法一、回溯法:

class Solution {public int numSquares(int n) {return numSquaresHepler(n);}public int numSquaresHepler(int n){if(n == 0) return 0;int count = Integer.MAX_VALUE;for(int i = 1; i * i <= n; i++){count = Math.min(count,numSquaresHepler(n - i * i) + 1);}return count;}
}

解法二、HashMap 优化回溯法

解法一超时,解法二优化通过使用 HashMap 保存

class Solution {public int numSquares(int n) {return numSquaresHepler(n,new HashMap<Integer,Integer>());}public int numSquaresHepler(int n,HashMap<Integer,Integer> map){if(map.containsKey(n)) return map.get(n);if(n == 0) return 0;int count = Integer.MAX_VALUE;for(int i = 1; i * i <= n; i++){count = Math.min(count,numSquaresHepler(n - i * i,map) + 1);}map.put(n,count);return count;}
}

解法三、动态优化

递归相当于先压栈压栈然后出栈出栈,动态规划可以省去压栈的过程。

动态规划的转移方程就对应递归的过程,动态规划的初始条件就对应递归的出口。

class Solution {public int numSquares(int n) {int[] dp = new int[n+1];Arrays.fill(dp,Integer.MAX_VALUE);dp[0] = 0;for(int i = 1; i <= n; i++){//依次减去一个平方数for(int j = 1; j * j <= i; j++){dp[i] = Math.min(dp[i],dp[i-j*j]+1);}}return dp[n];}
}

http://www.ppmy.cn/server/48247.html

相关文章

rk3588 linux usb2.0 host0 host1调试

rk3588 linux usb2.0 host0 host1调试 文章目录 rk3588 linux usb2.0 host0 host1调试前言一、RK3588 USB简介1.1、RK3588 支持4个独立的USB控制器,不同控制器相互独立:1.2、RK3588 USB控制器和USB PHY的连接示意图二、USB2.0 HOST接口调试2.1、硬件原理图2.2、DTS代码前言 …

ubuntu22.04 gitleb服务器满了,扩容机器的磁盘的详细步骤

在Ubuntu 22.04上为GitLab服务器扩容磁盘可以分为以下几步进行&#xff1a;增加磁盘空间、扩展文件系统&#xff0c;并确保数据安全。这些步骤可以应用于物理服务器或虚拟机&#xff08;包括云服务中的实例&#xff09;。以下是详细步骤&#xff1a; 1. 添加新的磁盘空间 1.1…

迅狐矩阵系统:智能化多平台内容管理与发布

迅狐矩阵系统是一套专为提高数字内容管理和发布效率而设计的综合性解决方案。它通过一系列智能化功能&#xff0c;帮助用户实现多平台内容的高效管理和发布&#xff0c;以下是系统的几大核心优势&#xff1a; 多平台绑定发布 迅狐矩阵系统支持用户绑定多个平台的多个账号&…

FlowUs轻量化AI:趁这波升级专业版,全年无限AI助力笔记产出与二次编写

在数字时代&#xff0c;信息管理与知识产出的效率直接影响个人的生产力。FlowUs作为一款集笔记、文档、多维表、文件夹于一体的新一代知识管理平台&#xff0c;其轻量化AI的加入更是如虎添翼。特别是在活动期间&#xff0c;升级专业版将带来全年无限AI使用次数&#xff0c;让每…

vue3的websocket连接

直接上代码 分方法代码-util.ts中 let websock: any null; let global_callback: any null; //创建多个WebSocket实例&#xff0c;没想到怎么优化&#xff0c;先这么写 function createWebSocket(callback: any, url: any) {// || websock.readyState WebSocket.CLOSEDif …

王学岗鸿蒙开发(北向)——————(十三)音乐播放器

AudioRenderer适合录音 AVPlayer:简单的本地单曲播放 MP3文件放置的地方 import media from ohos.multimedia.media import common from ohos.app.ability.common; Entry Component struct Index {//第1步&#xff1a;avPlayer:media.AVPlayer nullasync onPageShow(){//第…

力扣76.最小覆盖子串

力扣76.最小覆盖子串 用哈希表记录每个字母出现次数 枚举右端点 判断是否能全覆盖如果可以 并且更短 就更新 j 缩小区间再判断 class Solution {bool is_covered(int cnt_s[], int cnt_t[]) {for (int i A; i < Z; i) {if (cnt_s[i] < cnt_t[i]) {return false;}}fo…

计算机网络 期末复习(谢希仁版本)第5章

**屏蔽作用&#xff1a;**运输层向高层用户屏蔽了下面网络核心的细节&#xff08;如网络拓扑、所采用的路由选择协议等&#xff09;&#xff0c;使应用进程看见的就是好像在两个运输层实体之间有一条端到端的逻辑通信信道。 10. 端口用一个 16 位端口号进行标志&#xff0c;允许…