VIVO算法题——数位之积
记录算法究极无敌菜菜菜鸟的垃圾思维
题目:
现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。
菜鸟思维Recording【30分钟左右】
大学四年没碰过算法,小学生思维,勿喷勿喷
最开始我想使用查找表的方式先将所有结果都记录在一个table中,然后后续根据index去查找答案。
#include<stdio.h>
#include<limits.h>#define MAX 10000
int table[MAX];
/**
* 构造查找表
*/
void createTable(){int i, temp, multi;//初始化全局变量为最大值,否则默认为0for(i = 0; i < MAX; i++){table[i] = INT_MAX;}i = 0;while(i<MAX){multi = 1;temp = i;while(temp > 0){multi = multi*(temp%10);temp = temp/10;}if(table[multi] > i){table[multi] = i;}i++;}
}/*@param input:输入字符串序列@return int:返回正确的结果
*/
int func(char* input) {createTable();// Please fill this blank//将char*转换为intint num = 0, i = 0;while(input[i] != '\0'){num = num*10+input[i] -'0';i++;}return table[num];
}int main() {char str[100];printf("请输入一个字符串\n");scanf("%s", str);printf("%d", func(str));return 0;
}
分析
- 题目并没有说明输入的字符的最大数量,在我的代码里人为定义了MAX,会造成内存溢出的问题(ERR)
- createTable的成本太高太高太高。内层while次数取决于位数,可以近似等于log(i)。所以总的时间复杂度应该是O(nlog(n))

参考题解
因为限制了最小正整数m>9,所以对于小于10的数,返回结果应该是(10+num);对于大于等于10的数,高位越小,那么得到的数字肯定越小,结果其实就是这个整数的因子的一个组合,要得到最小的组合的整数,那么低位就应该尽可能的取大值,这样才能保证高位得到的是最小的。如果没有余数就表示这个数是有结果的,有余数就表示这个数不存在。
#include <stdio.h>
int func(char* input){
//将str转换为intint i = 0, num = 0, res = 0, pos = 1;while(input[i]!='\0'){num = num*10 + input[i]-'0';i++;}if(num < 10) return (10+num);for(i = 9; i > 1; i--){while(num% i == 0){//pos表示位数res += i*pos;pos *= 10;num/=i;}}if(num> 1) return -1;else return res;
}int main() {char str[1000];printf("请输入一个字符串\n");scanf("%s", str);printf("%d", func(str));return 0;
}
分析
时间复杂度应该是O(log(n)),因为这里char转换为整型也存在可能内存溢出的情况,但是没有上面的严重。

相关文章:
VIVO算法题——数位之积
记录算法究极无敌菜菜菜鸟的垃圾思维 题目: 现给定任意正整数 n,请寻找并输出最小的正整数 m(m>9),使得 m 的各位(个位、十位、百位 … …)之乘积等于n,若不存在则输出 -1。 菜鸟…...
OPC Router快速打通设备层与influxDB数据通讯
随着时代演化,数据量呈几何倍数增加的情况下出现了时序数据库。时序数据库是基于时间进行存储的数据库,每一条数据中都有一个时间戳,这种数据库特别适合存储那些随着时间变化的数据,通过一些工具处理后,能够分析出数据…...
鸿蒙开发 四十四 ArkTs BuilderParam传递UI(二)
子组件多个BuilderParam,必须通过参数的方式传入,如果界面中有多个界面需要传递,可以定义多个尾随闭包,如图: 在自定义组件中调用: 在使用时候调用是作为参数传递给自定义的组件,参数是界面&…...
同期数分析-留存率
目录 同期数分析 加载数据 单月实现 统计每个月的订单量 求2月份的订单量和用户数量 求2月之前的历史订单量 筛选出2023年2月的新增的用户数 计算2023年2月在后面的留存情况 完整的2023年2月份同期群结果 遍历合并和分析 引入月份列表 遍历 调整成留存率的形式 回…...
Java前后端交互:构建现代Web应用
在现代Web应用开发中,前后端分离是一种常见的架构模式。后端通常负责数据处理和业务逻辑,而前端则负责用户界面和用户体验。Java作为后端开发的强大语言,提供了多种方式与前端进行交互。本文将探讨Java后端与前端交互的几种主要方式ÿ…...
vue3中用axios请求怎么添加cookie
在 Vue 3 中使用 axios 发起请求时,可以通过配置 axios 的请求选项来携带 Cookies。具体来说,确保跨域请求时,设置 withCredentials: true,以便发送和接收 Cookies。 1. Axios 配置携带 Cookie 首先确保你在 axios 请求中设置了…...
informer学习笔记
一、informer讲解 infomer 要解决的三大问题: Attention计算的更快Decoder要一次性输出所有预测堆叠encoder也要更快 1. Attention 在长序列中,并非每一个位置的Attention都重要,对于每一个Q来说,只有一小部分的K与其有较强的…...
Elasticsearch介绍和使用
一、Elasticsearch 强大的搜索和分析能力: Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎。它能够快速地对大量数据进行全文搜索、结构化搜索和复杂的数据分析操作。对于大型数据集,它可以高效地处理各种查询需求,包括关键词搜索…...
【Flutter】基础入门:代码基本结构
通过这个简单的 Flutter 示例程序,我们可以快速了解 Flutter 的代码结构,理解每个部分的作用。 import package:flutter/material.dart; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}…...
如何进行数据库缩容 | OceanBase应用实践
作者:关炳文,爱可生 DBA 团队成员,负责数据库相关技术支持。 本文详细介绍了OceanBase V3.2版的集群中,面对数据文件缩容的场景的一套缩容方案,作为大家的参考。 缩容场景 某银行运行的一套采用1-1-1架构的OceanBase…...
机器学习和深度学习的差别
定义和基本原理 机器学习: 定义:机器学习是一种让计算机自动从数据中学习规律和模式的方法,无需明确编程。它通过构建数学模型,利用已知数据进行训练,然后对新的数据进行预测或决策。基本原理:机器学习算…...
RAG拉满-上下文embedding与大模型cache
无论怎么选择RAG的切分方案,仍然切分不准确。 最近,anthropics给出了补充上下文的embedding的方案,RAG有了新的进展和突破。 从最基础的向量查询,到上下文embedding,再到rerank的测试准确度都有了明显的改善…...
前端学习---(2)CSS基础
CSS 用来干什么? CSS 是用来指定文档如何展示给用户的一门语言——如网页的样式、布局、等等。 css语法: 选择器{ 属性名: 属性值; 属性名: 属性值; } h1 {color: red;font-size: 5em; }h1: 选择器 color: 属性 冒号之前是属性,冒号之后是值。 font-size…...
Pandas常用计算函数
目录 排序函数 nlargest函数 nsmallest函数 sort_values函数 df.sort_values Series.sort_values 聚合函数 corr函数-相关性 min函数-最小值 max函数-最大值 mean函数-平均值 sum函数-求和 count函数-统计非空数据 std函数-标准偏差 quantile函数-分位数 排序函…...
C++ | Leetcode C++题解之第473题火柴拼正方形
题目: 题解: class Solution { public:bool makesquare(vector<int>& matchsticks) {int totalLen accumulate(matchsticks.begin(), matchsticks.end(), 0);if (totalLen % 4 ! 0) {return false;}int len totalLen / 4, n matchsticks.s…...
深度解析RLS(Recursive Least Squares)算法
目录 一、引言二、RLS算法的基本思想三、RLS算法的数学推导四、RLS算法的特点五、RLS算法的应用场景六、RLS算法的局限性七、总结 一、引言 在自适应滤波领域,LMS(Least Mean Squares)算法因其计算简单、实现方便而广受欢迎。然而࿰…...
Centos 7.9NFS搭建
原创作者:运维工程师 谢晋 Centos 7.9NFS搭建 NFS服务端安装客户机访问共享配置 NFS服务端安装 SSH连接系统登录到服务端安装nfs服务 # yum -y install nfs-utils2. 安装完成后,查看需要共享的目录,这边共享的是/home目录,如…...
Python库numpy之三
Python库numpy之三 # NumPy数组创建函数二维数组创建函数numpy.eye应用例子numpy.diag应用例子numpy.vander应用例子 # NumPy数组创建函数 二维数组创建函数 numpy.eye 词法:numpy.eye(N, MNone, k0, dtype<class ‘float’>, order‘C’, *, deviceNone, …...
postgresql 安装
一、下载 PostgreSQL: File Browser 下载地址 PostgreSQL: File Browser 上传到服务器,并解压 二、安装依赖 yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel 创建postgresql 和目录 useradd …...
基于机器学习的天气数据分析与预测系统
天气预报是日常生活中非常重要的信息来源,能够帮助人们合理安排日程、预防自然灾害。随着数据科学和机器学习的快速发展,传统的天气预报方法逐渐向基于数据驱动的机器学习方法转变。本文将探讨如何构建一个基于机器学习的天气数据分析与预测系统…...
Rust 时间处理神器:chrono 从入门到实战
Rust 时间处理神器:chrono 从入门到实战 在 Rust 生态中,chrono 凭借其遵循 ISO 8601 标准、支持时区、类型安全且性能优异的特性,成为了 Rust 开发者的首选工具。本文将从入门到进阶,并结合实际开发场景带你全面掌握 chrono 的使…...
如何动态调整dynamic-datasource数据源权重:负载均衡API调用终极指南
如何动态调整dynamic-datasource数据源权重:负载均衡API调用终极指南 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynamic-datasou…...
Noto Emoji完整指南:三步告别表情豆腐块困扰
Noto Emoji完整指南:三步告别表情豆腐块困扰 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji 你是否曾经在聊天时发送了一个表情,对方却只看到一个空白的方块?或者在不同设备上…...
分支定界算法实战:从理论到编程实现的关键步骤解析
1. 分支定界算法入门:从买菜砍价到代码实现 想象一下你在菜市场砍价的场景:老板开价100元,你心里有个底线是80元。这时候你会怎么做?通常会先试探性报个低价(比如60元),然后根据老板反应逐步调…...
3大维度解锁Greasy Fork:让普通用户变身浏览器定制大师
3大维度解锁Greasy Fork:让普通用户变身浏览器定制大师 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 认知破局:重新认识浏览器脚本的真正价值 你是否曾因网页广…...
10.3处理流程设计-系统设计-人机界面设计
一、流程设计 00:00 1. 流程设计工具 00:25 1)程序流程图 00:32 基本概念: 用图框表示各种操作,独立于程序设计语言,直观清晰结构组成: 仅由顺序、选择和循环三种基本结构组合或嵌套而成应用场景: 可描述…...
终极C++编码标准指南:基于C++核心规范的AI驱动最佳实践
终极C编码标准指南:基于C核心规范的AI驱动最佳实践 【免费下载链接】everything-claude-code The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Curso…...
2026前端面经
2026前端面经1、前端怎么做到页面无刷新1、前端怎么做到页面无刷新 前端无刷新更新页面,核心就是不重新加载整个 HTML 页面,只局部更新数据和视图,这也是现代 Web 应用(SPA)的核心能力。 原生 AJAX (XMLHttpRequest)…...
DDrawCompat深度解析:让经典DirectX游戏在现代Windows重焕生机
DDrawCompat深度解析:让经典DirectX游戏在现代Windows重焕生机 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/d…...
如何通过可视化学习快速掌握RISC-V?专业仿真平台全解析
如何通过可视化学习快速掌握RISC-V?专业仿真平台全解析 【免费下载链接】Ripes A graphical processor simulator and assembly editor for the RISC-V ISA 项目地址: https://gitcode.com/gh_mirrors/ri/Ripes RISC-V学习工具的选择直接影响掌握效率&#x…...

