首页 > 其他分享 >分块数组

分块数组

时间:2023-07-12 19:48:21浏览次数:34  
标签:arr 示例 分块 let 数组 size

给定一个数组 arr 和一个块大小 size ,返回一个 分块 的数组。分块 的数组包含了 arr 中的原始元素,但是每个子数组的长度都是 size 。如果 arr.length 不能被 size 整除,那么最后一个子数组的长度可能小于 size 。

你可以假设该数组是 JSON.parse 的输出结果。换句话说,它是有效的JSON。

请你在不使用 lodash 的函数 _.chunk 的情况下解决这个问题。

示例 1:

输入:arr = [1,2,3,4,5], size = 1
输出:[[1],[2],[3],[4],[5]]
解释:数组 arr 被分割成了每个只有一个元素的子数组。
示例 2:

输入:arr = [1,9,6,3,2], size = 3
输出:[[1,9,6],[3,2]]
解释:数组 arr 被分割成了每个有三个元素的子数组。然而,第二个子数组只有两个元素。
示例 3:

输入:arr = [8,5,3,2,6], size = 6
输出:[[8,5,3,2,6]]
解释:size 大于 arr.length ,因此所有元素都在第一个子数组中。
示例 4:

输入:arr = [], size = 1
输出:[]
解释:没有元素需要分块,因此返回一个空数组。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/chunk-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

屎山代码(第一次写JS)

/**
 * @param {Array} arr
 * @param {number} size
 * @return {Array[]}
 */
var chunk = function(arr, size) {
    //返回数组,const代表内存地址不可变的数组
    const result = [];
    //let代表作用域是离自己最近的代码块
    let count = 0;
    let ars = [];
    for(let i=0;i<arr.length;i++){
        //push添加元素
        ars.push(arr[i]);
        count++;
        if(count!=0&&count%size===0){
            result.push([...ars]);
            //重置数组为空
            ars = []
        }
    }
    //判断ars数组中是否为空,不为空就添加数组
    ars.length && result.push([...ars])
    return result;
};

标签:arr,示例,分块,let,数组,size
From: https://www.cnblogs.com/xiaochaofang/p/17548619.html

相关文章

  • 不确定大小的数组怎么办?Java中三种常用的方法
    Java中如何操作不确定大小的数组1. 前言 1.1 什么是数组数组是一种存储多个相同类型数据的有序集合,它可以通过索引来访问每个元素。数组是一种引用类型的变量,它在内存中占用一块连续的空间。 1.2  数组的特点数组有以下几个特点:-数组的长度是确定的,一旦创建就不能......
  • Java复制(拷贝)数组的4种方法:arraycopy()方法、clone() 方法、copyOf()和copyOfRange
    http://c.biancheng.net/view/924.html所谓复制数组,是指将一个数组中的元素在另一个数组中进行复制。本文主要介绍关于 Java 里面的数组复制(拷贝)的几种方式和用法。在Java中实现数组复制分别有以下4种方法:Arrays类的copyOf()方法Arrays类的copyOfRange()方法Syst......
  • LeetCode 剑指 Offer 11. 旋转数组的最小数字
    题目链接:LeetCode剑指Offer11.旋转数组的最小数字题意:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [......
  • 树状数组学习笔记与总结
    树状数组学习笔记与总结目录树状数组OIWiki信息学奥赛一本通例题单点修改,区间查询区间修改,单点查询区间修改,区间查询树状数组OIWikiOIWiki-树状数组信息学奥赛一本通例题单点修改,区间查询LibreOJ树状数组1:单点修改,区间查询我的代码点击查看代码#include<......
  • Go--统计数组中重复的元素及重复次数
    代码:packagemainimport("fmt")funcmain(){//创建有重复数值的数组a1:=[]int{1,2,3,1,4,5,2}a2:=[]string{"t1","t2","t1","t3","t5","t3"}//创建maps1:=......
  • LeetCode -- 918. 环形子数组的最大和
     遇到环形问题一般有两种考虑方法:1.破环成链2.分为数组中间部分和数组两边部分分别考虑本题采用第二种考虑方法,将原数组分为中间部分和两边部分分别考虑。中间部分即为子数组最大和,两边部分计总和减去中间部分最小和。classSolution{public:intma......
  • JavaScript 将对象数组按字母顺序排序
    原文链接:JavaScript将对象数组按字母顺序排序这里给出三种解决方案:1.if条件语句+sort()2.localeCompare()+sort()3.Collator()+sort()sort用法语法array.sort(compareFunction)参数值参数描述compareFunction可选。定义替代排序顺序的函数。该函数......
  • Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是
    1.jquerygrep()筛选遍历数组(可以得到反转的数组)//1.jquerygrep()筛选遍历数组(可以得到反转的数组)vararray=[1,5,9,3,12,4,48,98,4,75,2,10,11];varfilterArray=$.grep(array,(currentValue)=>{returncurrentValue>10;});console.log(`${filt......
  • 树状数组
    概念https://zhuanlan.zhihu.com/p/92920381树状数组(BinaryIndexedTree,又FenwickTree)其实并不是一棵树,只是对数组各元素进行逻辑上的划分。根据维基百科,树状数组是一种用于高效计算数列前缀和的数据结构,它可以以O(logn)的时间得到任意前缀和(两个前缀和相减即可得到区间和),并......
  • HJ80 整型数组合并
    1.题目读题HJ80 整型数组合并  考查点 2.解法思路 代码逻辑 具体实现 publicclassHJ080{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);intn1=sc.nextInt();int[]arr1=newint[n1]......