LeetCode

· Technology

LeetCode

146. LRU Cache

一个 map 存储数据,一个 list 当 LRU 的队列,想要在 list 中快速删除对应的值可以考虑在使用个 map 记录对应 list 的 node。

74. Search a 2D Matrix

方法一:可以考虑成数组,只不过需要坐标转换成 matrix O(log(m*n))

方法二:可以从右上角开始,小于就往左,大于就往下。O(m+n)

704. Binary Search

考虑好边界,相等处理。

114. Flatten Binary Tree to Linked List

如果使用 O(n) space 比较简单,前序遍历回放即可。

O(1) space 的话,利用递归思想 flatten(left), flatten(right),最后再将 right, left 合并。

199. Binary Tree Right Side View

层序遍历,每层取最后一个元素

2462. Total Cost to Hire K Workers

使用两个堆一个维护前面的,一个维护后面的最小 cost

需要注意两个堆中元素不能重复即(2*candidates+k<=n),如果元素不足,而可以直接排序取。

1329. Sort the Matrix Diagonally

对角线特性,同一对角线的元素 i-j 都相等,可以先收集,排序,放回。

数学解法

1. Two Sum

字典运用

1017. Convert to Base -2

十进制 转 X 进制


n = a * (x)^5 + b * (x)^4 + c * (x)^3 + d * (x)^2 + e * (x)^1 + f * (x)^0

本质就是求 abcdef,可以每次求出 f(n%x),然后 n-f,n//=x 就是下一个

2007. Find Original Array From Doubled Array

首先排序,每次配对最小的元素

Comments (0)

    Send comment

    Markdown supported. Please keep comments clean.