Golang | Leetcode Golang题解之第384题打乱数组

题目:

题解:

Go 复制代码
type Solution struct {
    nums, original []int
}

func Constructor(nums []int) Solution {
    return Solution{nums, append([]int(nil), nums...)}
}

func (s *Solution) Reset() []int {
    copy(s.nums, s.original)
    return s.nums
}

func (s *Solution) Shuffle() []int {
    n := len(s.nums)
    for i := range s.nums {
        j := i + rand.Intn(n-i)
        s.nums[i], s.nums[j] = s.nums[j], s.nums[i]
    }
    return s.nums
}
相关推荐
圣保罗的大教堂10 分钟前
leetcode 3433. 统计用户被提及情况 中等
leetcode
CoderYanger1 小时前
C.滑动窗口-求子数组个数-越长越合法——3325. 字符至少出现 K 次的子字符串 I
c语言·数据结构·算法·leetcode·职场和发展·哈希算法·散列表
sin_hielo1 小时前
leetcode 3606
数据结构·算法·leetcode
不会写DN2 小时前
fmt 包中的所有 Print 系列函数
开发语言·后端·golang·go
电子_咸鱼3 小时前
常见面试题——滑动窗口算法
c++·后端·python·算法·leetcode·哈希算法·推荐算法
萌>__<新3 小时前
力扣打卡每日一题————最小覆盖子串
数据结构·算法·leetcode·滑动窗口·哈希表
ada7_4 小时前
LeetCode(python)230.二叉搜索树中第k小的元素
python·算法·leetcode·链表
小明的小名叫小明4 小时前
Go从入门到精通(28) -再谈GMP和starvation
网络·golang
长安er5 小时前
LeetCode 83/237/82 链表删除问题-盒子模型
数据结构·算法·leetcode·链表·力扣
Kiri霧5 小时前
Go包基础与使用指南
开发语言·后端·golang