2023-07-25力扣每日一题

链接:

2208. 将数组和减半的最少操作次数

题意:

给定一个正数数组,每次可以让一个数字减半,求将数组减少一半及以上最小次数

解:

每次找数组中存在的最大数减半,贪心,数组比较长,配合优先队列、单调栈

实际代码:

c++ 复制代码
#include<bits/stdc++.h>
using namespace std;
int halveArray(vector<int>& nums)
{
    double sum=0;int ans=0;
    priority_queue<double,vector<double>,less<double>>p_q;
    for(auto &num:nums)
    {
        sum+=num;
        p_q.push(num);
    }
    sum/=2;
    while(sum>0)
    {
        double temp=p_q.top();p_q.pop();
        if(temp>0)
        {
            temp/=2;
            sum-=temp;
            p_q.push(temp);
            ans++;
        }
    }
    return ans;
}
int main()
{
    vector<int>nums;int temp;
    while(cin>>temp)
    {
        nums.push_back(temp);
    }
    int ans=halveArray(nums);
    cout<<ans<<endl;
    return 0;
}

限制:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 107
相关推荐
王老师青少年编程1 分钟前
csp信奥赛C++高频考点专项训练之贪心算法 --【部分背包问题】:部分背包问题
c++·算法·贪心·csp·信奥赛·部分背包问题
九思十安4 分钟前
HNU2026-算法设计与分析-笔记 3 摊还分析
笔记·算法
6Hzlia7 分钟前
【Hot 100 刷题计划】 LeetCode 142. 环形链表 II | C++ 哈希表直觉解法
c++·leetcode·链表
嘻嘻哈哈樱桃8 分钟前
牛客经典101题题解集--哈希
java·数据结构·python·算法·leetcode·职场和发展·哈希算法
自我意识的多元宇宙13 分钟前
【数据结构】 红黑树
数据结构·算法
wayz1115 分钟前
Day 15 编程实战:KMeans聚类与股票风格分类
算法·机器学习·分类·kmeans·聚类
不知名的老吴16 分钟前
数据结构与算法之排序算法
算法·排序算法
Brilliantwxx17 分钟前
【算法题】日期类算法题
开发语言·c++·笔记·程序人生·算法
穿条秋裤到处跑21 分钟前
每日一道leetcode(2026.04.27):检查网格中是否存在有效路径
算法·leetcode·职场和发展
我不是懒洋洋28 分钟前
【数据结构】二叉树链式结构的实现(二叉树的遍历、使用二叉树的基本方法、二叉树的创建和销毁)
c语言·数据结构·c++·经验分享·算法·链表·visual studio