Leetcode3634.排序+双指针法

Problem: 3634. 使数组平衡的最少移除数目

思路

排序+双指针法

解题过程

left指向元素x,right右移,注意边界条件

复杂度

  • 时间复杂度: O(nlogN)
  • 空间复杂度: O(logN)

代码

cpp 复制代码
class Solution {
public:
    int minRemoval(vector<int>& nums, int k) {
        int n=nums.size();
        sort(nums.begin(),nums.end());//对数组nums排序
        int ans=n,right=0;//定义并初始化最小移除数目ans和右指针right
        for(int left=0;left<n;++left){//左指针left遍历整个数组
            while(right<n&&nums[right]<=static_cast<long long>(nums[left])*k){
                ++right;
            }//而右指针right不断向右移动,直到指向第一个严格大于nums[left]的元素,或者超出数组边界为止。
            ans=min(ans,n-(right-left));//更新ans的值
        }
        return ans;
    }
};
相关推荐
Cx330_FCQ8 小时前
Tmux使用
服务器·git·算法
拳里剑气9 小时前
C++算法:多源BFS
c++·算法·宽度优先·多源bfs
ysa05103010 小时前
【板子】短序列dp(换成维护更小常数维度的dp)
c++·笔记·算法·板子
shwill12310 小时前
PID 算法(三)--- 增量 PID ↔ 单神经元 PID 等价映射
linux·算法
wabs66611 小时前
关于图论【卡码网110.字符串迁移的思考】
数据结构·算法·图论
hanlin0311 小时前
刷题笔记:力扣第242、349题(哈希表)
笔记·算法·leetcode
aramae12 小时前
C++ IO流完全指南:从C标准库到C++流式编程
服务器·c语言·开发语言·c++·后端
_wyt00112 小时前
c++里的族谱:树
c++·
浮沉98712 小时前
二分查找算法例题(二)
算法
only-qi13 小时前
大模型Agent面试攻略:落地工程痛点、评估体系与Agentic RAG核心精讲
人工智能·算法·面试·职场和发展·langchain·rag