Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
来源:互联网 发布:硬笔入门字帖 知乎 编辑:程序博客网 时间:2024/05/16 11:06
首先初始化,每个人分得1个糖果
然后从左向右扫描,使得比左边rating大的,分得的糖果多
从右向左扫描,使得比右边rating大的,分得的糖果多
int candy(vector<int> &ratings){
int size=ratings.size();
vector<int> num(size,1);
for(int i=1;i<size;i++)
{
if(ratings[i]>ratings[i-1])
num[i]=num[i-1]+1;
}
for(int i=size-2;i>=0;i--)
{
if(ratings[i]>ratings[i+1] && num[i]<=num[i+1])
num[i]=num[i+1]+1;
}
int sum=0;
for(int i=0;i<size;i++)
sum=sum+num[i];
return sum;
}
0 0
- Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
- Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
- 时间复杂度O(n),空间复杂度O(1)的排序
- Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现
- 时间复杂度为O(n),空间复杂度为O(1)
- O(N)时间复杂度、O(1)空间复杂度 构造数组
- 字符串移动k位的时间复杂度o(n)空间复杂度o(1)的解法
- 排序的时间复杂度为O(n),空间复杂度为O(1)
- 时间复杂度为O(N),空间复杂度为O(1)的排序算法
- 返回数组中任意某个重复的数字--时间复杂度O(n)空间复杂度O(1)
- 数组中未出现的最小正整数(时间复杂度O(N),空间复杂度O(1))
- LeetCode 135. Candy (O(n)时间 O(n)和O(1)空间的两种实现)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 第十六周项目三:用函数指针调用函数
- MyBatis学习(一)之一对一关联映射查询
- memcache缓存机制
- Binary Tree Preorder Traversal
- web 常见的问题
- Candy [leetcode] O(n)时间复杂度,O(1)空间复杂度的方法
- Android再按一次返回键退出应用程序
- 第十六周 项目二(4) 单词的个数
- 第十六周 转换日期格式
- C++中this指针的用法.
- Cloudera Impala官方文档中文翻译-2(Using Impala to Query HBase Tables)
- Hadoop架构和设计要点
- 【LeetCode】3Sum Closest
- Java集合框架2——迭代器