文件名称:leetcode和oj-leetcode:leetcode
文件大小:1.9MB
文件格式:ZIP
更新时间:2024-07-19 20:38:10
系统开源
leetcode 和 oj leetcode [TOC] 1. Two sum 使用 hash 表来记录已经存储的数据,新来的数据与 target 做差,判断是否在 hash 表中存在 3. 无重复字符的最长子串 这道题目可以使用 128 位的数组来表示所有字符。开始每个字符都初始化为-1 然后这道题目其实是维护一个滑动窗口。滑动窗口左边界是 left,右边界是当前访问的数组下标。 left 的更新策略是: left = max(left, dp[s[i]]); 也就是如果一直没有被访问过重复字符,那么 left 一直维持在-1;窗口的长度就是当前下标减去 left. 然后如果出现了重复字符,那么 left 就立刻更新到之前出现的位置。 注意 dp[]数组也在不断更新,保存的是上一次出现的位置,用于如果出现了重复,可以把滑动窗口左边界拉过来。 4. 寻找两个有序数组的中位数 这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为 O(log (m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。但是这道题被定义为 Hard 也是有其原因的,难就难在要在两个未合