任我行
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 壁纸

LeetCode 热题 100-哈希表

LeetCode 热题 100-哈希表两数之和哈希表使用哈希表,可以将寻找 target - x 的时间复杂度降低到从 O(N) 降低到 O(1)。 创建一个哈希表,对于每一个 x,首先查询哈希表中是否存在 target - x,然后将 x 插入到哈希表中,即可保证不会让 x 和自己匹配。 1234567891011121314class Solution {public: vec
2024-11-18
算法笔记 > 哈希表
#leetcode-hot100

07.04 第 088 ~ 100 题(第 13 ~ 16 天)

07.04 第 088 ~ 100 题(第 13 ~ 16 天)买股票的最佳时机分析初步考虑每次结算出在第i天买入在第j天售出所能获得的利润,且j> i,维护一个变量记录最大值。但是这样的时间复杂度是O(n),无法通过所有的测试用例,因此进行优化。 假设股票在第i天售出,那么需要知道前i-1天中股票价格的最小值,用一个变量维护,因此只需一次遍历即可。 12345678910111213141
2024-11-14
算法笔记 > 面试篇
#leetcode-notes

07.03 第 075 ~ 087 题(第 09 ~ 12 天)

07.03 第 075 ~ 087 题(第 09 ~ 12 天)二叉树的完全性检验分析如果当前节点不为空,且左子树为空,右子树不为空,则返回false。否则递归判断左右子树是否是完全二叉树。这种思路是错误的,因为如果左子树是完全二叉树,但是没有右子树,而右子树不为空,这棵树也不是完全二叉树。 使用广度优先搜索,即层序遍历实现。用一个bool变量标记是否出现过空节点,一旦出现过空节点,再出现非空节点
2024-11-10
算法笔记 > 面试篇
#leetcode-notes

07.02 第 073 ~ 074 题( 第 05 ~ 08 天)

07.02 第 073 ~ 074 题( 第 05 ~ 08 天)路径总和分析深度优先遍历: 如果当前节点为空,返回false。 否则更新targetSum -= root->val; 当前节点是叶子节点,如果targetSum == 0,返回true,否则返回false。 递归左子树或右子树。 1234567891011121314151617181920212223242526272
2024-11-06
算法笔记 > 面试篇
#leetcode-notes

07.01 第 051 ~ 072 题(第 01 ~ 04 天)

07.01 第 051 ~ 072 题(第 01 ~ 04 天)无重复字符的最长子串分析使用哈希表+滑动窗口。如果当前字符没有在哈希表中出现过,就将其加入哈希表,右指针继续向右,right-left+1是当前长度,不断更新最大长度;否则不断向右滑动左窗口,直至遇到哈希表内没有当前元素,再把当前元素加入哈希表。 12345678910111213141516171819202122232425262
2024-11-01
算法笔记 > 面试篇
#leetcode-notes

06.04 第 038 ~ 050 题(第 13 ~ 16 天)

06.04 第 038 ~ 050 题(第 13 ~ 16 天)两数相加分析1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950/** * Definition for singly-linked list. * struct ListNode { *
2024-10-28
算法笔记 > 面试篇
#leetcode-notes

0603练习题目

06.03 第 026 ~ 037 题(第 09 ~ 12 天)反转链表迭代使用两个指针 cur 和 pre 进行迭代。pre 指向 cur 前一个节点位置。初始时,pre 指向 None,cur 指向 head。不断让cur->next指向pre,pre右移,cur右移。 123456789101112131415161718192021222324/** * Definition for
2024-10-23
算法笔记 > 面试篇
#leetcode-notes

0602练习题目

06.02第 013 ~ 025 题(第 05 ~ 08 天)搜索旋转排序数组分析把数组看成左右两部分,左边部分一定比右半部分值大。 如果nums[mid] == target,直接返回下标。 如果nums[mid] >= nums[left],说明mid在左半部分,此时: nums[mid] > target && target >= nums[left],t
2024-10-18
算法笔记 > 面试篇
#leetcode-notes

0601练习题目

06.01第 001 ~ 012 题(第 01 ~ 04 天)螺旋矩阵分析对矩阵进行模拟,每次更新边界位置,初始时向右走,当i == right,开始调整方向向下走,此时对i进行枚举,当i == down,调整方向向左走,枚举j,当i == left,调整方向向上走,对i进行枚举,当i == up,再次向右走。 1234567891011121314151617181920212223242526
2024-10-14
算法笔记 > 面试篇
#leetcode-notes

0504区间DP和树形DP

05.04 区间DP和树形DP 区间动态规划:线性 DP 的一种,简称为「区间 DP」。以「区间长度」划分阶段,以两个坐标(区间的左、右端点)作为状态的维度。一个状态通常由被它包含且比它更小的区间状态转移而来。 区间 DP 的主要思想就是:先在小区间内得到最优解,再利用小区间的最优解合并,从而得到大区间的最优解,最终得到整个区间的最优解。 根据小区间向大区间转移情况的不同,常见的区间 DP 问题可
2024-10-05
算法笔记 > 动态规划
#leetcode-notes
1…34567…10

搜索

Hexo Fluid
总访问量 次 总访客数 人