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

Rust 力扣 - 740. 删除并获得点数

文章目录

  • 题目描述
  • 题解思路
  • 题解代码
  • 题目链接

题目描述

在这里插入图片描述

题解思路

首先对于这题我们如果将所有点数装入一个切片f中,该切片f中的i号下标表示所有点数为i的点数之和

那么这题就转换成了打家劫舍这道题,也就是求选择了切片中某个下标的元素后,该下标相邻元素就不能选择,求最终能选择的元素之和的最大值

那么在切片的[0, i]范围内选择元素的最大值 = max(i号索引元素 + [0, i - 2]范围内选择元素的最大值, [0, i - 1]范围内选择元素的最大值)

题解代码

impl Solution {pub fn delete_and_earn(nums: Vec<i32>) -> i32 {if nums.len() == 1 {return nums[0];}let mut max_val = nums[0];for &num in &nums {max_val = max_val.max(num);}let mut f = vec![0; max_val as usize + 1];for &num in &nums {f[num as usize] += num;}let (mut a, mut b) = (f[0], f[1].max(f[0]));for i in 2..=max_val as usize {(a, b) = (b, b.max(a + f[i]));}b}
}

题目链接

https://leetcode.cn/problems/delete-and-earn/

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

相关文章:

  • OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核
  • Docker核心概念总结
  • 环形缓冲区
  • jQuery-Word-Export 使用记录及完整修正文件下载 jquery.wordexport.js
  • 云服务器部署WebSocket项目
  • C#+数据库 实现动态权限设置
  • (原创)Android Studio新老界面UI切换及老版本下载地址
  • Ubuntu24虚拟机-gnome-boxes
  • k8s rainbond centos7/win10 -20241124
  • SpringBoot+Vue滑雪社区网站设计与实现
  • MySql.2
  • 算法之区间和题目讲解
  • 价格分类(神经网络)
  • 对智能电视直播App的恶意监控
  • 【JavaEE初阶】多线程初阶下部
  • macOS上进行Ant Design Pro实战教程(一)
  • 智能合约运行原理
  • 安卓动态添加View
  • 前端预览pdf文件流
  • 【测试工具JMeter篇】JMeter性能测试入门级教程(一)出炉,测试君请各位收藏了!!!
  • 【zookeeper03】消息队列与微服务之zookeeper集群部署
  • 从 Llama 1 到 3.1:Llama 模型架构演进详解
  • UE5肉鸽游戏教程学习
  • Vue3 - 详细实现虚拟列表前端虚拟滚动列表解决方案,vue3长列表优化之虚拟列表,解决列表动态高度不固定高度及图片视频图文异步请求加载问题,虚拟列表DOM大量数据同时加载渲染卡顿太慢及下滑列表闪烁
  • 英语知识网站开发:Spring Boot框架技巧
  • 基于lvgl+ST7735制作一款esp8285的控制面板程序
  • MySQL 索引详解
  • 区块链学习笔记(1)--区块、链和共识 区块链技术入门
  • 【Android+多线程】IntentService 知识总结:应用场景 / 使用步骤 / 源码分析
  • Python Tornado框架教程:高性能Web框架的全面解析