当前位置: 首页 > news >正文

免费网站软件推荐wap网站建设免费

免费网站软件推荐,wap网站建设免费,手机软件app制作的三种方式,建站宝盒的设置本篇文章,同大家一起学习贪心算法!!! 第一题 题目链接 2208. 将数组和减半的最少操作次数 - 力扣(LeetCode) 题目解析 本题重点:最终的数组和要小于原数组和的一半,且求这一操作的…

本篇文章,同大家一起学习贪心算法!!!

 第一题

题目链接

2208. 将数组和减半的最少操作次数 - 力扣(LeetCode)

题目解析

本题重点:最终的数组和要小于原数组和的一半,且求这一操作的最少操作数

代码原理

代码编写

class Solution {

public:

    int halveArray(vector<int>& nums) {

        double sum = 0.0;

        priority_queue<double> heap;//将数据存放进大根堆中的优势:最大的数会在堆顶

        for(auto cur: nums)

        {

            heap.push(cur);

            sum += cur;

        }

        sum /= 2.0;

        int count = 0;

        while(sum > 0)

        {

            double t = heap.top() / 2.0;

            heap.pop();

            sum -= t;

            count++;

            heap.push(t);

        }

        return count;

    }

};

贪心策略

选择数组中最大的元素

第二题

题目链接

179. 最大数 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    string largestNumber(vector<int>& nums) {

        vector<string> str;

        for(auto cur: nums)

        {

            str.push_back(to_string(cur));

        }

        sort(str.begin(), str.end(), [](const string& a, const string& b)

        {

            return a + b > b + a;

        });

        string ret;

        for(auto& s: str)

        {

            ret += s;

        }

        if(ret[0] == '0') return "0";

        return ret;

    }

};

贪心策略

先看数字的最高位,与其他数字的最高位进行比较,大的在前小的在后

注意:一切都以每个数的最高位为比较对象

第三题

题目链接

376. 摆动序列 - 力扣(LeetCode)

题目解析

相信大家对这道题已经不再陌生,因为我们上一次做这题的时候是用动态规划的方法去做的题,当然这次博主依旧为给大家简单解析一下这题

注意:这里的加号表示递增,减号表示递减!!!大体可以参考高中时学过的单调性

代码原理

将一个波分成两段分析,因此就有了left和right,left的状态(是上升还是下降)由后面的i+1的元素决定,right的状态则需要i + 1元素和i元素决定。

由于起点无法判断它的状态因此要长度减1,也因此最后的子序列长度要加1

代码编写

class Solution {

public:

    int wiggleMaxLength(vector<int>& nums) {

        int n = nums.size();

        if(n < 2) return n;

        int ret = 0, left = 0;

        for(int i = 0; i < n - 1; i++)

        {

             int right = nums[i + 1] - nums[i];

             if(right == 0) continue;

             if(right * left <= 0) ret++;

             left = right;

        }

        return ret + 1;

    }

};

贪心策略

画图 + 状态走向

那么本篇文章的内容就先到这里,我们下期文章再见!!!!

记得一键三联哦!!!

http://www.yayakq.cn/news/479254/

相关文章:

  • wordpress短信验证码网站品牌词如何优化
  • 建设手机网站大概要多少钱新网站如何备案
  • 合肥网站建设与设计网站分类 维护
  • 公司网站改版方案盛世软件系统商城定制开发
  • 如何自己做网站模版一个网站的预算
  • 心悦做宠物的网站wordpress外部链接
  • 知乎 wordpress 博客襄阳网站seo公司
  • 免费下ppt课件的网站郑州网站外包公司
  • 厦门专业网站推广建站做策划需要进的网站
  • 成都市医院网站建设网站做系统叫什么
  • 四川手机网站开发手动更新wordpress
  • 网站优化 合同临汾花果街网站建设
  • 如何做网站迁移wordpress本地做好如何改站点地址
  • 智汇团建网站登录平台线上推广方式和介绍
  • 做网站开发哪里好云主机有什么用
  • 亚马逊网站网址北京专业网站建设大全
  • 陕西省建设监理协会官方网站wordpress在线编辑器
  • 建设营销型网站多少钱代理公司注册品牌
  • 网站营销案例展示徐州市城乡建设局网站6
  • 自己做的网站如何百度能搜索怎样设置个人网站
  • 平台网站建设源码qq官网
  • 家庭优化大师网站优化的主要目的是什么
  • 网站备案密码能改吗做平面什么网站的素材不侵权
  • 东莞设计网站了解网站开发的背景
  • 大庆 网站制作电商平台建设有哪些内容呢
  • 怎样做金融理财网站电子网站建设公司
  • 网站备案中专业手机网站建设公司
  • 网页网站动作效果做的比较棒wordpress 主题 下载
  • 台州网站制作报价域名如何解绑一个网站
  • 温州手机网站制作公司电话用ssh做网站