LeetCode题解1122. 数组的相对排序

给你两个数组,arr1 和 arr2,

arr2 中的元素各不相同

arr2 中的每个元素都出现在 arr1 中

对 arr1 中的元素进行排序,使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。

 

示例:

输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

输出:[2,2,2,1,4,3,3,9,6,7,19]

 

提示:

arr1.length, arr2.length <= 1000

0 <= arr1[i], arr2[i] <= 1000

arr2 中的元素 arr2[i] 各不相同

arr2 中的每个元素 arr2[i] 都出现在 arr1 中

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/relative-sort-array

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:```
resolve(arr1, arr2) {
let curIndex = 0;
for (const num of arr2) {
for (let i = curIndex; i < arr1.length; i++) {
const curNum = arr1[i];
if (curNum === num) {
const temp = arr1[i];
arr1[i] = arr1[curIndex];
arr1[curIndex] = temp;
curIndex += 1;
}
}
}
for (let i = arr1.length - 1; i > curIndex; i--) {
let flag = false;
for (let j = curIndex; j < i; j++) {
if (arr1[j] > arr1[j + 1]) {
const temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
flag = true;
}
}
if (!flag) {
break;
}
}
return arr1;
}
```

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

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

LeetCode题解黑白圆盘

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

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

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

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

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

LeetCode题解盲人买袜子。

他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?题解:暴力破解, 把袜子都拆开 一人一只 哈哈