如何用JavaScript征服Leetcode?
- 算法步骤
- 代码如下
今天带来的其实不是Leetcode的题目,是一个比较有趣的算法,洗牌算法,其实就是随机置乱。
产生一个随机数作为交换的位置,然后当前遍历的位置进行交换。
算法步骤
- 1.建立一个数组大小为n的数组arr,分别存放1到n的数值;
- 2.生成一个从0到n-1的整数,parseInt(),这个函数很神奇的,前面有篇博客阐述过,随机数记为x
- 3.将arr的当前遍历元素arr[i]和arr[x]交换位置
- 4.遍历重复2.3即可
代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
arr=[]
for(let i=0;i<10;i++){
arr.push(i)
}
console.log(arr);
shuffle(arr)
function shuffle(arr){
let t
for (let i = arr.length-1; i >= 0; i--){
let randomNum=parseInt(Math.random()*(i+1))
t=arr[randomNum]
arr[randomNum]=arr[i]
arr[i]=t
}
console.log(arr);
}
</script>
</body>
</html>