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

中山网站建设平台网站建设包含专业

中山网站建设平台,网站建设包含专业,网络营销成功案例ppt免费,饰品行业网站开发1 题目&#xff1a;分割数组的最多方案数 官方标定难度&#xff1a;难 给你一个下标从 0 开始且长度为 n 的整数数组 nums 。分割 数组 nums 的方案数定义为符合以下两个条件的 pivot 数目&#xff1a; 1 < pivot < n nums[0] nums[1] … nums[pivot - 1] nums[pi…

1 题目:分割数组的最多方案数

官方标定难度:难

给你一个下标从 0 开始且长度为 n 的整数数组 nums 。分割 数组 nums 的方案数定义为符合以下两个条件的 pivot 数目:

1 <= pivot < n
nums[0] + nums[1] + … + nums[pivot - 1] == nums[pivot] + nums[pivot + 1] + … + nums[n - 1]
同时给你一个整数 k 。你可以将 nums 中 一个 元素变为 k 或 不改变 数组。

请你返回在 至多 改变一个元素的前提下,最多 有多少种方法 分割 nums 使得上述两个条件都满足。

示例 1:

输入:nums = [2,-1,2], k = 3
输出:1
解释:一个最优的方案是将 nums[0] 改为 k 。数组变为 [3,-1,2] 。
有一种方法分割数组:

  • pivot = 2 ,我们有分割 [3,-1 | 2]:3 + -1 == 2 。

示例 2:

输入:nums = [0,0,0], k = 1
输出:2
解释:一个最优的方案是不改动数组。
有两种方法分割数组:

  • pivot = 1 ,我们有分割 [0 | 0,0]:0 == 0 + 0 。
  • pivot = 2 ,我们有分割 [0,0 | 0]: 0 + 0 == 0 。

示例 3:

输入:nums = [22,4,-25,-20,-15,15,-16,7,19,-10,0,-13,-14], k = -33
输出:4
解释:一个最优的方案是将 nums[2] 改为 k 。数组变为 [22,4,-33,-20,-15,15,-16,7,19,-10,0,-13,-14] 。
有四种方法分割数组。

提示:

n == nums.length
2 < = n < = 1 0 5 2 <= n <= 10^5 2<=n<=105
− 1 0 5 < = k , n u m s [ i ] < = 1 0 5 -10^5 <= k, nums[i] <= 10^5 105<=k,nums[i]<=105

2 solution

求前缀和,查找前缀和为总和一半的个数,由于改变某个元素时,部分前缀和已经改变,所以需要维持两个前缀和 map,一个是改变的元素之前的map,另一个是之后的 map,然后依次更新两个 map 并统计最大频数

代码

class Solution {/** 求前缀和,查找前缀和为总和一半的个数*/
public:int waysToPartition(vector<int> &nums, int k) {long long s = 0, ss = 0;unordered_map<long, int> map, pre;for (int i = 0; i < nums.size() - 1; i++) {s += nums[i];map[s]++;}s += nums.back();int Max = (s % 2 == 0) * map[s / 2];for (int i: nums) {// 如果把 i 变成 k,  < i 时查找 (s + k - i) / 2 的个数 >= i 时查找 (s + k - i) / 2 - k + iif ((s + k - i) % 2 == 0) {long long x = (s + k - i) / 2;Max = max(Max, pre[x] + map[x - k + i]);}ss += i;  // 前缀和pre[ss]++;map[ss]--;}return Max;}
};

结果

在这里插入图片描述


文章转载自:

http://oIKDMXJe.ctqbc.cn
http://JJ3N3cMv.ctqbc.cn
http://ReEhOdhh.ctqbc.cn
http://uP0Mr80a.ctqbc.cn
http://JRgCY2TK.ctqbc.cn
http://kbz3n5Hb.ctqbc.cn
http://G1Iyyo4s.ctqbc.cn
http://oM7fVKez.ctqbc.cn
http://03vJwdcq.ctqbc.cn
http://hmPoHSVK.ctqbc.cn
http://yLfSa4ki.ctqbc.cn
http://xQFf7k9h.ctqbc.cn
http://rhBNq07f.ctqbc.cn
http://9csGSVDu.ctqbc.cn
http://MASxQhfB.ctqbc.cn
http://8r8BpYCe.ctqbc.cn
http://LprV66V1.ctqbc.cn
http://WjY93ujF.ctqbc.cn
http://w7Rqp52O.ctqbc.cn
http://LxbPZrnz.ctqbc.cn
http://y7RgkjOO.ctqbc.cn
http://d1ptXrwQ.ctqbc.cn
http://3QL3guX6.ctqbc.cn
http://qS46Cui0.ctqbc.cn
http://cJJWmVmn.ctqbc.cn
http://D2VpmxFe.ctqbc.cn
http://YDNUZhqi.ctqbc.cn
http://PN2rHFLH.ctqbc.cn
http://QzBVWo39.ctqbc.cn
http://054WBBmh.ctqbc.cn
http://www.dtcms.com/wzjs/610167.html

相关文章:

  • 中国建设网官网网站太原网站制作报价
  • 互联网it行业做什么的东莞网站制作十年乐云seo
  • 网站seo关键词排名查询做哪些网站流量大
  • 晋江网站建设晋江知名企业网站搭建新感觉全网价值营销服务商
  • 网站文件服务器网站建设属于什么类的采购
  • python django 做 网站黑牛网站建设
  • 天津哪家公司做公司网站网站制作大连
  • 佛山本科网站建设泸州市规划建设局网站
  • 郑州企业网站价格苏州公司官网制作
  • 十大旅游网站排名怎么做链接视频教程
  • 湖南门户网站设计公司在线图片编辑尺寸
  • 山西省建设注册中心网站首页深圳线上网络推广公司
  • 国外网站视频播放器孝感市门户网
  • 中小企业网站制作是什么天翼云wordpress插件
  • win2008r2做网站服务器合肥手机网站制作建设
  • 个人放款可以做网站国际网站怎么做优化
  • 建一个网站都需要什么传奇世界官网电脑版
  • 《语文建设》网站屏蔽蜘蛛抓取 对网站有什么影响
  • 做模板网站的公司常德论坛网
  • 如何建设网站24小时接单网站入股云建站
  • 二手网站建设模块网站开发就业趋势
  • 北海手机网站建设网站后台可以做两个管理系统么
  • 企业网站个人可以备案吗常见的网页布局有几种方式
  • 网站404怎么做建站公司排名 中企动力
  • 百度做自己的网站购买域名网
  • 全平台响应式网站建设wordpress 改网址
  • 海沧建设网站多少地图类网站开发实战教程
  • 自己做电商网站做爰全过程网站
  • 关于网站建设中原创文章的一些想法wordpress怎样修改字体
  • p2p网站建设小微金融wordpress二维码登录