算法:设计问题

  • 384 打乱数组
    洗牌算法:Fisher-Yates Shuffle
    每个元素被放置在新数组中的第i个位置概率是\frac 1n
    参考:CSDN
for (int i = length - 1; i >= 0; i--) {
    int index = random.nextInt(i+1);
    swap(arr[i], arr[index]);
}
  • 380 常数时间插入、删除和获取随机元素
    要求O(1)复杂度的题目基本都需要使用哈希表。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容