Skip to content

Practice3DVision/LeetCodeEveryDay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 

Repository files navigation

Leetcode Everyday!

宝剑锋从磨砺出,梅花香自苦寒来!


Day 1.

1. 感染二叉树需要的总时间

  • 深度优先搜索将二叉树转换为无序图(用于确定一个节点邻近节点的关系)
  • 广度优先搜索计算最长距离
std::unordered_map<int, std::vector<int>> table;
  std::function<void(TreeNode*)> dfs = [&](TreeNode* parent) {
      for (auto& child : std::vector<TreeNode*>{parent->left, parent->right})}{
  
          if(child == nullptr)
              continue;
                
          table[parent->val].push_back(child->val);
          table[child->val].push_back(parent->val);

          dfs(child);
      }
  };

  dfs(root);

Day 2.

1. 总行驶距离

Day 3.

1. 快照数组

auto x = std::upper_bound(snaps_[index].begin(), snaps_[index].end(), std::make_pair(snap_id + 1, -1));
return x == snaps_[index].begin() ? 0 : std::prev(x)->second;

Day 4.

1. 查询网格图中每一列的宽度

Day 5.

1. 负二进制转换

Day 6.

1. 将矩阵按对角线排序

Day 7.

1. 满足目标工作时长的员工数目

Day 8.

1. 雇佣 K 位工人的总代价

Day 9.

1. 雇佣 K 名工人的最低成本

Day 10.

1. 去掉最低工资和最高工资后的工资平均值

  template<class Input, class T, class BinaryOp>
  T accumulate(Input first, Input last, T init, BinaryOp op);

Day 11.

1. 规划兼职工作

动态规划+二分查找(std::upper_bound)

Day 12.

1. 拆炸弹

Day 13.

1. 摘樱桃

Day 14.

1. 二分查找

Day 15.

1. 移除元素

Day 16.

1. 有序数组的平方

Day 17.

1. 长度最小的子数组

Day 18.

1. 螺旋矩阵II

Day 19.

1. 移除链表元素

Day 20.

1. 设计链表

Day 21.

1. 反转链表

Day 22.

1. 两两交换链表中的节点

Day 23.

1. 删除链表的倒数第 N 个结点
双指针解决长度未知问题:

  1. 先让快指针走n
  2. 同时让快指针慢指针运动,当快指针走到末尾时,满指针所指位置即为要求的节点

Day 24.

1. 链表相交

Day 25.

1. 环形链表 II

Day 26.

1. 有效的字母异位词

Day 27.

1. 两个数组的交集

Day 28.

1. 快乐数

Day 29.

1. 两数之和
2. 四数相加 II

Day 30.

1. 赎金信
2. 三数之和
利用排序进行去重。

Day 31.

1. 四数之和
2. 反转字符串

Day 32.

1. 反转字符串 II
2. 反转字符串中的单词
3. 找出字符串中第一个匹配项的下标
4. 重复的子字符串

Day 33.

1. 用栈实现队列
2. 用队列实现栈
3. 有效的括号

Day 34.

1. 删除字符串中的所有相邻重复项2. 逆波兰表达式求值

Day 35.

1. 滑动窗口最大值
2. 前K个高频元素

Day 36.

1. 二叉树的前序遍历
2. 二叉树的后序遍历3. 二叉树的中序遍历

Day 37.

1. 二叉树的前序遍历2. 二叉树的中序遍历3. 二叉树的后序遍历

Day 38.

1. 二叉树的层序遍历2. 二叉树的层序遍历 II

Day 39.

1. 二叉树的右视图2. 二叉树的层平均值

Day 40.

1. N 叉树的层序遍历2. 在每个树行中找最大值

Day 41.

1. 填充每个节点的下一个右侧节点指针2. 填充每个节点的下一个右侧节点指针 II

Day 42.

1. 二叉树的最大深度2. 二叉树的最小深度

Day 43.

1. 翻转二叉树2. 对称二叉树

Day 44.

1. 二叉树的最大深度2. 二叉树的最小深度

Day 45.

1. 完全二叉树的节点个数

Day 46.

1. 二叉树的所有路径

Day 47.

1. 左叶子之和

About

LeetCode刷题笔记。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published