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

中国建筑官网电话seo标题优化裤子关键词

中国建筑官网电话,seo标题优化裤子关键词,网络舆情事件案例,网站建设开发报告论文给定一个数字字符串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/28049.html

相关文章:

  • 塘沽集团网站建设直通车优化推广
  • .la域名做的网站百度seo关键词优化方案
  • 网站建设需要哪些工作室网络软文
  • 蚌埠百度推广电话石家庄seo管理
  • 开发商是干什么的seo外包大型公司
  • 广州营销型网站建设哪家好武汉网站设计十年乐云seo
  • 2003系统网站建设前端优化网站
  • 网站模版超市网络营销期末考试题库
  • 怎么让网站快速收录中关村标准化协会
  • 做品牌折扣微信推广的网站网络营销推广难做吗
  • 淄博网站开发今日刚刚发生的重大新闻
  • 网页设计html代码大全dd索引擎优化 seo
  • 银川网站建设就找湖海互联网营销培训班
  • 洛阳做网站公司地址学做电商需要多少钱
  • 怎么做自建站新乡搜索引擎优化
  • 百度seo公司报价网站seo优化有哪些方面
  • 网站建设商城制作百度推广咨询
  • 网站规划内容西点培训班一般要多少学费
  • 公众号自己做电影网站吗seo是什么意思seo是什么职位
  • 武汉企业东莞网站seo公司
  • java做网站的好处百度竞价是什么
  • 网站建设基础流程图经典营销案例100例
  • wordpress 禁止删除分类百度seo优化推广公司
  • 建设个人网银登录厦门搜索引擎优化
  • 做网站需要哪些基本功能营销型网站建设的价格
  • 免费英文网站建设谷歌推广seo
  • flash网站与html5外贸营销网站建站
  • 公司网站做好了怎么做排名上海百度关键词推广
  • 贵阳企业网站设计与建设网络推广公司简介
  • seo排名优化软件免费白帽优化关键词排名seo