leetcode 3507. 移除最小数对使数组有序 I

给你一个数组 nums,你可以执行以下操作任意次数:

  • 选择 相邻 元素对中 和最小 的一对。如果存在多个这样的对,选择最左边的一个。
  • 用它们的和替换这对元素。

返回将数组变为 非递减 所需的 最小操作次数

如果一个数组中每个元素都大于或等于它前一个元素(如果存在的话),则称该数组为非递减

示例 1:

输入: nums = 5,2,3,1

输出: 2

解释:

  • 元素对 (3,1) 的和最小,为 4。替换后 nums = [5,2,4]
  • 元素对 (2,4) 的和为 6。替换后 nums = [5,6]

数组 nums 在两次操作后变为非递减。

示例 2:

输入: nums = 1,2,2

输出: 0

解释:

数组 nums 已经是非递减的。

提示:

  • 1 <= nums.length <= 50
  • -1000 <= nums[i] <= 1000

分析:数据量很小,可以直接暴力模拟。

cpp 复制代码
int minimumPairRemoval(int* nums, int numsSize) {
    int ans=0,ind=0,f=1,cnt=numsSize;
    while(f)
    {
        f=0;
        int mini=60000;
        for(int i=1;i<cnt;++i)
        {
            if(nums[i]<nums[i-1])f=1;
            if(nums[i]+nums[i-1]<mini)mini=nums[i]+nums[i-1],ind=i-1;
        }
        if(f)
        {
            ans++;
            for(int i=0,t=0;i<cnt;++i,++t)
            {
                if(i!=ind)nums[t]=nums[i];
                else nums[t]=nums[i]+nums[i+1],++i;
            }
            cnt--;
        }
    }
    return ans;
}
相关推荐
学习星球10 小时前
单调栈——从“找下一个更大的“到柱状图中的最大矩形
数据库·c++·算法·leetcode·xcode
血小板要健康13 小时前
网格 dfs 与 FloodFill:从岛屿、区域到搜索路径
笔记·算法·leetcode·深度优先
鹿角片ljp17 小时前
LeetCode 141. 环形链表|从 HashSet 到快慢指针 O (1) 空间最优解
算法·leetcode·链表
ZC跨境爬虫19 小时前
LeetCode 219. 存在重复元素 II(滑动窗口 + 哈希表详解)
算法·leetcode·散列表
Navigator_Z19 小时前
LeetCode //C - 1220. Count Vowels Permutation
c语言·算法·leetcode
feilieren20 小时前
leetcode - 389. 找不同
算法·leetcode
evans在进步20 小时前
LeetCode 238 除自身以外数组的乘积:前缀积与后缀积详解
算法·leetcode·职场和发展
刃神太酷啦1 天前
Linux 系统 MySQL 完整安装配置教程:从卸载 MariaDB 到优化 my.cnf----《Hello MySQL!》(1)
android·linux·c语言·c++·mysql·leetcode·mariadb
wenyq71 天前
LeetCode 2904. Shortest and Lexicographically Smallest Beautiful String
算法·leetcode
_Narcissus_2 天前
分治&递归
数据结构·c++·笔记·算法·leetcode·递归·分治