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

【算法日志】贪心算法刷题:单调递增数列,贪心算法总结(day32)

代码随想录刷题60Day


目录

前言

单调递增数列

贪心算法总结 


前言

今天是贪心算法刷题的最后一天,今天本来是打算刷两道题,其中的一道hard题做了好久都没有做出来(主要思路错了)。然后再总结一下。


单调递增数列

   int monotoneIncreasingDigits(int n) {if (n < 10)return n;vector<int> num;int result = 0;int j = num.size() - 2, k;while (n){num.push_back(n % 10);n /= 10;}for (j = num.size() - 2,k = j + 1; j >= 0; --j){if (num[j] < num[k]){--num[k];break;}else if (num[j] > num[k])k = j;}if (j < 0) k = 0;for (int i = num.size() - 1; i >= 0; --i){if (i >= k)result = result * 10 + num[i];elseresult = result * 10 + 9;}return result;}

未解决题

贪心算法总结 

贪心算法是一种常见的算法设计技术,用于在每个步骤中做出局部最优选择,以期望达到全局最优解。下面是对贪心算法的总结:

1. 基本思想:贪心算法每次都选择当前最优的解决方案,而不考虑未来的后果。它通过贪心选择策略,在每个步骤上做出局部最优选择,以期望达到全局最优解。

2. 常规步骤:

   · 确定问题的最优子结构。
   · 构建贪心选择策略,即每一步选择局部最优解。
   · 证明贪心选择的正确性。
   · 设计递归算法或迭代算法实现贪心选择策略。
   · 分析算法的时间复杂度和空间复杂度。

3. 优点:

   · 算法简单易实现。
   · 在某些问题上能够快速得到近似最优解。
   · 时间复杂度较低,通常为线性或近似线性时间。

4. 缺点:

   · 贪心选择策略可能会导致无法达到全局最优解。
   · 对于某些问题,贪心算法不一定能给出正确的解决方案。
   · 需要证明贪心选择的正确性,有时需要较高的数学推理能力。

总的来说,贪心算法是一种简单而有效的算法设计技术,适用于满足贪心选择性质和最优子结构性质的问题。它通过每一步的局部最优选择,期望达到全局最优解。然而,贪心算法并不适用于所有问题,有时需要综合考虑其他算法技术或进行适当的修改。


http://www.lryc.cn/news/133924.html

相关文章:

  • MATLAB算法实战应用案例精讲-【深度学习】模型压缩
  • Matlab使用
  • BladeX多数据源配置
  • go里面关于超时的设计
  • Qt下使用ModbusTcp通信协议进行PLC线圈/保持寄存器的读写(32位有符号数)
  • ElasticSearch学习2
  • 3D角色展示
  • 前端面试:【Angular】打造强大Web应用的全栈框架
  • 数据结构:栈和队列
  • SpringCloud Gateway服务网关的介绍与使用
  • 深入解析:如何打造高效的直播视频美颜SDK
  • 每日一博 - MPP(Massively Parallel Processing,大规模并行处理)架构
  • ssh框架原理及流程
  • eslint 配置和用法
  • 字符设备驱动实例(PWM和RTC)
  • Ribbon 源码分析
  • 【1-3章】Spark编程基础(Python版)
  • 宇宙原理:黑洞基础。
  • 分类预测 | MATLAB实现SCNGO-CNN-LSTM-Attention数据分类预测
  • Android学习之路(7) Frament
  • metallb , istio ingress 部署httpbin使用例子
  • 基于swing的销售管理系统java仓库库存信息jsp源代码mysql
  • FreeCAD傻瓜式教程之约束设定和构建实体、开孔、调整颜色等
  • 代码随想录算法训练营day41 | 343. 整数拆分,96. 不同的二叉搜索树
  • 飞天使-k8sv1.14二进制安装
  • TypeScript封装Axios
  • 指针(一)【C语言进阶版】
  • 回归预测 | MATLAB实现SA-BP模拟退火算法优化BP神经网络多输入单输出回归预测(多指标,多图)
  • springMVC 已解密的登录请求
  • 机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?