摘要:题解 双指针法 area = (j-i)*min(height[i], height[j]); class Solution { public: int maxArea(vector<int>& height) { int max_area = 0; int l = 0, r = height.si
阅读全文
摘要:题解 方法:哈希表 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> hash; for(int i = 0; i < nums.size(); i
阅读全文
摘要:题解 一道 hard 级别题。 递归 + 暴力查找前缀,超时了。 class Solution { public: vector<vector<string>> wordSquares(vector<string>& words) { // the size of a word determine
阅读全文
摘要:题解 这道题做了若干遍,推荐的做法是drown every island的做法,也就是用初始的grid矩阵同时作为记忆矩阵,那么可以省去一个visited矩阵。这里作为DFS练习,还是套用visited矩阵的做法。 class Solution { public: int numIslands(ve
阅读全文
摘要:题解 方法:DFS Search 找两个节点的最低祖宗节点,想到用深度优先搜索,先找到从根节点到达该节点的路径,然后遍历两条路径,找到最低的共同祖宗节点。可以通过测试。 然后后来发现我把问题复杂化了,忽略了题目中的条件,“平衡二叉树”,也就是说,节点是有顺序的,而我完全没有用上。 class Sol
阅读全文
摘要:题解 基于 Reverse Linked List 的同样思路,稍加修改,即可。但代码不够简洁,看上去过程也有些冗余。 class Solution { public: ListNode* reverseBetween(ListNode* head, int m, int n) { ListNode
阅读全文