📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
楼主: ztamber
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 7月缺米的来刷题/Mock interview活动

   
全局:
今天做了6道

Screen Shot 2020-07-08 at 11.45.15.png (322.7 KB, 下载次数: 0)

Screen Shot 2020-07-08 at 11.45.15.png

评分

参与人数 3大米 +3 收起 理由
一碗栗子 + 1 给你点个赞!
rockwtr + 1 给你点个赞!
Jedreke + 1 赞一个

查看全部评分

回复

使用道具 举报

🔗
rockwtr 2020-7-9 02:10:59 | 只看该作者
全局:
Day 16, solved 6 problems.

Tips:
1. LC 438, use sliding windows;
2. LC 652, Serialize tree first;
3. LC 15, sort first, then ignore repeated numbers; for 2nd and 3rd numbers, use the algorithm "pushing from the two ends of the sorted array to find the given target sum".

Workspace 1_016.png (85.7 KB, 下载次数: 0)

Workspace 1_016.png

评分

参与人数 3大米 +3 收起 理由
sysuxcc + 1 给你点个赞!
Grace6666 + 1 给你点个赞!
一碗栗子 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 NEVERNEVERLAND 于 2020-7-9 03:45 编辑

82题:删除排序链表中的重复数字
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(!head || !head->next) return head;
        auto dummy = new ListNode(-1);
        dummy->next = head;
        ListNode* p = dummy;
        /**
        -1->1->2->4->4->5
               p  q
        */
        while(p->next) {
            auto q = p->next->next;
            while(q && p->next->val == q->val) q = q->next;
            // p和q质检只间隔了一个数字,且是不同数字,所以 p 向右移动一位
            if(p->next->next == q) p = p->next;
            //否则p的下一个节点指向q:下一个无相同数字的节点
            else p->next = q;
        }

        return dummy->next;
    }
}

84题:柱状图中最大矩形面积
  1. class Solution {
  2. public:
  3.     int largestRectangleArea(vector<int>& heights) {
  4.         int n = heights.size();
  5.         stack<int>stk; // 放左边或右边最小的元素的栈,其中最小元素是heigths数组的坐标
  6.         vector<int>left(n, 0), right(n, 0);
  7.         //从左往右遍历
  8.         for(int i = 0;i < n;++i) {
  9.             //找到第一个比heights[i]小的数
  10.             while(!stk.empty() && heights[stk.top()] >= heights[i]) stk.pop();
  11.             //如果不存在,最左为-1
  12.             if(stk.empty()) left[i] = -1;
  13.             //找到的这个位置为 栈顶元素
  14.             else left[i] = stk.top();
  15.             //将i放进栈中
  16.             stk.push(i);
  17.         }
  18.         //从右往左遍历
  19.         stk = stack<int>();
  20.         for(int i = n-1;i >= 0;--i) {
  21.             //找到第一个比heights[i]小的数
  22.             while(!stk.empty() && heights[stk.top()] >= heights[i]) stk.pop();
  23.             //如果不存在,则最右为n
  24.             if(stk.empty()) right[i] = n;
  25.             //找到的这个位置为 栈顶元素
  26.             else right[i] = stk.top();
  27.             //将i放进栈中
  28.             stk.push(i);
  29.         }
  30.         int res = 0;
  31.         for(int i = 0; i < n;++i) {
  32.             res = max(res, heights[i] * (right[i]-left[i]-1));
  33.         }
  34.         return res;
  35.     }
  36. };[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][i][i][i][i][i][i][i][i][i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  37. [i][i][i][i][i][i][i][i][i][i][i]85.最大矩形面积[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  38. [i][i][i][i][i][i][i][i][i][i][i]class Solution {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  39. [i][i][i][i][i][i][i][i][i][i][i]public:[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  40. [i][i][i][i][i][i][i][i][i][i][i]    int func(vector<int>& h) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  41. [i][i][i][i][i][i][i][i][i][i][i]        if(h.empty()) return 0;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  42. [i][i][i][i][i][i][i][i][i][i][i]        int n = h.size();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  43. [i][i][i][i][i][i][i][i][i][i][i]        vector<int> left(n, 0), right(n, 0);[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  44. [i][i][i][i][i][i][i][i][i][i][i]        stack<int>stk;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  45. [i][i][i][i][i][i][i][i][i][i][i]        for(int i = 0; i < n;++i) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  46. [i][i][i][i][i][i][i][i][i][i][i]            while(!stk.empty() && h[stk.top()] >= h[i]) stk.pop();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  47. [i][i][i][i][i][i][i][i][i][i][i]            if(stk.empty()) left[i] = -1;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  48. [i][i][i][i][i][i][i][i][i][i][i]            else left[i] = stk.top();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  49. [i][i][i][i][i][i][i][i][i][i][i]            stk.push(i);[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  50. [i][i][i][i][i][i][i][i][i][i][i]        }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  51. [i][i][i][i][i][i][i][i][i][i][i]        stk = stack<int>();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  52. [i][i][i][i][i][i][i][i][i][i][i]        for(int i = n-1; i >= 0;--i) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  53. [i][i][i][i][i][i][i][i][i][i][i]            while(!stk.empty() && h[stk.top()] >= h[i]) stk.pop();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  54. [i][i][i][i][i][i][i][i][i][i][i]            if(stk.empty()) right[i] = n;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  55. [i][i][i][i][i][i][i][i][i][i][i]            else right[i] = stk.top();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  56. [i][i][i][i][i][i][i][i][i][i][i]            stk.push(i);[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  57. [i][i][i][i][i][i][i][i][i][i][i]        }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  58. [i][i][i][i][i][i][i][i][i][i][i]        int res = 0;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  59. [i][i][i][i][i][i][i][i][i][i][i]        for(int i = 0;i<n;++i) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  60. [i][i][i][i][i][i][i][i][i][i][i]            res = max(res, h[i] * (right[i] - left[i] - 1));[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  61. [i][i][i][i][i][i][i][i][i][i][i]        }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  62. [i][i][i][i][i][i][i][i][i][i][i]        return res;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  63. [i][i][i][i][i][i][i][i][i][i][i]    }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  64. [i][i][i][i][i][i][/i][/i][/i][/i][/i][/i]
  65. [i][i][i][i][i][i][i][i][i][i][i]    int maximalRectangle(vector<vector<char>>& matrix) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  66. [i][i][i][i][i][i][i][i][i][i][i]        if(matrix.empty() || matrix[0].empty()) return 0;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  67. [i][i][i][i][i][i][i][i][i][i][i]        int m = matrix.size(), n = matrix[0].size();[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  68. [i][i][i][i][i][i][/i][/i][/i][/i][/i][/i]
  69. [i][i][i][i][i][i][i][i][i][i][i]        //考虑成柱状图中,最大面积的问题[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  70. [i][i][i][i][i][i][i][i][i][i][i]        //h表示,以第i层,往上看,的柱状图的h一维数组为多少[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  71. [i][i][i][i][i][i][i][i][i][i][i]        vector<vector<int>>h(m, vector<int>(n, 0));[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  72. [i][i][i][i][i][i][i][i][i][i][i]        for(int i = 0;i < m;++i) {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  73. [i][i][i][i][i][i][i][i][i][i][i]            for(int j = 0;j < n;++j)[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  74. [i][i][i][i][i][i][i][i][i][i][i]                if(matrix[i][j] == '1') {[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  75. [i][i][i][i][i][i][i][i][i][i][i]                    if(i == 0)[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  76. [i][i][i][i][i][i][i][i][i][i][i]                        h[i][j] = 1;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  77. [i][i][i][i][i][i][i][i][i][i][i]                    else[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  78. [i][i][i][i][i][i][i][i][i][i][i]                        h[i][j] = h[i-1][j] + 1;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  79. [i][i][i][i][i][i][i][i][i][i][i]                }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  80. [i][i][i][i][i][i][i][i][i][i][i]        }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  81. [i][i][i][i][i][i][i][i][i][i][i]        int res = 0;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  82. [i][i][i][i][i][i][i][i][i][i][i]        for(int i = 0; i < m;++i) [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  83. [i][i][i][i][i][i][i][i][i][i][i]            res = max(res, func(h[i]));[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  84. [i][i][i][i][i][i][i][i][i][i][i]        return res;[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  85. [i][i][i][i][i][i][i][i][i][i][i]    }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  86. [i][i][i][i][i][i][/i][/i][/i][/i][/i][/i]
  87. [i][i][i][i][i][i][i][i][i][i][i]};[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
  88. [i][i][i][i][i][i][/i][/i][/i][/i][/i][/i]
  89. [i][i][i][i][i][i][i][i][i][i][i]
复制代码
[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
回复

使用道具 举报

🔗
一碗栗子 2020-7-9 03:19:29 | 只看该作者
全局:
July day5

评分

参与人数 3大米 +3 收起 理由
真的不会起名字 + 1 给你点个赞!
sysuxcc + 1 给你点个赞!
Grace6666 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

本楼:
全局:
暴走模式

Screen Shot 2020-07-08 at 14.37.59.png (388.89 KB, 下载次数: 0)

Screen Shot 2020-07-08 at 14.37.59.png

评分

参与人数 1大米 +1 收起 理由
CCfordream + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
Grace6666 2020-7-9 03:58:42 | 只看该作者
全局:

Day 8
"""拓扑排序 topological sort. :
常用于在具有先序关系的任务规划中 e.g. 课程安排的合法性, 课程安排的顺序
BFS method using indegree
DFS

Screenshot from 2020-07-08 15-56-51.png (98.75 KB, 下载次数: 0)

Screenshot from 2020-07-08 15-56-51.png

评分

参与人数 3大米 +3 收起 理由
saberda + 1 给你点个赞!
真的不会起名字 + 1 给你点个赞!
sysuxcc + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
sysuxcc 2020-7-9 04:19:24 | 只看该作者
全局:
Day 5
学到的:
填补NULL value 为0的方法:用ROW_NUMBER() 创造一个Master List,最后从Master List中SELECT结果,然后用WHERE限定结果的范围
用Subquery找top n:对每一行,找比他大的数量,如果少于n比他大,说明他是top n




评分

参与人数 3大米 +3 收起 理由
Maze大猫 + 1 给你点个赞!
saberda + 1 给你点个赞!
真的不会起名字 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 真的不会起名字 于 2020-7-9 05:13 编辑

DAY 3
问 if there is no such second highest salary since there might be only one record in this table. To overcome this issue, we can take this as a temp table, the solution will be judged as 'Wrong Answer' ; because of the request is ‘If there is no second highest salary, then the query should return null.’
    - 其实就是再套一个SELECT()

        Another way to solve the 'NULL' problem is to use IFNULL funtion
    - SELECT IFNULL()

        used to specify the number of records to return https://www.w3schools.com/php/php_mysql_select_limit.asp

        from 1 - 30 (inclusive)
        LIMIT 30

        records 16 - 25 (inclusive)
        LIMIT 10 OFFSET 15;

        第N个(M=N-1)
        DESC
        LIMIT 1, OFFSET M
例题:
【Easy】 176. Second Highest Salary https://leetcode.com/problems/second-highest-salary/
【Medium 】177. Nth Highest Salary https://leetcode.com/problems/nth-highest-salary/

image.png (75.05 KB, 下载次数: 0)

image.png

评分

参与人数 3大米 +3 收起 理由
abyss + 1 给你点个赞!
Maze大猫 + 1 给你点个赞!
saberda + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
saberda 2020-7-9 05:13:31 | 只看该作者
全局:
这个活动真的好

刚刷了几道Tree的题

都是用deque进行BFS遍历那种

image.png (20.33 KB, 下载次数: 0)

image.png

评分

参与人数 3大米 +3 收起 理由
abct + 1 给你点个赞!
abyss + 1 给你点个赞!
Maze大猫 + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
Maze大猫 2020-7-9 05:42:35 | 只看该作者
全局:
7.8 打卡第二天 复习了一下昨天做的专题,感觉又有新的体会
背包总结:
1.按照最终要的target weight开辟dp array/matrix(有可能是双重, 如0和1的个数)
2.如果可以重复用coins,从前往后填表; 反之从后往前填表
3.每次either take it or not take it
Take it: refer to dp[i-coin]

Hashtable/subarray sum问题:

如果全为正数-》sliding window
否则必须prefix+hashmap

image.png (86.5 KB, 下载次数: 1)

image.png

评分

参与人数 3大米 +3 收起 理由
xiaocaicai + 1 给你点个赞!
abct + 1 给你点个赞!
abyss + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表