首页/新闻资讯/正文详情

解决leetcode第4059题字典序最大的答案数组

发布时间:2026/9/23 7:07:28 来源:云帆数科 栏目:资讯中心
解决leetcode第4059题字典序最大的答案数组
4059.字典序最大的答案数组难度困难问题描述给你一个长度为n的整数数组nums。你可以重新排列其中的元素以形成任意排列perm。定义一个长度为15的数组power。对于每个0i15考查perm的前j个元素的第(14-i)位power[i]是满足这些位全为1的最大整数j其中0jn。二进制位的位置从右向左编号从第0位开始。返回可能得到的字典序最大的power数组。排列是数组中所有元素的一种重新排列。置位指的是数字在二进制表示中对应位的值为1。对于两个长度相同的数组如果在它们不同的第一个下标处数组a包含的元素大于数组b中的元素则称数组a的字典序大于数组b。示例1输入nums[7,5]输出[0,0,0,0,0,0,0,0,0,0,0,0,2,1,2]解释选择perm[7,5]。两个元素的第2位都置位了因此power[12]2。第一个元素的第1位置位了但第二个元素没有因此power[13]1。两个元素的第0位都置位了因此power[14]2。第一个元素的所有更高位都未置位因此其余项都为0。示例2输入nums[3,1,7]输出[0,0,0,0,0,0,0,0,0,0,0,0,1,2,3]解释选择perm[7,3,1]。第一个元素的第2位置位了但第二个元素没有因此power[12]1。前两个元素的第1位都置位了但第三个元素没有因此power[13]2。所有三个元素的第0位都置位了因此power[14]3。第一个元素的所有更高位都未置位因此其余项都为0。提示1nums.length5*10**40nums[i]2**15问题分析这个问题很难读懂必须结合后面的示例反复阅读才能够找到那么一丝丝的感觉因而越发显出它的不凡之处。其实要获得字典序最大的power数组关键在于perm这个看似是原数组nums的任意排列其实只能取nums的降序排列形式才能得到字典序最大的power数组。为此程序设计了三个函数来解决这一问题函数 int_change_to_15_binary(num)将一个num整数转化为15位的二进制字符串并返回函数 get_1_nums_of_index_i(binary_array_15,i)从一个由15位二进制字符串组成的数组中统计出各个二进制字符串的第i位是字符1的个数并返回函数get_power_array_from_perm(perm)则根据传入的经过降序处理的二进制字符串数组perm得到最终结果power数组并返回。主程序则先对输入的nums数组进行降序排序然后转化为15位进制字符串数组最后调用get_power_array_from_perm(perm)得到最终结果问题得以解决。程序如下#将一个整数num转化为15位二进制数并返回 def int_change_to_15_binary(num): numbin(num)[2:] nlen(num) num0*(15-n)num return num #检查一个由15位二进制数字符串所组成的数组第i位上1的个数并返回 def get_1_nums_of_index_i(binary_array_15,i): i_str.join([x[i] for x in binary_array_15]) return i_str.count(1) #从perm数组中统计并得出power数组返回 def get_power_array_from_perm(perm): power[] pr_array[] for i in perm: pr_array.append(int_change_to_15_binary(i)) for i in range(15): power.append(get_1_nums_of_index_i(pr_array,i)) return power #主程序 numseval(input(pls input nums)) nums.sort(reverseTrue) print(get_power_array_from_perm(nums))运行实例一pls input nums[5,10,30][0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 1]运行实例二pls input nums[3,1,7][0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3]

相关推荐

手机买电影票系统实战:面试必问的并发陷阱
手机买电影票系统实战:面试必问的并发陷阱

手机买电影票系统实战:面试必问的并发陷阱 刚接手劳务班组管理项目,第一周就让我崩溃了。 为了演示“手机买电影票”功能,我花了一整天配环境。 结果跑起来全是报错,面试被问得哑口无言。 这不仅是配置问题,更是底层逻辑没搞清。… · 2026/9/23 7:07:28

基于Python与Neo4j的医疗知识图谱问答系统构建
基于Python与Neo4j的医疗知识图谱问答系统构建

简介:本资源是一套基于Python实现的医疗领域知识图谱问答系统完整工程,面向人工智能、自然语言处理及医学信息学方向的学习者与课程设计者,适用于本科期末大作业、课程实训或知识图谱入门实践。项目涵盖从医疗实体识别、三元组抽取、Neo4j图谱… · 2026/9/23 7:07:16

Laradock vs Laravel Sail:从官方脚手架到 100+ 服务的 Docker PHP 全栈环境迁移实战指南
Laradock vs Laravel Sail:从官方脚手架到 100+ 服务的 Docker PHP 全栈环境迁移实战指南

后端开发工具DevOps 【免费下载链接】laradock Full PHP development environment for Docker. Run Laravel, Symfony, CodeIgniter, Phalcon, WordPress, Drupal, Magento, Moodle, or any PHP project with 70 pre-configured services: Nginx, Apache, PHP-FPM, MySQL, Post… · 2026/9/23 7:53:11

从零复现LSTM天池新闻文本分类:一份能跑通的Python源码
从零复现LSTM天池新闻文本分类:一份能跑通的Python源码

简介:这份Python源码包围绕天池新闻文本分类比赛展开,采用LSTM作为核心模型,适合人工智能、计算机及相关专业学生、教师与企业员工用于课程设计、毕业设计或赛题复现。包内共25个文件,以14个py脚本为主体,辅以9个pyc编… · 2026/9/23 7:53:11

agent-skills 实战指南:为 AI 编程助手构建可复用技能模块
agent-skills 实战指南:为 AI 编程助手构建可复用技能模块

1. 从零认识 agent-skills:它到底解决了什么问题第一次看到agent-skills这个词,很多人会以为是某个新出的 AI 模型或者插件市场。其实不是。它更像是一套给 AI coding agent 准备的“技能包规范”——你可以把它理解成给 AI 编程助手写的“操作手册 工具… · 2026/9/23 7:53:11

从普通Prompt到思维链CoT:数学推理提示词实战指南
从普通Prompt到思维链CoT:数学推理提示词实战指南

如果你只把提示词工程当成“把问题描述得更清楚”,那你大概率会在数学推理上碰一鼻子灰。我最近做了一组很简单的对比测试:让同一个大模型计算一道包含加权平均和混合运算的数学题,用普通的 Prompt 直接问,它一本正经地给出了一个… · 2026/9/23 7:53:11

从AI Coding到AI Engineering:16万行代码的工程化实践
从AI Coding到AI Engineering:16万行代码的工程化实践

1. 项目背景:16 万行代码,从“手写”到“AI 协同”的转折点先交代一下背景。这个项目是一个中大型业务系统,涵盖管理后台、用户端 API、定时任务、消息推送、数据对账等多个模块。按传统开发方式估算,16 万行代码大概是一个 6 到 … · 2026/9/23 7:53:04

Claude Code 知识工作插件实战:用 commands 与 skills 封装可复用 AI 工作流
Claude Code 知识工作插件实战:用 commands 与 skills 封装可复用 AI 工作流

1. 从标题拆解 knowledge-work-plugins 到底在解决什么问题第一次看到knowledge-work-plugins这个仓库名,很多人会下意识把它当成又一个"插件合集"。但如果你真的在 Claude Code 或 Claude Cowork 里干过一段时间的活,就会明白它想解决的是一个… · 2026/9/23 7:53:04

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码