Leetcode第265场周赛解题报告

感觉最近有些退化了

2057. 值相等的最小索引

知识点:模拟
根据题意进行判断即可,史上最简单第一题

1
2
3
4
5
6
7
8
9
10
/**
* @param {number[]} nums
* @return {number}
*/
var smallestEqual = function(nums) {
for(let i = 0;i < nums.length;i++) {
if(nums[i]===i%10) return i
}
return -1
};

2058. 找出临界点之间的最小和最大距离

知识点:模拟链表
解题步骤:
1.找到所有符合条件的点
2.对其坐标进行排序,最大差即排序完第一个与最后一个之差,最小差即数组中相邻坐标之差取最小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} head
* @return {number[]}
*/
var nodesBetweenCriticalPoints = function(head) {
const pts = []
const ans = [-1,-1]
let last = head.val
head = head.next
let pos = 0
while(head) {
pos++
const now = head.val
head = head.next
if(head) {
if(last < now && head.val < now) pts.push(pos)
if(last > now && head.val > now) pts.push(pos)
}
last = now
}
if(pts.length < 2) return ans
pts.sort((a,b)=>a-b)
ans[1] = pts[pts.length - 1] - pts[0]
ans[0] = pts[1]-pts[0]
for(let i = 2;i < pts.length;i++) ans[0] = Math.min(pts[i]-pts[i-1],ans[0])
return ans
};

2059. 转化数字的最小运算数

知识点:广度优先搜索
好久没有做广度优先搜索,有一些忘了。
按照提议进行搜索即可,一般这种求"最短步骤"的都使用广度搜索即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* @param {number[]} nums
* @param {number} start
* @param {number} goal
* @return {number}
*/
var minimumOperations = function(nums, start, goal) {
let qu = [[start,0]]
let vis = []
for(let i = 0;i < 1002;i++) vis.push(false)
while(qu.length!==0) {
let [now,idx] = qu.shift()
if(now >1000 || now < 0) continue
for(let i of nums) {
if(now+i===goal || now - i === goal || (now ^ i) === goal) return idx+1
if(now+i<= 1000 && now+i >= 0 && !vis[now+i]) {
vis[now+i] = true
qu.push([now+i,idx+1])
}
if(now-i<= 1000 && now-i >= 0 && !vis[now-i]) {
vis[now-i] = true
qu.push([now-i,idx+1])
}
if(now^i<= 1000 && now^i>= 0 && !vis[now^i]) {
vis[now^i] = true
qu.push([now^i,idx+1])
}
}
}
return -1
};

2060. 同源字符串检测

不会做 改天补一下


Leetcode第265场周赛解题报告
https://tech.jasonczc.cn/2022/algorithm/leetcode/leetcode-265/
作者
CZY
发布于
2022年4月22日
许可协议