当前位置: 首页 > news >正文

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算法题——数位之积

记录算法究极无敌菜菜菜鸟的垃圾思维 题目&#xff1a; 现给定任意正整数 n&#xff0c;请寻找并输出最小的正整数 m&#xff08;m>9&#xff09;&#xff0c;使得 m 的各位&#xff08;个位、十位、百位 … …&#xff09;之乘积等于n&#xff0c;若不存在则输出 -1。 菜鸟…...

OPC Router快速打通设备层与influxDB数据通讯

随着时代演化&#xff0c;数据量呈几何倍数增加的情况下出现了时序数据库。时序数据库是基于时间进行存储的数据库&#xff0c;每一条数据中都有一个时间戳&#xff0c;这种数据库特别适合存储那些随着时间变化的数据&#xff0c;通过一些工具处理后&#xff0c;能够分析出数据…...

鸿蒙开发 四十四 ArkTs BuilderParam传递UI(二)

子组件多个BuilderParam&#xff0c;必须通过参数的方式传入&#xff0c;如果界面中有多个界面需要传递&#xff0c;可以定义多个尾随闭包&#xff0c;如图&#xff1a; 在自定义组件中调用&#xff1a; 在使用时候调用是作为参数传递给自定义的组件&#xff0c;参数是界面&…...

同期数分析-留存率

目录 同期数分析 加载数据 单月实现 统计每个月的订单量 求2月份的订单量和用户数量 求2月之前的历史订单量 筛选出2023年2月的新增的用户数 计算2023年2月在后面的留存情况 完整的2023年2月份同期群结果 遍历合并和分析 引入月份列表 遍历 调整成留存率的形式 回…...

Java前后端交互:构建现代Web应用

在现代Web应用开发中&#xff0c;前后端分离是一种常见的架构模式。后端通常负责数据处理和业务逻辑&#xff0c;而前端则负责用户界面和用户体验。Java作为后端开发的强大语言&#xff0c;提供了多种方式与前端进行交互。本文将探讨Java后端与前端交互的几种主要方式&#xff…...

vue3中用axios请求怎么添加cookie

在 Vue 3 中使用 axios 发起请求时&#xff0c;可以通过配置 axios 的请求选项来携带 Cookies。具体来说&#xff0c;确保跨域请求时&#xff0c;设置 withCredentials: true&#xff0c;以便发送和接收 Cookies。 1. Axios 配置携带 Cookie 首先确保你在 axios 请求中设置了…...

informer学习笔记

一、informer讲解 infomer 要解决的三大问题&#xff1a; Attention计算的更快Decoder要一次性输出所有预测堆叠encoder也要更快 1. Attention 在长序列中&#xff0c;并非每一个位置的Attention都重要&#xff0c;对于每一个Q来说&#xff0c;只有一小部分的K与其有较强的…...

Elasticsearch介绍和使用

一、Elasticsearch 强大的搜索和分析能力&#xff1a; Elasticsearch 是一个基于 Lucene 的分布式搜索和分析引擎。它能够快速地对大量数据进行全文搜索、结构化搜索和复杂的数据分析操作。对于大型数据集&#xff0c;它可以高效地处理各种查询需求&#xff0c;包括关键词搜索…...

【Flutter】基础入门:代码基本结构

通过这个简单的 Flutter 示例程序&#xff0c;我们可以快速了解 Flutter 的代码结构&#xff0c;理解每个部分的作用。 import package:flutter/material.dart; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}…...

如何进行数据库缩容 | OceanBase应用实践

作者&#xff1a;关炳文&#xff0c;爱可生 DBA 团队成员&#xff0c;负责数据库相关技术支持。 本文详细介绍了OceanBase V3.2版的集群中&#xff0c;面对数据文件缩容的场景的一套缩容方案&#xff0c;作为大家的参考。 缩容场景 某银行运行的一套采用1-1-1架构的OceanBase…...

机器学习和深度学习的差别

定义和基本原理 机器学习&#xff1a; 定义&#xff1a;机器学习是一种让计算机自动从数据中学习规律和模式的方法&#xff0c;无需明确编程。它通过构建数学模型&#xff0c;利用已知数据进行训练&#xff0c;然后对新的数据进行预测或决策。基本原理&#xff1a;机器学习算…...

RAG拉满-上下文embedding与大模型cache

无论怎么选择RAG的切分方案&#xff0c;仍然切分不准确。 最近&#xff0c;anthropics给出了补充上下文的embedding的方案&#xff0c;RAG有了新的进展和突破。 从最基础的向量查询&#xff0c;到上下文embedding&#xff0c;再到rerank的测试准确度都有了明显的改善&#xf…...

前端学习---(2)CSS基础

CSS 用来干什么&#xff1f; CSS 是用来指定文档如何展示给用户的一门语言——如网页的样式、布局、等等。 css语法: 选择器{ 属性名: 属性值; 属性名: 属性值; } h1 {color: red;font-size: 5em; }h1: 选择器 color: 属性 冒号之前是属性&#xff0c;冒号之后是值。 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题火柴拼正方形

题目&#xff1a; 题解&#xff1a; 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算法的局限性七、总结 一、引言 在自适应滤波领域&#xff0c;LMS&#xff08;Least Mean Squares&#xff09;算法因其计算简单、实现方便而广受欢迎。然而&#xff0…...

Centos 7.9NFS搭建

原创作者&#xff1a;运维工程师 谢晋 Centos 7.9NFS搭建 NFS服务端安装客户机访问共享配置 NFS服务端安装 SSH连接系统登录到服务端安装nfs服务 # yum -y install nfs-utils2. 安装完成后&#xff0c;查看需要共享的目录&#xff0c;这边共享的是/home目录&#xff0c;如…...

Python库numpy之三

Python库numpy之三 # NumPy数组创建函数二维数组创建函数numpy.eye应用例子numpy.diag应用例子numpy.vander应用例子 # NumPy数组创建函数 二维数组创建函数 numpy.eye 词法&#xff1a;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 …...

基于机器学习的天气数据分析与预测系统

天气预报是日常生活中非常重要的信息来源&#xff0c;能够帮助人们合理安排日程、预防自然灾害。随着数据科学和机器学习的快速发展&#xff0c;传统的天气预报方法逐渐向基于数据驱动的机器学习方法转变。本文将探讨如何构建一个基于机器学习的天气数据分析与预测系统&#xf…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

BLEU评分:机器翻译质量评估的黄金标准

BLEU评分&#xff1a;机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域&#xff0c;衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标&#xff0c;自2002年由IBM的Kishore Papineni等人提出以来&#xff0c;…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...

CVE-2023-25194源码分析与漏洞复现(Kafka JNDI注入)

漏洞概述 漏洞名称&#xff1a;Apache Kafka Connect JNDI注入导致的远程代码执行漏洞 CVE编号&#xff1a;CVE-2023-25194 CVSS评分&#xff1a;8.8 影响版本&#xff1a;Apache Kafka 2.3.0 - 3.3.2 修复版本&#xff1a;≥ 3.4.0 漏洞类型&#xff1a;反序列化导致的远程代…...