Day10力扣打卡

打卡记录

求一个整数的惩罚数(预处理+递归)

链接

cpp 复制代码
int PRE_SUM[1001];

int init = []() {
    for (int i = 1; i <= 1000; i++) {
        string s = to_string(i * i);
        int n = s.length();
        function<bool(int, int)> dfs = [&](int p, int sum) -> bool {
            if (p == n) { // 递归终点
                return sum == i; // i 符合要求
            }
            int x = 0;
            for (int j = p; j < n; j++) { // 枚举分割出从 s[p] 到 s[j] 的子串
                x = x * 10 + s[j] - '0'; // 子串对应的整数值
                if (dfs(j + 1, sum + x)) {
                    return true;
                }
            }
            return false;
        };
        PRE_SUM[i] = PRE_SUM[i - 1] + (dfs(0, 0) ? i * i : 0);
    }
    return 0;
}();

class Solution {
public:
    int punishmentNumber(int n) {
        return PRE_SUM[n];
    }
};
相关推荐
玖玥拾几秒前
LeetCode 13 罗马数字转整数
笔记·算法·leetcode
m沐沐29 分钟前
【计算机视觉】OpenCV 物体跟踪——原理、算法与CSRT跟踪器实战
人工智能·python·深度学习·opencv·算法·计算机视觉·人脸识别
明日清晨33 分钟前
VS2022禁用 NRVO/返回值优化(不调用拷贝构造函数处理方式)
c++
阿米亚波1 小时前
【C++ STL】std::array
java·开发语言·c++
choumin1 小时前
结构型模式——组合模式
c++·设计模式·组合模式·结构型模式
怪奇云呼军1 小时前
闪电智能 Voice Agent 怎样根据语速、停顿和追问方式切换话术?策略引擎拆解
开发语言·人工智能·网络协议·算法·语音识别·web app
努力努力再努力wz1 小时前
【分布式系统与 RPC 框架系列】从单机瓶颈到远程调用:一文理解分布式架构与 RPC 原理
linux·网络·c++·分布式·网络协议·rpc·架构
稚南城才子,乌衣巷风流1 小时前
树链剖分(树剖)算法详解:从原理到实现
算法·深度优先
jz_ddk1 小时前
[信号处理] 数学与工程之美:相邻差分共轭乘积
数学·算法·信号处理·差分·共轭
神仙别闹1 小时前
基于C++实现(控制台)景区旅游管理系统
开发语言·c++·旅游