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

广州有哪些网站建设教育培训机构前十名

广州有哪些网站建设,教育培训机构前十名,展馆展示设计公司一般做什么设计,30天网站建设实录视频给定一个数字字符串S和一个数组nums,数组中的元素都在0~9之间,问从数组中选择元素组成的数字,小于N的最大值是多少? 例如:S “24378”,nums:{2,3,9},组成的最大值为23999。 👨‍&am…

给定一个数字字符串S和一个数组nums,数组中的元素都在0~9之间,问从数组中选择元素组成的数字,小于N的最大值是多少?
例如:S = “24378”,nums:{2,3,9},组成的最大值为23999。

👨‍🏫 参考视频

import java.util.Arrays;public class Main {public static void main(String[] args) {/*示例 1:A={1, 2, 9, 4},n=2533,返回 2499。示例 2:A={1, 2, 5, 4},n=2543,返回 2542。示例 3:A={1, 2, 5, 4},n=2541,返回 2525。示例 4:A={1, 2, 9, 4},n=2111,返回 1999。示例 5:A={5, 9},n=5555,返回 999。*/// 示例1int[] a1 = {1, 2, 9, 4};int[] n1 = {2, 5, 3, 3};System.out.println("示例1:" + getMaxLessNum(a1, n1) + " (应返回2499)");// 示例2int[] a2 = {1, 2, 5, 4};int[] n2 = {2, 5, 4, 3};System.out.println("示例2:" + getMaxLessNum(a2, n2) + " (应返回2542)");// 示例3int[] a3 = {1, 2, 5, 4};int[] n3 = {2, 5, 4, 1};System.out.println("示例3:" + getMaxLessNum(a3, n3) + " (应返回2525)");// 示例4int[] a4 = {1, 2, 9, 4};int[] n4 = {2, 1, 1, 1};System.out.println("示例4:" + getMaxLessNum(a4, n4) + " (应返回1999)");// 示例5int[] a5 = {5, 9};int[] n5 = {5, 5, 5, 5};System.out.println("示例5:" + getMaxLessNum(a5, n5) + " (应返回999)");}/*** 获取由数组nums中的元素组成的数字,且小于n的最大值* @param nums 数组中的元素都在0~9之间* @param n 目标数字数组* @return 由nums中的元素组成的数字,且小于n的最大值*/public static String getMaxLessNum(int[] nums, int[] n) {// 对nums数组进行排序,方便后续查找最大值Arrays.sort(nums);// 用于存储结果数字的字符串StringBuilder s = new StringBuilder();// 深度优先搜索,寻找最大值dfs(true, s, nums, n, 0);return s.toString();}/*** 深度优先搜索,寻找最大值* @param equal 当前位是否与目标数字相等* @param s 用于存储结果数字的字符串* @param nums 数组中的元素都在0~9之间* @param n 目标数字数组* @param index 当前处理的位索引* @return 是否找到符合条件的数字*/private static boolean dfs(boolean equal, StringBuilder s, int[] nums, int[] n, int index) {// 如果是最后一位,则需要判定是否有小于n的数if (index == n.length - 1) {if (!equal) {// 如果前面已经有不相等的位,则直接取nums的最大值s.append(nums[nums.length - 1]);return true;} else {// 否则需要寻找小于n最后一位的最大值for (int i = nums.length - 1; i >= 0; i--) {if (nums[i] < n[n.length - 1]) {s.append(nums[i]);return true;}}return false;}}// 前面有不相等的,后面都取nums的最大值即可if (!equal) {for (int i = index; i < n.length; i++) {s.append(nums[nums.length - 1]);}return true;}// 前面都相等,优先取和n[index]相同的值,深度优先遍历,如果后面组成的数小于n,则找到了最大的值。如果当前值小于n[index],则后面都取nums的最大值即可for (int i = nums.length - 1; i >= 0; i--) {if (nums[i] == n[index]) {s.append(nums[i]);boolean result = dfs(true, s, nums, n, index + 1);if (result) {return true;} else {s.deleteCharAt(s.length() - 1); // 回溯,删除最后一个字符}}if (nums[i] < n[index]) {s.append(nums[i]);dfs(false, s, nums, n, index + 1); // 后续位都取最大值return true;}}// 如果前面都不满足,删除第一位即可if (index == 0) {dfs(false, s, nums, n, index + 1);return true;}return false;}
}

👨‍🏫 参考博客

http://www.dtcms.com/wzjs/189536.html

相关文章:

  • 深圳建设工程交易服务网官网龙岗seo投放
  • 装饰设计公司网站各种资源都有的搜索引擎
  • 如何做网站企划案论坛seo教程
  • 武汉网络设计常用的seo网站优化排名
  • 做网站要哪些架包yandex引擎搜索入口
  • 商务网站建设怎样收费百度一下首页百度
  • asp.net网站开发详解北京网络营销招聘
  • 梁山专业网站建设电商seo名词解释
  • 网站方案制作网络营销的认识与理解
  • wap网站如何做seo研究中心南宁线下
  • 网站申请免费网络营销的优势包括
  • 局域网下怎么访问自己做的网站百度度小店申请入口
  • 有做喜糖的网站吗深圳开发公司网站建设
  • 幼儿园网站模板html真正免费的建站
  • 广告设计主要做哪些长春seo主管
  • 做网站排版全媒体广告加盟
  • 飞鱼crm系统公司关键词seo
  • asp网站 证书bt种子搜索神器
  • 英文网站案例网页设计制作网站教程
  • 免费公司网站源码营销软件培训
  • 网站logo怎么做动态图百度营销app
  • 网站文案编辑怎么做网络培训总结
  • 广州市公司网站建设报价站长工具樱花
  • 适合新手做的网站静态搜索引擎调词软件
  • 好的做网站架构的书阳江网站建设
  • 新冠为什么莫名消失了什么是搜索引擎优化
  • 网站中图片怎么做的百度免费打开
  • 重庆关键词seo排名seo优化软件哪个好
  • 学编程用什么笔记本电脑好关键词排名优化软件价格
  • 山东省临沂建设局网站百度的人工客服