
目录
1. 商家商品销售量统计 🌟
2. 乘积最大子数组 🌟🌟
3. 滑动窗口最大值 🌟🌟🌟
🌟 每日一练刷题专栏 🌟
Golang每日一练 专栏
Python每日一练 专栏
C/C++每日一练 专栏
Java每日一练 专栏
现在有一个网站上半年的商品销售量,请你写一段代码帮助店主统计前半年的总销量和平均销量。
商品销售表
1月份 2月份 3月份 4月份 5月份 6月份 总销量 平均销量
64 53 77 59 61 42 0 0
(1)函数中应定义一个包含8个元素的一维数据,用来存放6个月的商品销量和统计后的总销量及平均销量;
(2)完成6个月销量的输入;
(3)计算半年的总销量及平均销量;
(4)按照程序运行效果图,输出商品销量表。

出处:
https://edu.csdn.net/practice/23387034
代码:
#include
int main()
{int a[8],s=0;printf("----------商家商品销售统计----------\n");printf("\n");printf("请输入商品6个月的销售量:");for (int i = 0; i < 6; i++){scanf("%d", &a[i]);s += a[i];}printf("\n\t\t\t商品销量表\t\t\t\n");printf("—————————————————————————————————\n");for (int i = 1; i <= 8; i++){if (i <= 6)printf(" %d月份 ", i);else if (i == 7)printf(" 总销售 ");elseprintf("平均销售\n");}for (int i = 0; i < 8; i++){if (i < 6)printf(" %d |", a[i]);else if (i == 6){a[i] = s;printf(" %d |", a[i]);}else{a[i] = s / 6;printf(" %d |",a[i]);}}return 0;
}
输入输出:
----------商家商品销售统计----------
请输入商品6个月的销售量:64 53 77 59 61 42
商品销量表
—————————————————————————————————
1月份 2月份 3月份 4月份 5月份 6月份 总销售 平均销售
64 | 53 | 77 | 59 | 61 | 42 | 356 | 59 |
给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
示例 1:
输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。
示例 2:
输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。
出处:
https://edu.csdn.net/practice/23387032
代码:
#include
using namespace std;class Solution
{
public:int maxProduct(vector &nums){int ans = -10000000;int n = nums.size();int max1 = 1, min1 = 1, mx, mn;for (int i = 0; i < n; i++){mx = max1;mn = min1;max1 = max(mx * nums[i], max(nums[i], mn * nums[i]));min1 = min(mn * nums[i], min(nums[i], mx * nums[i]));ans = max(max1, ans);}return ans;}
};int main()
{Solution s;vector nums = {2,3,-2,4};cout << s.maxProduct(nums) << endl;nums = {-2,0,-1};cout << s.maxProduct(nums) << endl;return 0;
}
输入输出:
6
0
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回滑动窗口中的最大值。
示例 1:
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- ----- [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7
示例 2:
输入:nums = [1], k = 1 输出:[1]
示例 3:
输入:nums = [1,-1], k = 1 输出:[1,-1]
示例 4:
输入:nums = [9,11], k = 2 输出:[11]
示例 5:
输入:nums = [4,-2], k = 2 输出:[4]
提示:
1 <= nums.length <= 10^5-10^4 <= nums[i] <= 10^41 <= k <= nums.length出处:
https://edu.csdn.net/practice/23387033
代码:
#include
using namespace std;class Solution
{
public:vector maxSlidingWindow(vector &nums, int k){vector ans;int n = nums.size();if (n == 0 || k > n)return ans;deque que;for (int i = 0; i < n; i++){if (!que.empty()){if (i >= que.front() + k)que.pop_front();while (!que.empty() && nums[i] >= nums[que.back()])que.pop_back();}que.push_back(i);if (i + 1 >= k)ans.push_back(nums[que.front()]);}return ans;}
};string vectorToString(vector vect) {stringstream ss;ss << "[";for (int i = 0; i < vect.size(); i++){ss << to_string(vect[i]);ss << (i < vect.size() - 1 ? "," : "]");}return ss.str();
}int main()
{Solution s;vector nums = {1,3,-1,-3,5,3,6,7};cout << vectorToString(s.maxSlidingWindow(nums, 3)) << endl;return 0;
}
输入输出:
[3,3,5,5,6,7]
✨ 持续,努力奋斗做强刷题搬运工!
👍 点赞,你的认可是我坚持的动力!
🌟 收藏,你的青睐是我努力的方向!
✎ 评论,你的意见是我进步的财富!
![]() | Golang每日一练 专栏 |
![]() | Python每日一练 专栏 |
![]() | C/C++每日一练 专栏 |
![]() | Java每日一练 专栏 |
下一篇:优化信用环境助力统一大市场建设