<= i - k) {indexQueue.pop_front();}myVector.push_back(nums[indexQueue.front()]);}}return myVector;}};
方法一:
方法二:这是一个双端队列 。
剑指 Offer 59 - II. 队列的最大值
class MaxQueue {private:queue
这个题实际上和上边的滑动窗口是同一个类型的题,我们用一个双端队列存储它的最大值,在push的时候,遇到value比其最后一个值大,就把最后一个数pop掉(因为这个滑动窗口中原来的最后一个值没有新的value大,而且如果pop的话一定是原来的值先pop出去,就说明原来的值现在在存储最大值的双端队列中存在的意义不大了),存入新的value 。
剑指 Offer 60. n个骰子的点数
class Solution {public:vector
第n个骰子的结果有5n+1种,其递推公式为:
将其代码化就行 。
剑指 Offer 61. 扑克牌中的顺子
class Solution {public:bool isStraight(vector
看上边说的就行 。
剑指 Offer 62. 圆圈中最后剩下的数字
class Solution {private:int fun(int n, int m) {if (n == 1) {return 0;}int x = fun(n - 1, m);return (m + x) % n;}public:int lastRemaining(int n, int m) {return fun(n, m);}};
我就只能想到模拟法了,还得看k神的,动态规划,吊太,每一次要删除的就是上次删除的位置加上m,避免大于n,最后还会%n,f(n) = (f(n - 1) + t) % n 。
剑指 Offer 63. 股票的最大利润
class Solution {public:int maxProfit(vector
定义一个变量money用来存储最大的利益,再定义一个标识min,用来指向之前的最小数,每次都进行相减运算,比money大就表示利润高,就记录下来,如果遇到比指点min还小的,也记录下来,重复上述操作,直到数组遍历完 。
剑指 Offer 64. 求1+2+…+n
//方法一:class Solution {public:int sumNums(int n) {int sum = n;n && (sum += sumNums(n - 1));return sum;}};//方法二:class Solution {public:int sumNums(int n) {bool a[n][n + 1];return sizeof(a) >> 1;}};//方法三:class Solution {public:int sumNums(int n) {int ans = 0, A = n, B = n + 1;(B & 1) && (ans += A);A
- 《窥情》未删减版在哪儿在线观看
- android应用程序开发!在字节跳动我是如何当面试官的,威力加强版
- 初一上册数学 初一上册数学书电子版
- 最值得普通人学的编程语言是哪个?
- win10企业版ltsc密钥 win10企业版ltsc有录屏功能吗
- 造梦西游4好号和密码真的90级 造梦西游4好号和密码真的手机版
- iqooneo7竞速版屏幕尺寸
- 一九四二电影免费完整版在哪儿在线观看
- 偷窥课程完整版是什么电影
- 医用口罩和普通口罩有什么区别