slice

package module
v0.0.0-...-fa5f906 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: MIT Imports: 4 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AverageFloat

func AverageFloat[T Number](numbers []T) float64

AverageFloat 求平均值, 返回值是浮点数

func BinarySearch

func BinarySearch[T constraints.Ordered](sli []T, target T) (from, to int, hit bool)

BinarySearch 二分法搜索一段已排序的数

func CombineEvenly

func CombineEvenly[T comparable](s1, s2 []T) []T

func Copy

func Copy[T any](sli []T) []T

Copy makes a copy

func CutIntoSectors

func CutIntoSectors[T any](sli []T, sectorLimit int) [][]T

CutIntoSectors 阿照 limit 分成一段一段的

func Element

func Element[T any, I constraints.Signed](sli []T, signedIndex I) (value T, inRange bool)

Element 读取切片中的值, 如果是负数, 表示从最后一个 (-1) 读起。不论是正数还是负数, 如果超出 范围, 返回的 value 均无效, 并且 inRange 返回 false。

func Equal

func Equal[T comparable](a, b []T) bool

Equal 逐个比较两个切片里的值是否相等

func HaveEqualValues

func HaveEqualValues[T comparable](a, b []T) bool

HaveEqualValues 判断两个切片中是否拥有相同的值, 允许重复并且不考虑顺序

func Maximum

func Maximum[T Number](numbers []T) T

Maximum 找最小值

func Minimum

func Minimum[T Number](numbers []T) T

Minimum 找最小值

func Reverse

func Reverse[T any](sli []T)

Reverse a slice

func SetElement

func SetElement[T any, I constraints.Signed](sli []T, signedIndex I, value T) (inRange bool)

SetElement 往一个切片中设置值, 如果是负数, 表示设置在最后一个 (-1) 位置。不论是正数还是负数, 如果超出范围, 均无法设置, 并且 inRange 返回 false。

func Shuffle

func Shuffle[T any](tgt []T)

Shuffle shuffles a slice

func Sort

func Sort[T any](sli []T, lessFunc func(i, j T) bool)

Sort 封装 sort.Slice

func Sum

func Sum[T Number](numbers []T) T

Sum 求和

Types

type EqualFunc

type EqualFunc func(xIndex, yIndex int) bool
type LCSLink struct {
	Down       bool
	LowerRight bool
	Right      bool
}

LCSLink 表示

type LCSMap

type LCSMap struct {
	M [][]int
	L [][]LCSLink
	// contains filtered or unexported fields
}

LCSMap 表示 LCS 计算结果图

func LCS

func LCS(lenX, lenY int, equal EqualFunc) (m *LCSMap)

LCS 计算最长公共子序列,并返回结果图

func (*LCSMap) GetRoute

func (m *LCSMap) GetRoute() *Route

GetARoute 方便地返回一个相同序列的路径。从 map 中的右下角,优先向上方搜索

func (*LCSMap) MaxSubLen

func (m *LCSMap) MaxSubLen() int

MaxSubLen 返回最大子序列计算结果

type List

type List[T constraints.Ordered] []T

List 表示一个 slice 类型

func ToList

func ToList[T constraints.Ordered](cli []T) List[T]

ToList 转为 List 类型

func (List[T]) Copy

func (l List[T]) Copy() List[T]

Copy 制作一个副本

func (List[T]) Deduplicate

func (l List[T]) Deduplicate() List[T]

Deduplicate 创建一个副本并去重

func (List[T]) Equal

func (l List[T]) Equal(another List[T]) bool

Equal 判断两个 list 各位置上的成员是否相等

func (List[T]) Shuffle

func (l List[T]) Shuffle()

Shuffle 乱序

func (List[T]) SortAsc

func (l List[T]) SortAsc() List[T]

SortAsc 按照升序 (<=) 排序。为了便于链式调用, 返回自己

func (List[T]) SortDesc

func (l List[T]) SortDesc() List[T]

SortDesc 按照降序 (>=) 排序。为了便于链式调用, 返回自己

type Number

type Number interface {
	constraints.Float | constraints.Integer
}

Number 表示所有的实数类型

type Route

type Route struct {
	XIndexes []int
	YIndexes []int
}

Route 表示一个结果路径

func (*Route) ToIter

func (r *Route) ToIter(xLen, yLen int) RouteIter

ToIter 转为 RouteIter 格式

type RouteIter

type RouteIter [][2]int

RouteIter 组合起左右 LCS 的结果, 并且使用 [2]int 标记当前路径点属于那一边的值。 -1 表示不存在

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL