Lc1013将数组分成相等的三个部分
Lc1013将数组分成相等的三个部分
第一想法就是看看数组所有和是不是能够被3整除,但是i + j < j
这个条件没有用上所以感觉不对,但还是提交了,因为想不出出来其他的例子,让编译器给个提示,然后就有这个了[0,2,1,-6,6,7,9,-1,2,0,1]
总和sum = 21
但是前面一段找不到和为7的一个子段。
var canThreePartsEqualSum = function(arr) {let sum = 0;for (let i = 0, len = arr.length; i < len; i ++) {sum += arr[i];}return sum % 3 == 0 ? true : false;
};
求和js里面是不是有reduce方法,当时不会写, 完整写法,当然也可以使用箭头函数 + 胜省略参数的方式,reduce
高深的方法暂时不做深究
let sum = arr.reduce(function(prev, cur, index, arr) {return prev + cur;})
步骤
- 如果总和不是3的倍数一定返回
false
- 然后从前面遍历数组,看看某一段和是不是
== sum / 3
, 如果有三段和为sum / 3
的就返回true
否则false
var canThreePartsEqualSum = function(arr) {let sum = arr.reduce((prev, cur) => prev + cur);if (sum % 3 != 0) return false;sum = Math.floor(sum / 3);let cnt = 0;let tem = sum;for (let i = 0, len = arr.length; i < len; i ++) {tem -= arr[i];if (tem === 0) {cnt ++;tem = sum;}if (cnt == 3) {return true;}}return false;
};
Lc1013将数组分成相等的三个部分相关推荐
- python【力扣LeetCode算法题库】1013-将数组分成和相等的三个部分(贪心)
将数组分成和相等的三个部分 给你一个整数数组 A,只有可以将其划分为三个和相等的非空部分时才返回 true,否则返回 false. 形式上,如果可以找出索引 i+1 < j 且满足 (A[0] ...
- Leetcode1712. 将数组分成三个子数组的方案数[C++题解]:双指针和前缀和
文章目录 本题分析 题目链接 本题分析 题目重述: 给定一个非负的数组,要求将其分成3个非空的三段,要求每一段的数字之和依次递增(可以相等),求总共有几种分法. 题目解答: 双指针算法 思路:枚举第二 ...
- 698. 划分为k个相等的子集:给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等。
题目描述 给定一个整数数组 nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k ...
- 【动态规划】将一个包含m个整数的数组分成n个数组,每个数组的和尽量接近,及其变形(Python实现)
背景 实际的问题来源于LQA系统的人员分配工作量,有两种方式,一种是 平均分配,一种是按给定比例分配.不需要AC,能得到符合题意的解就算达成目标. 平均分配 一个order订单包含一个xls表格,内含 ...
- LeetCode 2035. 将数组分成两个数组并最小化数组和的差
文章目录 一.题目 1.题目描述 2.基础框架 3.原题链接 二.解题报告 1.思路分析 2.算法详解 3.时间复杂度 4.代码详解 三.本题小知识 四.加群须知 一.题目 1.题目描述 给你一个 ...
- android double转string_Java 数组转 List 的三种方式及对比
来源:Java数组转List的三种方式及对比_五道口-CSDN博客 作者:大脑补丁 前言: 本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解 ...
- php 把一个数组分成有n个元素的二维数组的算法
一.第一种解法 <?php //把一个数组分成几个数组//$arr 是数组//$num 是数组的个数function partition($arr,$num){//数组的个数$listcount ...
- php数组书写形式,php数组(array)输出的三种形式讲解
php数组(array)输出的三种形式讲解 发布于 2015-01-30 15:57:43 | 119 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyperte ...
- 背包问题变种:将数组分成两部分使得两部分的和的差最小
题目: 将一个数组分成两部分,不要求两部分所包含的元素个数相等,要求使得这两个部分的和的差值最小.比如对于数组{1,0,1,7,2,4},可以分成{1,0,1,2,4}和{7},使得这两部分的差值最小 ...
最新文章
- Ftp上传类(FtpClient)
- SVG animation 回顾
- 洛谷 P3750 [六省联考2017]分手是祝愿
- 从 0 搭建一个工业级推荐系统
- python创建矩阵_Python创建二维数组的正确姿势
- python2 与python3 区别的总结 持续更新中......
- 客户读取文件服务器上文件的过程,java从服务器上读取文件
- 使用 artitalk + LeanCloud 配置给个人博客搭建说说
- 《统计学》第八版贾俊平第十三章时间序列分析和预测知识点总结及课后习题答案
- Hibernate中Entity对象的重新加载refresh
- linux的文件保护,如何在Linux中保护文件和目录免遭删除
- Stream.min
- minio服务报403错误
- 深圳面试一周记录——.NET(B/S)开发
- windows一键睡眠,不是休眠!
- 这姐姐呀的人工智能实训1:机器人语料库数据集准备
- java内存映射读取管道文件
- ActiveMQ点对点消息传递
- 差分线传输的两台设备需要共地吗?RS485接口为什么要接地
- SQL SERVER 数学函数
热门文章
- mysql datetime 对于hbm_mysql 字段datetime Hibernate
- mos 控制交流_MOS管和IGBT管的区别
- json 插入数据_MongoDB如何一次插入多条json数据
- python能做什么游戏-有趣又好玩的9个Python编程小游戏、简直太棒了
- python怎么读发音百度翻译-用python实现百度翻译
- python零基础能学吗-终于知道深圳Python零基础能学吗
- python 入门基础-Python入门基础
- 基于HMM的连续小词量语音识别 - 模拟技术 - 电子发烧友网
- Web API-document
- java线程池饱和策略_干货:Java几种线程池的分析和使用。