【重构数组,形成排列的最大长度】

题目描述

对一个长度为n的数组,某个数加一的同时对另一个数减一,任意次操作后数组最长的排序子序列的长度是多少?

新数组的元素不能为0

思路

数组的元素和是固定的,suma

将列表和suma 重新分配给lenth = n 的列表,求能组成的排列(1,2,3,4,5,...,k,...)的最大长度k

因为新数组的元素不能为0,预先给每个位置留下1

相当于放豆子游戏,n个位置,一共有suma颗豆子,每个位置先放一个豆子,剩下的位置,下标为i的地方放i个豆子,如果下标为i的地方不够i个豆子了,说明最大的排列就到i

如果每个位置都放完了,还有剩下豆子,那这部分剩下的就需要都放在最后一个位置,前面n-1个可以构成排列。

代码

python 复制代码
# 将列表和suma 重新分配给lenth = n 的列表,求能组成的排列(1,2,3,4,5,...,k,...)的最大长度k

def ans(arr):
    suma = sum(arr)
    n = len(arr)
    suma -= n
    for i in range(1, n):
        if suma < i :
            return i
        suma -= i
    if suma == 0:
        return n    
    return n-1


print(ans([2]))
相关推荐
没落之王15 小时前
AI在文言文——论文脉复苏对AI的意义
大数据·人工智能·算法
u01110267515 小时前
工具页案例图如何编写 alt让图片说明与处理场景对应
java·前端·javascript·图像处理·人工智能·算法·ai作画
阿狗童鞋15 小时前
数据结构与算法实战指南
数据结构·算法
Navigator_Z15 小时前
LeetCode //C - 1275. Find Winner on a Tic Tac Toe Game
c语言·算法·leetcode
未来之窗软件服务15 小时前
递归时间复杂度演算T (n)=aT (n/b)+f (n)-东方仙盟
算法·仙盟创梦ide·东方仙盟
垆边人似月.16 小时前
华为机考题:明明的随机数
数据结构·算法·华为
Doubbbbbbble云16 小时前
多维空间索引结构R树与KD树性能对比研究4
算法
海上小飞龙16 小时前
【KMP算法-中篇】next 数组的递推:往前填一位,靠的是往回退几步
算法
keyipatience16 小时前
B树详解:从零构建平衡多路搜索树
数据结构·b树·算法·图搜索
FluxArt17 小时前
GPT Image 2.5 多图参考怎么用:Flux Art 生成与编辑教程
数据结构·gpt·算法