LeetCode 805数组切割题目
题目链接:805. 数组的均值分割 (借用思路来自leetode大佬heren1229 - 力扣(LeetCode))
题目要求将nums分为两个数组A和B,且A和B的平均数相等,那么就可以得出A和B的平均数与nums的数组相等,可以将所有数-平均数,得出一个数组,且数组的和为0。为了避免浮点数,可以将所有数*nums.length()。将数组一分为二,分别计算两个数组形成的和,查看是否有相反数。若有相反数,则说明当前两个数组的数加起来可以为0,则
class Solution {//默认为falseboolean ans=false;Map<Integer,Integer> map=new HashMap<>();public boolean splitArraySameAverage(int[] nums) {int sum=0;//计算所有值的总和for (int num : nums) {sum += num;}for (int i = 0; i < nums.length; i++) {nums[i]=nums[i]*nums.length-sum;}System.out.println(Arrays.toString(nums));//二分法进行操作dfs(nums,0,nums.length/2+1,0,0);dfs(nums,nums.length/2+1,nums.length,0,0);return ans;}void dfs(int[] nums,int left,int right,int sum,int cnt){//前一半用于插表if (left<=nums.length/2){map.put(sum,cnt);}//后一半用于查表 if (left>nums.length/2&&map.containsKey(-sum)&&map.get(-sum)+cnt!=0&&map.get(-sum)+cnt!=nums.length){ans=true;}if (ans){}else if (left<right){ //背包问题,选与不选dfs(nums,left+1,right,sum+nums[left],cnt+1);dfs(nums,left+1,right,sum,cnt);}}
}
这道题我一开始也是无从下手的,看到大佬heren1229 - 力扣(LeetCode)的代码思路才明白可以这样子做。
LeetCode 805数组切割题目相关推荐
- 二维数组删除_「leetcode」数组:总结篇!(一文搞懂数组题目)
数组理论基础 数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的掌控能力 也就是说,想法很简单,但实现起来 可能就不是那么回事了. 首先要知道数组在内存中的存储方 ...
- angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据
[LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...
- LeetCode:数组(排列组合,二分查找I,二分查找II)
1,排列组合 38,剑指Offer:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.你可以以任意顺序返回这个字符串数组,但里面不能有重复元素. class Solution {Li ...
- 数组(二):大厂面试不得不看的高频数组类型题目
数组篇(二) LeetCode905:按奇偶排序数组 解题思路 代码实现 LeetCode11:盛水最多的容器 解题思路 代码实现 LeetCode66:加一 解题思路 代码实现 LeetCode12 ...
- 弟中弟的Leetcode总结——数组类(十一)
弟中弟的Leetcode总结--数组类(十一) 题目描述 Single Number Given a non-empty array of integers, every element appear ...
- 弟中弟的Leetcode总结——数组类(十)
弟中弟的Leetcode总结--数组类(十) 题目描述 Climbing Stairs You are climbing a stair case. It takes n steps to reach ...
- 弟中弟的Leetcode总结——数组类(五)
弟中弟的Leetcode总结--数组类(五) 题目描述 Remove Duplicates from Sorted Array Given a sorted array nums, remove th ...
- 弟中弟的Leetcode总结——数组类(二)
弟中弟的Leetcode总结--数组类(二) 题目描述 Container With Most Water Given n non-negative integers a1, a2, -, an , ...
- 弟中弟的Leetcode总结——数组类(四)
弟中弟的Leetcode总结--数组类(四) 题目描述 Two Sum Given an array of integers, return indices of the two numbers su ...
最新文章
- 无人机、IoT 设备都有漏洞?专访以色列老牌安全企业Check Point | 拟合
- STL之七:STL各种容器的使用时机详解
- 细说Nginx配置文件
- [Java基础]IO流小结
- 【01】 课程介绍 - 计算机视觉概述
- 幂指函数怎么求极限_函数的极限I
- 3星难度-算式填符号
- 操作日志和系统日志分类记录
- 2. vi 简介(2)
- excel函数修改服务器端数据,勤哲Excel服务器表达式函数详解
- 【Git】规范化 Git 提交信息 Commitizen
- 一个很不错的C++类的练习题目
- vue中Route和router、routes的关系
- 基于Matlab模拟AWGN 信道上 OFDM附完整代码
- Windows光标选中字符切换到输入字符快捷键
- 下载国外软件慢(例如:Python安装包)
- c语言静态变量与局部变量,C语言 全局变量、静态全局变量、局部变量、静态局部变量...
- 产品经理02_竞品分析
- 〖Python 数据库开发实战 - MySQL篇㉙〗- MySQL 字符函数
- python读取文件数据恢复软件_python深度学习pdf恢复
热门文章
- 1023day5:class类属性方法、每次执行类属性+1、内建模块、时间装饰器wrapper、面向对象__slots__方法:限制类的属性等基础知识、正则表达式基础知识、多态鸭子类型
- luogu P2124 奶牛美容
- ArcGIS学习05:坐标系
- WhatsApp 批量解封提交工具
- Linux 安装字体库-宋体
- leetcode day 2 【1905. 统计子岛屿】 BFS/DFS
- iOS开发三方资源 - 欲先攻其事必先利其器
- 2022年中国云市场份额:阿里云腾讯云下降
- 解除Word的编辑保护【简单版】
- css动画放大缩小效果