Skip to content

Latest commit

 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

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

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors