摘要:
可以很轻松地想到用回溯法进行暴力枚举,但复杂度很高O(6^n),肯定会超时,所以可以类比为斐波那契数列的形式:\(f(n) = f(n-1)+f(n-2)+f(n-3)+f(n-4)+f(n-5)+f(n-6)\)。采用类似动态规划的方法(其实和斐波那契一样,并不严格是动态规划)。 回溯法暴力枚举C 阅读全文
posted @ 2020-08-27 22:40
程序员曾奈斯
阅读(143)
评论(0)
推荐(0)
摘要:
即求队列的最大值 #include <queue> class Solution { public: vector<int> maxInWindows(const vector<int>& num, unsigned int size){ vector<int> maxInWind; if(num. 阅读全文
posted @ 2020-08-27 21:54
程序员曾奈斯
阅读(132)
评论(0)
推荐(0)
摘要:
快慢指针(主要解决链表中的问题) 链表中是否包括环,进而求链表中环的入口节点 链表的中间节点(重要作用就是对链表进行归并排序) 链表的倒数第k个节点 等等 左右指针(主要解决数组(或者字符串)中的问题) 二分查找 求排序树组中和为sum的两个数 反转数组(字符串) 滑动窗口(双指针技巧的最高境界) 阅读全文
posted @ 2020-08-27 10:59
程序员曾奈斯
阅读(337)
评论(0)
推荐(0)
摘要:
二分算法的前提是排序数组,通过折半查找的方式,将找到目标值的时间复杂度缩小到O(logn) 最主要的3个问题 查找某元素即返回索引 查找某元素的左边界索引 查找某元素的右边界索引 二分算法框架: // 查找某元素即返回索引 int binarySearch(int num[], int length 阅读全文
posted @ 2020-08-27 08:58
程序员曾奈斯
阅读(204)
评论(0)
推荐(0)

浙公网安备 33010602011771号