LeetCode题解寻找数组中的最大值和最小值

我们经常碰到一个问题,就是需要在一个数组中求最大值或者最小值。如果我们要同时取出最大最小值呢?

常见的做法是扫描一次数字,然后分别和当然最大值和当前最小值进行比对,因此总的比较次数是2N,

其中N为数组的长度。

那么有没有办法减少比较次数呢?

题解:```js
function quickSort(array, lowIndex, highIndex) {
if (lowIndex < highIndex) {
const pivotIndex = partition(array, lowIndex, highIndex)

quickSort(array, lowIndex, pivotIndex - 1)
quickSort(array, pivotIndex + 1, highIndex)
}
}

function partition(array, lowIndex, highIndex) {
const pivotValue = array[highIndex];
let lowerIndex = lowIndex - 1;

for (let i = lowIndex; i <= highIndex - 1; i++) {
if (array[i] < pivotValue) {
lowerIndex++;

const temp = array[lowerIndex];
array[lowerIndex] = array[i];
array[i] = temp;
}
}

const temp = array[lowerIndex + 1];
array[lowerIndex + 1] = array[highIndex];
array[highIndex] = temp;

return lowerIndex + 1;
}

let i = 0;
const randArray = [];
while(i < 20) {
randArray.push(Math.floor(Math.random() * Math.floor(100)));
i++;
}

quickSort(randArray, 0, randArray.length - 1)
console.log('Array:', randArray);
console.log('Smallest value:', randArray[0]);
console.log('Biggest value:', randArray[randArray.length - 1]);
```

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解统计城市的所有灯泡

这个是我刚毕业的时候,一个真实的面试题,这是一个开放题。题目描述:想办法,将一个城市的所有灯泡数量统计出来。题解:费米估算法1、如果某个城市常驻人口有1000万2、假设每5人居住在一套房里,每套房有灯泡5只,那么住宅灯泡共有1000万只3、假设公众场所每10人共享一只灯泡,那么共有100万只4、主要的这两者相加就得出了1100万只当然实际上这是估算的,具体应…

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4

LeetCode题解深度优先遍历和回溯的关系?

深度优先遍历的范围更大还是回溯的范围更大?为什么?题解:我的理解是:dfs是回溯思想的一种体现- 回溯:是在整个搜索空间中搜索出可行解,在搜索过程中不断剪枝回退,这是回溯的思想,这个搜索空间并没有限制于特定的数据结构。- dfs:dfs是指特定的数据结构中如图,树(特殊的图)中搜索答案,范围限制在了特定的数据结构。个人拙见。