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

算法训练营day27(补),贪心算法1

import "sort"

//455. 分发饼干

func findContentChildren(g []int, s []int) int {

  sort.Ints(g)

  sort.Ints(s)

  // g代表胃口数组, s代表饼干数组

  count := 0 // 统计数量

  //饼干下标

  index := len(s) - 1

  // 胃口循环

  for i := len(g) - 1; i >= 0; i-- {

    if index >= 0 && s[index] >= g[i] {

      count++

      index--

    }

  }

  return count

}

/*

376. 摆动序列

本题要考虑三种情况:

情况一:上下坡中有平坡

情况二:数组首尾两端

情况三:单调坡中有平坡

*/

func wiggleMaxLength(nums []int) int {

  prev := 0 //前指针

  cur := 0  //当前指针

  result := 1 //记录峰值个数

  for i := 0; i < len(nums)-1; i++ {

    cur = nums[i+1] - nums[i]

    // 出现峰值

    if (prev >= 0 && cur < 0) || (prev <= 0 && cur > 0) {

      result++

      prev = cur

    }

  }

  return result

}

//53. 最大子数组和

func maxSubArray(nums []int) int {

  maxSum := nums[0]

  count := 0

  for i := 0; i < len(nums); i++ {

    count += nums[i]

    if count >= maxSum { //取子序列和最大值

      maxSum = count

    }

    if count <= 0 { //当子序列和小于0重置起始位

      count = 0

    }

  }

  return maxSum

}

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

相关文章:

  • [office] excel2003限定单元格输入值范围教程 #微信#经验分享
  • OLED显示红外遥控键码
  • LabVIEW智能温度监控系统
  • 专业140+总分420+浙江大学842信号系统与数字电路考研经验电子信息与通信,真题,大纲,参考书。
  • C语言学习day15:数组强化训练
  • 缓存穿透、缓存击穿与缓存雪崩
  • 一周学会Django5 Python Web开发-项目配置settings.py文件-模版配置
  • CF1845 D. Rating System [思维题+数形结合]
  • HeidiSQL安装配置(基于小皮面板(phpstudy))连接MySQL
  • 【蓝桥2013】错误票据
  • nvm对node版本进行管理及疑难解决,vue项目搭建与启动
  • Redisson分布式锁 原理 + 运用 记录
  • Spring Boot 笔记 021 项目部署
  • 新技术革命开始了,Sora一出,所有的视频人、电影人都下岗
  • 【FPGA开发】Modelsim和Vivado的使用
  • 现代浏览器对 es模块 【esm】原生支持
  • 修改SpringBoot中默认依赖版本
  • 网络安全最典型基础靶场-DVWA-本地搭建与初始化
  • 算法-----高精度2(高精度乘法,高精度除法,高精度斐波那锲数列)
  • windows vs 自己编译源码 leveldb 然后使用自己编译的文件
  • 基于GPT一键完成数据分析全流程的AI Agent: Streamline Analyst
  • C语言-----习题
  • Java学习笔记(五)
  • 4.【Linux】进程控制(进程终止||进程等待||程序替换)
  • 微服务设计:Spring Cloud 链路追踪概述
  • 【MySQL/Redis】如何实现缓存一致
  • Socket.D 开源输传协议 v2.4.0 发布
  • 单片机学习笔记---AT24C02数据存储
  • 首次安装Mysql数据库
  • 2024 前端面试题(GPT回答 + 示例代码 + 解释)No.1 - No.20