【LeetCode笔记 - 每日一题】384. 打乱数组(Java、洗牌算法)

文章目录

      • 题目描述
      • 思路 && 代码

题目描述

  • 中等题,很赞!第一次碰到涉及洗牌算法的题
  • 有点涉及概率,主要是要实现公平的随机
    在这里插入图片描述

思路 && 代码

  • 采用了 Knuth 洗牌算法,可以看看这篇博客
  • 时间复杂度O(N),空间复杂度O(N)
class Solution {int[] nums;Random random = new Random();public Solution(int[] nums) {this.nums = nums;}// 直接返回原版本public int[] reset() {return nums;}// clone 一个原版本,然后进行洗牌算法:public int[] shuffle() {int[] ans = nums.clone();for(int i = 0; i < ans.length; i++) swap(ans, i, i + random.nextInt(ans.length - i));return ans;}void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504188.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python redis模块connectionerror_ConnectionError:Error 2连接到Python/Django Redis中的unix套接字...

我正在尝试在一个全新的Mac上运行一个django项目。它一直工作到昨天&#xff0c;我不知道发生了什么&#xff0c;但突然间我开始收到Redis错误。在我可以加载不查询数据库的页面&#xff0c;但是一旦我尝试进行搜索(部分依赖于Redis)&#xff0c;它就不起作用了。在有什么想法吗…

split函数python 未定义_python split函数基本用法

Python split()方法描述&#xff1a; Python split() 通过指定分隔符对字符串进行切片&#xff0c;如果参数 num 有指定值&#xff0c;则分割成 (num1) 个子字符串。语法&#xff1a; str.split(str"", numstring.count(str))参数&#xff1a; str——分隔符&#xf…

【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)

文章目录题目描述思路 && 代码题目描述 看了题目以后想到啥&#xff1f; 字符数量统计银行家算法逐个拆解建立数字 - 字符串的全局映射 思路 && 代码 抄答案了&#xff0c;采取了评论区三叶dalao的写法&#xff08;不得不说&#xff0c;人家的处理写法是真…

字符串的地址_面试题:我有一批IPv6地址,你帮我想个办法来存储?

作者&#xff1a;dadiyang-绪扬来源&#xff1a;公众号Java面试那些事儿之前写了一篇《面试题&#xff1a;请用代码实现ip地址与int之间互换&#xff1f;》&#xff0c;有读者评论问到 IPv6 的转换方法&#xff0c;于是抽时间也自己实现了一下。面试官&#xff1a;我有一批IPv6…

【LeetCode笔记 - 每日一题】519. 随机翻转矩阵(Java、随机、双指针)

文章目录题目描述思路 && 代码题目描述 又是涉及到均等概率的随机&#xff5e; 思路 && 代码 用的题解区三叶的代码&#xff5e;写得是真的好&#xff01;不论题目&#xff0c;但抄一遍代码都能觉得有收获&#xff01;维度转化&#xff1a;并没有创造二维数…

当前操作系统缺少黑体等字体_从零开始开发一个操作系统

在2019年的最后一天终于完成了整个系统的开发&#xff0c;并给它起名曰——Inios 。就如同文章名字一样&#xff0c;完全是从内核编写&#xff0c;非二次开发&#xff0c;从最初的“hello os”到初次有了系统的样子。主要用C语言编写&#xff0c;部分汇编语言。。整个操作系统完…

db设计专用excel_独家|自卸车如何实现侧板结构快速设计,减少重复工作?

作者| 张凯 汉阳专用汽车研究所科研技术部工程师 主要从事专用汽车产品结构仿真与轻量化随着城市发展的步伐不断加快&#xff0c;适用于各种工况的自卸车、城市渣土车市场需求量不断增大。目前市场自卸车车厢主要有两种&#xff1a;U型车厢和普通矩形车厢。其中U型车厢自卸车&a…

python 线程退出_python线程退出

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;如果某线程并未使用很多 io 操作&#xff0c; 它会在自己的时间片内一直占用处理器(和 gil)。 也就是说&…

【LeetCode笔记 - 每日一题】334. 递增的三元子序列(Java、偏思路)

文章目录题目描述思路 && 代码题目描述 可以转换成300. 最长递增子序列&#xff0c;再看结果是否大于3但上述写法O(N)复杂度实现不了&#xff0c;还是得用针对这道题的写法&#xff08;见下&#xff09; 思路 && 代码 学习了评论区大佬的写法&#xff0c;…

python判断密码强度_python实现密码强度校验

本文实例为大家分享了python实现密码强度校验的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下一 校验规则规则1 密码长度8位以上规则2 密码需包含数字规则3 密码需包含大小写字母规则4 密码需包含特殊字符["", "-", "*", "/&quo…

python字典替换值_python字典改变value值方法总结

今天这篇文章中我们来了解一下python之中的字典&#xff0c;在这文章之中我会对python字典修改进行说明,以及举例说明如何修改python字典内的值。我们开始进入文章吧。 首先我们得知道什么是修改字典 修改字典 向字典添加新内容的方法是增加新的键/值对&#xff0c;修改或删除已…

【LeetCode笔记 - 每日一题】373. 查找和最小的 K 对数字(Java、堆、优先队列)

文章目录题目描述思路 && 代码题目描述 几天没打题&#xff0c;感觉脑子都是一团浆糊。。。。 升序&#xff1a;肯定得用这条件来优化复杂度数对&#xff1a;用 int[2] 来表示 思路 && 代码 看了题解区彤哥的思路&#xff0c;代码其实就 8 行 堆初始化&…

sql 循环处理数据_图文介绍 SQL 的三种查询计划处理模型,Spark 用了其中两个

我已经在之前的 《一条 SQL 在 Apache Spark 之旅(上)》、《一条 SQL 在 Apache Spark 之旅(中)》 以及 《一条 SQL 在 Apache Spark 之旅(下)》 这三篇文章中介绍了 SQL 从用户提交到最后执行都经历了哪些过程&#xff0c;感兴趣的同学可以去这三篇文章看看。这篇文章中我们主…

html调用python_flask之模板html中调用python函数方法

一&#xff1a;html里面可以调用python写的函数 add_template_global&#xff08;调用函数的引用&#xff0c;"调用函数的名字"&#xff09; from common.libs.UrlManager importUrlManager app.add_template_global(UrlManager.buildStaticUrl,"buildStaticUrl…

python的threading是什么意思_Python中的threading模块是什么

threading提供了一个比thread模块更高层的API来提供线程的并发性。这些线程并发运行并共享内存。下面来看threading模块的具体用法&#xff1a;一、Thread的使用&#xff0c;目标函数可以实例化一个Thread对象&#xff0c;每个Thread对象代表着一个线程&#xff0c;可以通过sta…

【学习笔记】《The Linux Command Line》第一部分 1 - 11 章(shell、进程、重定向、命令等)

《The Linux Command Line》读书笔记 文章目录《The Linux Command Line》读书笔记第一章 略第二章 Shell第三章 文件系统第四章 探究OS第五章 操作文件和目录第六章 使用命令第七章 重定向第八章 Shell第九章 快捷键第十章 权限第十一章 进程第一章 略 第二章 Shell Shell: …

md5值是什么意思_详解:PER?霍林格效率值?这个最火的高阶数据究竟是什么意思?...

北京时间6月19日我们以前看球的时候&#xff0c;不关心什么高阶数据&#xff0c;顶多就是在聊天讨论的时候用得分、篮板、助攻、抢断、盖帽等数据来说事&#xff0c;但打内心更喜欢的是一场完整的比赛中的一些能够让人肾上腺素飙升的东西。后来就有人开始罗列数据&#xff0c;把…

【学习笔记】单例模式(枚举、校验锁、volatile、反射破坏)

文章目录1. 饿汉式2. 懒汉式3. DCL 双重校验锁懒汉式4. 通过反射破坏DCL & 加锁阻止5. 通过不调用 getInstance() 来破坏单例6. 通过反射来干扰信号量&#xff0c;从而破坏单例7. 通过枚举类实现单例&#xff0c;可以防止反射破坏单例学 JUC 的时候顺便摸了下单例模式&…

go 连接服务器 并存放图片_基于 Go 语言开发在线论坛(二):通过模型类与MySQL数据库交互...

在这篇教程中&#xff0c;我们将在 MySQL 中创建一个 chitchat 数据库作为论坛项目的数据库&#xff0c;然后在 Go 项目中编写模型类与之进行交互。你可以本地安装 MySQL 数据库&#xff0c;也可以基于 Docker 容器运行(后续会介绍容器化启动方法)。1、项目初始化开始之前&…

dax 筛选 包含某个字_DAX分享9:DAX中用变量来计算动态filter context中数值

文章写起来真的也挺麻烦的。坚持坚持&#xff01;加油加油&#xff01;本次分享的需求描述如下&#xff1a;在Power BI中创建一个页面&#xff0c;页面显示一个Table和两个Slicer。其中Slicer的内容也列在Table里。Table里需要一个计算值&#xff0c;这个计算值要求对Table中的…