
leetcode刷题
Albert_THU
这个作者很懒,什么都没留下…
展开
-
LeetCode:剑指 Offer II 026. 重排链表
题目:重排链表注意:截断的时候要->next=nullptr;class Solution {public: void reorderList(ListNode* head) { ListNode* head2 = getRotatedTail(head); head = mixBoth(head, head2); }private: ListNode* getRotatedTail(ListNode* head) {..原创 2021-09-29 22:08:24 · 300 阅读 · 0 评论 -
镁佳科技面试
图搜索std::vector<std::pair<int, int>>::iterator getMinCostNode(std::vector<std::pair<int, int>>& open) { auto itMinCost = open.begin(); for (auto it = open.begin(); it != open.end(); ++it) { if ((*it).second < (*itM.原创 2021-09-26 19:42:36 · 1731 阅读 · 2 评论 -
计算共多少条路(小米面试)
DP解法题目给定一个int[][] map(C++ 中为vector >)网格图,若map[i][j]为1则该点不是障碍点,否则为障碍点。另外给定int x,int y,表示网格的大小。现有一个机器人要从网格左上角走到右下角,只能走格点且只能向右或向下走。请返回机器人从(0,0)走到(x - 1,y - 1)有多少种走法。请将结果Mod 1000000007以防止溢出,并保证x和y均小于等于50。我的代码class Robot {public: int countWay原创 2021-09-26 13:37:06 · 308 阅读 · 0 评论 -
LeetCode: 剑指 Offer 33. 二叉搜索树的后序遍历序列
剑指 Offer 33. 二叉搜索树的后序遍历序列find_if的带参数使用。递归。class Solution {public: bool verifyPostorder(vector<int>& postorder) { if (postorder.empty()) { return true; } return verifyPostorder(postorder, 0, postorde原创 2021-09-25 20:34:35 · 229 阅读 · 0 评论 -
元戎面试题
// Descreption// You are given an m x n grid where each cell can have one of three values:// 0 represents an empty cell,// 1 represents a fresh apple, or// 2 represents a rotten apple.// Every day, any fresh apple that is 4-directionally adjacen.原创 2021-09-24 20:56:15 · 486 阅读 · 0 评论 -
LeetCode: 打印二叉树
低阶剑指 Offer 32 - I. 从上到下打印二叉树一层更节省空间。class Solution {public: vector<int> levelOrder(TreeNode* root) { queue<TreeNode*> my_queue; //利用队列先进先出特性,广度搜索 if(root != nullptr) my_queue.push(root); vector<int>res;原创 2021-09-21 23:03:14 · 157 阅读 · 0 评论 -
LeetCode:岛屿面积和个数问题(BFS,递归)
LeetCode:剑指 Offer II 105. 岛屿的最大面积京东自动驾驶决策规划面试题,2021年9月BFS方法会修改grid,但性能好。class Solution {public: int maxAreaOfIsland(vector<vector<int>>& grid) { int res = 0; m = grid.size(); n = grid[0].size();原创 2021-09-19 11:15:52 · 197 阅读 · 0 评论 -
LeetCode: 45. 跳跃游戏 II(DP算法)
题目:LeetCode: 45. 跳跃游戏 IIclass Solution {public: int jump(vector<int>& nums) { int len = nums.size(); if (len == 1) { return 0; } vector<int> counts(len, len); counts[len原创 2021-08-09 20:17:37 · 202 阅读 · 0 评论 -
LeetCode:1871. 跳跃游戏 VII(DP思想)
题目:LeetCode:1871. 跳跃游戏 VIIDP思想,只要某位置可以到达能到达终点的位置,则该位置可达终点。class Solution {public: bool canReach(string& s, int minJump, int maxJump) { int len = s.size(); if (s[len - 1] == '0') { // 题意不保证 positions.push_back(原创 2021-08-09 20:14:13 · 171 阅读 · 0 评论 -
LeetCode:删除排序链表中的重复元素 II(双指针法+递归法)
题目:LeetCode——删除排序链表中的重复元素 II一、双指针法:1.添头法:需要想清楚定义几个指针或节点用于保存,并新建一个节点做头。class Solution {public: // 共四个指针要用变量存储: // 一、返回值的头dummy; // 二、删除起始处的上一个节点pre // 三、删除起始处p1 // 四、删除终止处p2 ListNode* deleteDuplicates(ListNode* head) {原创 2021-08-08 15:03:02 · 232 阅读 · 0 评论 -
LeetCode:二叉树最大路径和(递归法之合理拆分)
题目:LeetCode:二叉树中的最大路径和二叉树的题目要先从问题的角度分析微观结构,即分析清楚二叉小树(如图1),然后适配大树。图1按照题意:分析图1的小树的所有情况:1.根+左+右;2.根+左;3.根+右;4.根;5.左;6.右;站在小树(微观)的角度考虑问题:分析上述6种情况, 情况2,3,4可以以链状的形式进一步向a节点的父节点传递,而情况1,5,6则没法向a的父节点传递(情况1向上传递的话会出现分叉,5,6显然...原创 2021-08-06 15:48:59 · 184 阅读 · 0 评论 -
LeetCode多数之和(双指针)
LeetCode之三数之和双指针解法class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> ans; if (nums.size() <= 2) return ans; sort(nums.begin(), nums.end()).原创 2021-08-07 16:15:00 · 104 阅读 · 0 评论