每日一题#4 如何配置 Vue-router 异步加载&LeetCode 135. 分发糖果【贪心】
2021/6/12 18:28:37
本文主要是介绍每日一题#4 如何配置 Vue-router 异步加载&LeetCode 135. 分发糖果【贪心】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
如何配置 Vue-router 异步加载
LeetCode 135. 分发糖果【贪心】
题目描述
一群孩子站成一排,每一个孩子有自己的评分。现在需要给这些孩子发糖果,规则是如果一 个孩子的评分比自己身旁的一个孩子要高,那么这个孩子就必须得到比身旁孩子更多的糖果;所有孩子至少要有一个糖果。求解最少需要多少个糖果。
解题思路
把所有孩子的糖果数初始化为 1;先从左往右遍历一遍,如果右边孩子的评分比左边的高,则右边孩子的糖果数更新为左边孩子的 糖果数加1;
再从右往左遍历一遍,如果左边孩子的评分比右边的高,且左边孩子当前的糖果数 不大于右边孩子的糖果数,则左边孩子的糖果数更新为右边孩子的糖果数加1。
通过这两次遍历, 分配的糖果就可以满足题目要求了。这里的贪心策略即为,在每次遍历中,只考虑并更新相邻一 侧的大小关系。
AC
class Solution {public: int candy(vector<int>& ratings) { int size = ratings.size(); if(size<2) return size; vector<int> v(size,1); //先从左到右遍历 for(int i=0;i<size-1;i++){ if(ratings[i+1]>ratings[i]) v[i+1]=v[i]+1; } //再从右到左遍历 for(int i=size-1;i>=1;i--){ if(ratings[i-1]>ratings[i]) v[i-1]=max(v[i-1],v[i]+1); } return accumulate(v.begin(),v.end(),0); }};
这篇关于每日一题#4 如何配置 Vue-router 异步加载&LeetCode 135. 分发糖果【贪心】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26怎么使用 nvm(Node Version Manager)下载并安装指定版本的 Node.js?-icode9专业技术文章分享
- 2024-11-26Vue CLI资料入门教程
- 2024-11-26Vue CLI资料入门教程
- 2024-11-26Vue3+Vite资料:新手入门教程详解
- 2024-11-26Vue3阿里系UI组件资料入门教程
- 2024-11-26Vue3的阿里系UI组件资料入门指南
- 2024-11-26Vue3公共组件资料详解与实战教程
- 2024-11-26Vue3公共组件资料详解与实战教程
- 2024-11-26Vue3核心功能响应式变量资料入门教程
- 2024-11-26Vue3核心功能响应式变量资料详解