刷题
沙diao网友
我不缺对象,我有new
展开
-
【刷题】Leetcode307(树状数组)
树状数组详解见https://blog.csdn.net/moX980/article/details/107658403 Leetcode307 题目分析:典型的树状数组 ps: 树状数组下标从1开始 lowbit(0) = 0 没有意义 而题目给出的数组是从0开始,所以要做转换 update时直接更新的是数值 不是变化量 所以要记录原始数组便于求变化量 #define lowbit(x) ((x) & (-x)) class NumArray { private: vector&原创 2020-08-08 21:32:25 · 219 阅读 · 0 评论 -
【刷题】Leetcode210(拓扑排序)
Leetcode210 题目分析:与207题类似 在入度为0的点压入队列时,将此点放在答案队列中即可 class Solution { public: vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) { vector<int> ret; vector<int> indegree(numCourses,原创 2020-08-08 12:56:11 · 162 阅读 · 0 评论 -
【刷题】Leetcode207(拓扑排序)
Leetcode207 题目分析:典型的拓扑序问题 在向队列压入入度为0的值的同时ans++,最后比较ans和numCourse是否相等即可 ans表示能够到达的点(即前置条件已经达到) PS:注意当没有给定任何前置条件时答案为true class Solution { public: //链式前向星存边 //c/c++混合 struct edge{ int to, next; }; bool canFinish(int numCourse原创 2020-08-07 21:34:00 · 212 阅读 · 0 评论 -
【练习题】Leecode1&Leecode15&Leecode18(哈希表)
Leetcode1 为了加速,可以使用哈希表存储,注意题目中说的不能用重复的数 哈希表存放的是<nums[i], i> 遍历数组,先判断后往哈希表存值 判断哈希表中是否有target-nums[i]这个数 没有 就将num[i]位置存放下标i 有 说明出答案了 答案就为 h[target - nums[i]] 和 i class Solution { public: unordered_map<int, int> h; vector<int&原创 2020-08-05 19:54:28 · 174 阅读 · 0 评论 -
【练习题】Leetcode130&Leetcode547(并查集)
Leetcode130 题目分析:注意解释里的文字!!!将被X包围的O都连通在一起,而在边界上O都与某个特定的点连通(比如0),连通操作结束后,遍历一遍表,将没有与0连通的O改为X即可 注意并查集的表示方法是一个数组,将2*2的board转化为一维的,将0位空出用作连同边界上的O 遍历board: 当board[i] [j] 为X时,跳过 不为X就为O 当O在边界处,i == 0 || i == n-1 || j == 0 || j == m - 1,将这个位置与0连通 当O不在边界处,检查此点的上左原创 2020-08-04 15:25:19 · 190 阅读 · 1 评论