当前位置: 首页 > news >正文

网站制作软件都是什么python做网站的好处

网站制作软件都是什么,python做网站的好处,最近发生的新闻,沈阳网站设计定制目录 689. 三个无重叠子数组的最大和 题目描述#xff1a; 实现代码与解析#xff1a; dp 原理思路#xff1a; 滑动窗口#xff1a; 原理思路#xff1a; 689. 三个无重叠子数组的最大和 题目描述#xff1a; 给你一个整数数组 nums 和一个整数 k #xff0c;找…目录 689. 三个无重叠子数组的最大和 题目描述 实现代码与解析 dp 原理思路 滑动窗口 原理思路 689. 三个无重叠子数组的最大和 题目描述 给你一个整数数组 nums 和一个整数 k 找出三个长度为 k 、互不重叠、且全部数字和3 * k 项最大的子数组并返回这三个子数组。 以下标的数组形式返回结果数组中的每一项分别指示每个子数组的起始位置下标从 0 开始。如果有多个结果返回字典序最小的一个。 示例 1 输入nums [1,2,1,2,6,7,5,1], k 2 输出[0,3,5] 解释子数组 [1, 2], [2, 6], [7, 5] 对应的起始下标为 [0, 3, 5]。 也可以取 [2, 1], 但是结果 [1, 3, 5] 在字典序上更大。示例 2 输入nums [1,2,1,2,1,2,1,2,1], k 2 输出[0,2,4]提示 1 nums.length 2 * 1041 nums[i]  2161 k floor(nums.length / 3) 实现代码与解析 dp class Solution { public:vectorint maxSumOfThreeSubarrays(vectorint nums, int k) {reverse(nums.begin(), nums.end());int n nums.size();vectorvectorint f(n 1, vectorint(4));// 计算前缀和vectorint s(n 1, 0); // 一般0位置空出来方便处理边界for (int i 1; i n; i) { // s[1] nums[0];s[i] s[i - 1] nums[i - 1]; }// dpfor (int i k; i n; i) {for (int j 1; j 4; j) {f[i][j] max(f[i - k][j - 1] s[i] - s[i - k], f[i - 1][j]);}}vectorint res;int j 3, i n;while (j 0) {if (f[i - 1][j] f[i - k][j - 1] s[i] - s[i - k]) i--;else {res.push_back(n - i);i - k; // 跳到前一个位置j--; }}return res;} }; 原理思路 众所周知dp一般是用来求结果的而不容易输出寻找的过程。 首先求一下前缀和 s。 dp数组含义 与01背包类似遍历到第 i 个数在第 j 次选取 或 不选取 的最大值。一共选3次。 用 i  来代表单个数组最后一个数的下标。 递推公式 f[i][j] max(f[i - k][j - 1] s[i] - s[i - k], f[i - 1][j]); 两种情况i 选取下标 i - k 的数 第 j 次不选取的最大值 此段数组的和。 i 不选取下标 i - 1第 j 次 选取后的最大值继承过来。 两者取一个max。 回溯寻找路径 利用递推公式我们判断每个数是通过max取的哪个值来求出路径。加入到res中。 注意 此题说明如果有多个结果返回字典序最小的一个。 所以我们反转数组或者倒着遍历数组不然会取到字典序大的。 滑动窗口 class Solution { public:vectorint maxSumOfThreeSubarrays(vectorint nums, int k) {vectorint res(3);int sum1 0, maxSum1 0, idx1 0;int sum2 0, maxSum12 0, idx2 0, idx12_1 0, idx12_2 0;int sum3 0, maxSum123 0;for (int i k * 2; i nums.size(); i) {sum1 nums[i - k * 2];sum2 nums[i - k];sum3 nums[i];if (i k * 3 - 1) {if (sum1 maxSum1) {maxSum1 sum1;idx1 i - k * 3 1;}if (maxSum1 sum2 maxSum12) {maxSum12 maxSum1 sum2;idx12_1 idx1;idx12_2 i - k * 2 1;}if (maxSum12 sum3 maxSum123) {maxSum123 maxSum12 sum3;res {idx12_1, idx12_2, i - k 1};}sum1 - nums[i - k * 3 1];sum2 - nums[i - k * 2 1];sum3 - nums[i - k 1];}}return res;} }; 原理思路 这里记录一下我自己的问题。 为什么数组1和数组2为什么有一个idx1idx12_1 因为当数组1的sum为最大时idx1是一个值但是此时数组2与数组1的sum和并不一定是最大的毕竟要考虑数组之间的不重叠影响idx12_1用来记录最大的情况时的idx1而idx12_1要用idx1来赋值所以这就是两个idx的含义不同以及作用的不同。至于为什么数组3没有因为res就是变相的来记录了所以不需要单独再次记录当前想单独写也没问题。
http://www.w-s-a.com/news/215388/

相关文章:

  • 摄影网站的设计与实现开题报告太原企业自助建站
  • 做如美团式网站要多少钱做网站怎么去文化局备案
  • 桂平市住房和城乡建设局网站网站建设与管理自考题
  • 怎么做公司网站制作凡科官方网
  • 达人设计网官方网站建筑效果图网站有哪些
  • 网站定制哪家快建筑室内设计网
  • 网站创建方案论文旅游网站的设计与制作html
  • 网站建设的数据导入导出开发小程序需要多少钱费用
  • 局网站建设进入前十名wordpress user role editor
  • 网站托管如何收费搜一下百度
  • 中国建设劳动协会网站wordpress 区块链媒体
  • 网站开源是什么意思西安做网站科技有限公司
  • 自己怎么用h5做网站肇庆seo
  • 长沙网站seo优化公司东莞企业官方网站建设
  • 网站个人备案材料北京网站推广价格
  • 百度做任务的网站电子工程网网站
  • 中介订制网站开发玉溪网站建设设计
  • 免费网站免费无遮挡手机页面设计软件
  • 网站建设需求规格说明书中山模板建站公司
  • wordpress get值网站建设 seo sem
  • 网站建设微信开发工厂代加工平台
  • 厦门 网站建设 公司哪家好asp.net 创建网站
  • 专业北京网站建设凡科网做网站怎么样
  • 金富通青岛建设工程有限公司网站浙江省住建厅四库一平台
  • 有搜索引擎作弊的网站企业建设H5响应式网站的5大好处6
  • 是做网站编辑还是做平面设计seo外包公司接单
  • 做性的网站有哪些苏州专业网站设计制作公司
  • 陵水网站建设友创科技十大优品店排名
  • 想换掉做网站的公司简要说明网站制作的基本步骤
  • 国企公司网站制作wordpress 浮动定位