从零开始,每天三道题
刷题顺序:数组, 字符串, 链表, 数学, 栈, 哈希, 图, 树(easy->moderate->difficult) 进阶:排序, 动态规划(最重要), 贪心, 递归, 二分, 双指针, 深度优先, 广度优先, sliding window, 回溯(做哪些题看github收藏Leetcode)
时间复杂度:T(n),T为当输入为n时,某段代码的执行次数,n为输入数据的大小或者数量,由于T(n)计算复杂我们使用时间复杂度来代替T(n) T(n) = 2 ,T(n)为常数时时间复杂度可以直接估算为1即O(1) T(n) = 2n + 2, 2在2n前相当于不存在,而2n中常数2可估算为1,即T(n)的时间复杂度为O(n) T(n) = 5(n3) + 6666*(n2) + 233, T(n)为多项式时直接保留最高项即为时间复杂度且将最高项的常数估算为1,即T(n)的时间复杂度为O(n**3)
空间复杂度:
单调队列???? (1) 二分查找法时间复杂度:O(logn) (2) python中sort()排序时间复杂度为O(nlogn),空间复杂度为O(n)