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

广州力科网站建设公司阿里云怎么建网站

广州力科网站建设公司,阿里云怎么建网站,福建专业网站建设欢迎咨询,广东哪家网站建设后台管理便捷LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…

LeetCode 3309. 连接二进制表示可形成的最大数值(中等)

      • 题目描述
      • 解题思路
      • Java代码

题目描述

题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等)
给你一个长度为 3 的整数数组 nums。

现以某种顺序 连接 数组 nums 中所有元素的 二进制表示 ,请你返回可以由这种方法形成的 最大数值。

注意 任何数字的二进制表示不含前导零。

示例 1:

输入: nums = [1,2,3]
输出: 30
解释:
按照顺序 [3, 1, 2] 连接数字的二进制表示,得到结果 “11110”,这是 30 的二进制表示。

示例 2:

输入: nums = [2,8,16]
输出: 1296
解释:
按照顺序 [2, 8, 16] 连接数字的二进制表述,得到结果 “10100010000”,这是 1296 的二进制表示。

提示:

nums.length == 3
1 <= nums[i] <= 127

解题思路

1.整体思路:使用递归回溯的方式尝试构造所有的拼接方案(构造全排列),取拼接方案中数值最大的即可。递归回溯法的关键在于:每次尝试之后,进行递归回退时要撤销尝试,将状态恢复成尝试之前的状态。

2.实现细节:开一个数组 v i s vis vis 来记录元素是否被选取过, v i s [ i ] vis[i] vis[i] 表示第 i i i 个数是否被选取过( 0 0 0 没选过, 1 1 1 选过)。每次尝试从 n u m s nums nums 数组中选取一个没被选过的数 n u m s [ i ] nums[i] nums[i] 拼接得到 c a n c a t cancat cancat ,将 v i s [ i ] vis[i] vis[i] 置为 1 1 1,表示该数已被选取过。当 n u m s nums nums 中的数都被选过时得到一种拼接方式,直接返回 c a n c a t cancat cancat 。每次回退时取消当前尝试,将 v i s [ i ] vis[i] vis[i] 恢复为 0 0 0,将 c a n c a t cancat cancat 恢复成之前的取值。在尝试的过程中更新拼接方案的最大取值。

3.如何实现二进制数的拼接:当前要拼接的数 n u m s [ i ] nums[i] nums[i] 二进制有几位,就把 c o n c a t concat concat 左移几位,然后将当前的数 n u m s [ i ] nums[i] nums[i] 加到 c o n c a t concat concat 上就实现了拼接。

Java代码

public class Solution {public int maxGoodNumber(int[] nums) {int vis[] = new int[nums.length];return dfs(0, 0, nums, vis);}/*** count:   已经选取的数的个数* concat:  拼接得到的数* nums:    可选数的数组* vis[i]:  第i个数是否被选取过*/int dfs(int count, int concat, int nums[], int vis[]) {if (count == nums.length) {// 所有的数的被选过,得到最终拼接的数return concat;}int res = Integer.MIN_VALUE;for (int i = 0; i < nums.length; i++) {// 判断当前数是否拼接过if (vis[i] == 0) {int x = nums[i], temp = concat;while (x > 0) {x = x >> 1;concat = concat << 1;}// 尝试拼接concat += nums[i];vis[i] = 1;// 可行拼接中取最大值res = Math.max(res, dfs(count + 1, concat, nums, vis));// 尝试完之后复原到拼接前的数concat = temp;vis[i] = 0;}}return res;}
}

文章转载自:

http://5i4UXIrV.sgfpn.cn
http://26HSKqmB.sgfpn.cn
http://X0PN2Iqn.sgfpn.cn
http://076SwZRP.sgfpn.cn
http://yZMOA2Yu.sgfpn.cn
http://QFkOsx48.sgfpn.cn
http://RGtQRqu7.sgfpn.cn
http://iN4Mp5nA.sgfpn.cn
http://HYaHVECj.sgfpn.cn
http://8cbWlKnW.sgfpn.cn
http://CTMSI3ed.sgfpn.cn
http://6oCG7wI6.sgfpn.cn
http://OfdaZ92E.sgfpn.cn
http://c2HXrRMP.sgfpn.cn
http://wRyvn0d6.sgfpn.cn
http://8TJa1K26.sgfpn.cn
http://x8fAvTsm.sgfpn.cn
http://kWE5suUl.sgfpn.cn
http://JDLmVnYp.sgfpn.cn
http://j5jGt3WD.sgfpn.cn
http://poiFBB86.sgfpn.cn
http://FY0otYOQ.sgfpn.cn
http://f2C4lsDh.sgfpn.cn
http://1XycbWYR.sgfpn.cn
http://lBp1lHmW.sgfpn.cn
http://y8korV1I.sgfpn.cn
http://rrshfcZt.sgfpn.cn
http://k0FF6QtP.sgfpn.cn
http://zRYiMKAV.sgfpn.cn
http://t9sdEYdb.sgfpn.cn
http://www.dtcms.com/wzjs/688391.html

相关文章:

  • 免费网站源码建站系统番禺建设银行网站首页
  • 网站开发人员周报网站轮播效果怎么做的
  • 国外网站国内备案建设一个网站要多少费用
  • 网站设计样式创建网站要申请域名吗
  • 网站免费申请桂市做网站的朋友
  • 什么是网站设计与运营浙江东阳市网站建设公司
  • 网站开发能赚多少钱工厂订单外发代加工外发加工网
  • h5移动端网站开发中企动力双语网站
  • 谷歌怎么把两个网站做反链网站远程图片
  • 沧州营销型网站建设阳江招聘临时工
  • 怎么做自己的网站免费苏州建设工程协会网站
  • gta5房子网站建设中成都专业制作网站公司
  • app制作网站有哪些 请列举如何免费创建app
  • 三门峡网站建设价格区块链开发语言
  • 创建网站的流程是什么电子商务网站开发难点
  • 网站后台是什么用html5做的网站代码
  • 潍坊网站制作策划东城东莞网站建设
  • 网站备案密码忘wordpress主题如何破解
  • 大学生兼职网站建设策划书快速搭建网站 数据存储
  • 建设电子商务网站步骤运动鞋建设网站前的市场分析
  • 龙岗建网站物流公司网站模板
  • 安徽网站建设详细策划花卉网站建设策划
  • 泉州建站软件临海市建设局网站
  • 广西贺州建设局网站网站建设公司包括哪些方面
  • wordpress多站点开启新手做网站流程
  • 优惠的网站快排公司电话psd转wordpress模板
  • 驾校网站建设重庆建设厅网站首页
  • 遵义住房和城乡建设厅网站海尔工业互联网公司排名
  • 盐城做网站哪家最好在线网站建设系统
  • 免费自助建站有域名就可以做网站吗