网络编程
位置:首页>> 网络编程>> Go语言>> golang实现数组分割的示例代码

golang实现数组分割的示例代码

作者:_little_stone  发布时间:2024-05-08 10:23:41 

标签:golang,数组分割

需求:给定一个数组和一个正整数,要求把数组分割成多个正整数大小的数组,如果不够分,则最后一个数组分到剩余的所有元素。

示例1:

数组:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],正整数:2
期望结果: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

示例2:

数组:[1, 2, 3, 4, 5, 6, 7, 8, 9],正整数:2
期望结果: [[1, 2], [3, 4], [5, 6], [7, 8], [9]]

下面是我的实现代码:


//分割数组,根据传入的数组和分割大小,将数组分割为大小等于指定大小的多个数组,如果不够分,则最后一个数组元素小于其他数组
func splitArray(arr []int, num int64) [][]int {
max := int64(len(arr))
//判断数组大小是否小于等于指定分割大小的值,是则把原数组放入二维数组返回
if max <= num {
 return [][]int{arr}
}
//获取应该数组分割为多少份
var quantity int64
if max%num == 0 {
 quantity = max / num
} else {
 quantity = (max / num) + 1
}
//声明分割好的二维数组
var segments = make([][]int, 0)
//声明分割数组的截止下标
var start, end, i int64
for i = 1; i <= quantity; i++ {
 end = i*num
 if i != quantity {
  segments = append(segments, arr[start:end])
 } else {
  segments = append(segments, arr[start:])
 }
 start = i*num
}
return segments
}

附:这个是我在实际业务需求中遇到的问题,不知道大家有没有更好写法

来源:https://blog.csdn.net/MCJPAO/article/details/108431657

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com