多多的数字组合

  • 题目
  • 思路
  • 代码
  • 结果

题目

多多君最近在研究某种数字组合:
定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N。
满足条件的数字可能很多,找到其中的最小值即可。
多多君还有很多研究课题,于是多多君找到了你–未来的计算机科学家寻求帮助。
题目传送门

思路

1、首先,要找到最小值,所以,0是一定不能使用的。0对数位之和没有影响,但是会使得整体的数值放大10倍。【0影响最小的情况就是放在数字末尾!】
2、每个数字各不相同,也就是说,每个数字只可以使用一次,我们可以有一个标记数组来标记它到底是否能够使用!
3、每个数字只能使用一次,所以,这数位之和最大也就是1+2+3+…+9=45,但凡大于45的数字,都不用考虑。
4、想到前面几点,我就觉得,想要使用回溯法【深搜来进行解决】!

代码

import java.util.Scanner;public class Main {static int N;static int visitedNum[]=new int[10];static int min =Integer.MAX_VALUE;public static void main(String[] args) {Scanner reader=new Scanner(System.in);N=reader.nextInt();// 接收测试的数字int ans=-1;if (N<=9){ans=N;}else if(N>45)ans=-1;else{// 初始化,这些数字都没有被使用过for (int i=0;i<10;++i)visitedNum[i]=0;ans=dfs(0,N);}System.out.println(ans);}private static int  dfs(int a,int n) {if (sum(a)==N){if (min>a){min=a;}}for (int i=1;i<=9;++i){if (visitedNum[i]==0 && sum(a)<N){visitedNum[i]=1;dfs(a*10+i,N); // 搜索完成之后要进行一次回溯visitedNum[i]=0;}}return min;}private static int sum(int n){int count=0;while (n>0){count+=n%10;n/=10;}return count;}
}

结果

AC了,但是在深搜算法之中,因为无法确定哪一个找到的数就是最小的数字,所以需要穷尽所有的结果才能找到最小的数字。【还好是要找最小的数字,因为这样就只需要把小的数字放在最前面就可以了,比如91,这种,是永远不会出现在等待搜索的数字之中的】!

拼多多——多多的数字组合相关推荐

  1. 拼多多2021笔试真题集 多多的数字组合 多多的字符变换 多多的求和计算 多多的骰子组合

    第一题 多多的数字组合 多多君最近在研究某种数字组合: 定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N. 满足条件的数字可能很多,找到其中的最小值即可. 输入描述: 共 ...

  2. 拼多多2021笔试真题集 -- 1. 多多的数字组合

    多多的数字组合 多多君最近在研究某种数字组合: 定义为:每个数字的十进制表示中(0~9),每个数位各不相同且各个数位之和等于N. 满足条件的数字可能很多,找到其中的最小值即可. 多多君还有很多研究课题 ...

  3. 拼多多——多多的字符变换

    多多的字符变换 题目 思路 代码 结果 题目 多多君最近在研究字符串之间的变换,可以对字符串进行若干次变换操作: 交换任意两个相邻的字符,代价为0. 将任意一个字符a修改成字符b,代价为 |a - b ...

  4. 拼多多2亿美元战略投资国美,家电市场将会如何变化?

    继2899元发售新款iPhone SE后,拼多多又搞事情了. 近日,拼多多宣布将认购国美零售发行的2亿美元可转债,期限三年,全部行使转换权后,拼多多将最多获配12.8亿股国美新股份,约占后者发行转换股 ...

  5. 【编程练习】拼多多2021笔试真题集

    题目来源:牛客,拼多多2021笔试真题集 第一题:多多的数字组合 打卡题,很明显的两个约束:每个位数各不相同 + 数字最小,在这两个条件的约束下,N最大为45,对应的数字为123456789. 代码如 ...

  6. 为什么拼多多黄峥和陆奇走到了一起?

    2018年6月 ,拼多多毫无预料地对外披露了招股书,而一同出现的,还有自从百度离职后就"消失"了43天的陆奇--"陆奇和拼多多"的全新组合迅速引起了业界的热议, ...

  7. 禁止 自动 安装 android,如何永远禁止手机安装拼多多?永远禁止手机安装拼多多的方法[多图]...

    拼多多是一个很多用户都会使用到的购物软件,在使用这款软件的时候,用户可以在平台上选择自己想要的服务进行使用和操作,但是很多用户都不喜欢这个服务,如果用户在使用这款软件的时候,不想要使用这款软件,那么可 ...

  8. 多多情报通:拼多多可以看到什么软件?拼多多的大数据分析软件是什么?

    对于拼多多的企业来说,数据分析和运营商店是非常重要的,那么拼多多可以看到什么软件呢?拼多多的大数据分析软件是什么? 作为拼多多数据分析软件,多多情报通可以为卖家提供行业分析.竞争产品分析和商店监控.热 ...

  9. 互联网晚报 | 8月25日 星期三 | 拼多多年度活跃买家数达8.5亿;钉钉推出首个数字工牌产品“钉工牌”;小度科技完成B轮融资...

    今日看点 ✦ 百度旗下小度科技完成B轮融资,投后估值51亿美元 ✦ vivo总投资49.28亿元建智慧终端总部,人才房已开始动工 ✦ 钉钉推出首个数字工牌产品"钉工牌",整合工作身 ...

最新文章

  1. 人工智能的产业落地经验!
  2. WinXP下At,Schtask和Eventtriggers命令实例(一)
  3. 价值为王,市场需要降温
  4. 修改js文件需要重启服务器,关于Node.js中频繁修改代码重启服务器的问题
  5. 嵩天-Python语言程序设计程序题--第二周:基本图形绘制
  6. 那年学过的Java笔记三核心类库三
  7. docker中的hassio升级_趣说Docker
  8. 红外线相关的论文(可见光和红外图像融合、红外图像增强、红外图像目标检测、红外图像分割...)
  9. 全面向新能源转型 透过柠檬混动DHT了解长城汽车森林式生态体系
  10. shell法宝之sed,修改文件内容的好帮手
  11. uni-app应用中单选按钮自定义样式1(实心圆点)
  12. HDWiki/插件开发指南
  13. Python-OpenCV按住鼠标左键绘制图形
  14. 英雄联盟怎么解除小窗口_英雄联盟手游安妮怎么样 英雄联盟手游安妮技能介绍...
  15. Java实现蓝桥杯单位转换
  16. 最新研究动向:智能制造中可应用的技术【区块链与数字孪生】
  17. MBT测试实例:做个“机器人”,使其随机、持续的对“web页面”做交互性测试--补充篇1一些思考
  18. 基于Simulink的自适应模糊控制器.
  19. Navicat Premium 12并安装
  20. 京东到家djencrypt和signKeyV1还原

热门文章

  1. 【笔记】SQL查询语句的基本使用方法
  2. php的persion是,php创建Persion类,反射过程,反射后使用流程详解
  3. 【c语言】矩阵的创建
  4. 通过腾讯云cos做视频点播服务
  5. 第14章 14.1 来自Bitly的USA.gov数据(1)
  6. mysql的时间最晚日期_MySQL日期时间函数
  7. mate20pro怎样装鸿蒙系统,华为放大招!华为Mate20系列也能拍月亮,以后还能升级鸿蒙...
  8. 永恒之蓝(MS17-010)漏洞复现及msf常用渗透命令
  9. 天猫店群起店新玩法,安全稳定,天猫店群全店动销退款单后的玩法
  10. 集丰照明|一帖说清6种防眩射灯应用在家装修上