摘要:
因为 n, m 都挺小的,只有 300,所以暴力一点也没什么问题 比如直接查找,或者按照行的开头元素进行二分搜索来缩小一些范围 class Solution { public: bool searchMatrix(vector<vector<int>>& a, int x) { int n = a. 阅读全文
摘要:
这种最小以及小的最优在更大问题中也最优的情况一般都是考虑动态规划 1 <= n <= 10^4,注意到 n 很小, nlogn 能过,所以直接做就可以 class Solution { public: int numSquares(int n) { vector<int> dp(n + 1, INT 阅读全文
摘要:
双指针 原地操作基本就是用交换了 l 指针维护已处理好的序列的末尾(l 之前的就是非零的数字序列) r 指针表示当前正在处理的元素 如果 r 对应的元素非零,那么和 l 指向的位置交换,为了减少交换的次数,如果 l == r,那么自然是不用交换的 class Solution { public: v 阅读全文