寻找数组的错位排列

在组合数学中,如果一个排列中所有元素都不在原先的位置上,那么这个排列就被称为错位排列。给定一个从  1  到  n  升序排列的数组,你可以计算出总共有多少个不同的错位排列吗?由于答案可能非常大,你只需要将答案对  1000000007  取余输出即可。样例  1:        输入:  3   

#leetcode   #数学   #算法   #取余   #中等   #动态规划  

可能的二分法

给定一组  N  人(编号为  1,  2,  ...,  N),  我们想把每个人分进任意大小的两组。每个人都可能不喜欢其他人,那么他们不应该属于同一组。形式上,如果  dislikes[i]  =  [a,  b],表示不允许将编号为  a  和  b  的人归入同一组。当可以用这种方法将所有人

#leetcode   #算法   #贪心   #中等   #图遍历   #深度优先   #广度优先  

根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组  people  表示队列中一些人的属性(不一定按顺序)。每个  people[i]  =  [hi,  ki]  表示第  i  个人的身高为  hi  ,前面  正好  有  ki  个身高大于或等于  hi  的人。请你重新构造并返回输入数组  peo

#leetcode   #算法   #贪心   #中等  

最佳观光组合

给定正整数数组  A,A[i]  表示第  i  个观光景点的评分,并且两个景点  i  和  j  之间的距离为  j  -  i。一对景点(i  <  j)组成的观光组合的得分为(A[i]  +  A[j]  +  i  -  j):        景点的评分之和减去它们两者之间的距离。返

#leetcode   #算法   #中等   #动态规划  

秋叶收藏集

小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集  leaves,字符串  leaves  仅包含小写字符  r  和  y,  其中字符  r  表示一片红叶,字符  y  表示一片黄叶。出于美观整齐的考虑,小扣想要将收藏集中树叶的排列调整成「红、黄、红」三部分。每部

#leetcode   #算法   #中等   #动态规划  

黑白方格画

小扣注意到秋日市集上有一个创作黑白方格画的摊位。摊主给每个顾客提供一个固定在墙上的白色画板,画板不能转动。画板上有  n  *  n  的网格。绘画规则为,小扣可以选择任意多行以及任意多列的格子涂成黑色,所选行数、列数均可为  0。小扣希望最终的成品上需要有  k  个黑色格子,请返回小扣共有多少种

#leetcode   #算法   #简单   #数学公式   #动态规划  

买卖股票的最佳时机Ⅱ

给定一个数组,它的第  i  个元素是一支给定股票第  i  天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例  1:        输入:  [7,1,5,3,6,4]   

#leetcode   #算法   #贪心   #简单   #动态规划  

买卖股票的最佳时机

给定一个数组,它的第  i  个元素是一支给定股票第  i  天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例  1:        输入:  [7,1,5,3,6,4]        输出:  5  

#leetcode   #算法   #简单   #动态规划