![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
本专栏主要记录刷LeetCode的代码,采用的语言是c++
young_Tao
这个作者很懒,什么都没留下…
展开
-
树的后序遍历递归迭代做法LeetCode145
题意给定一个二叉树,返回后序遍历递归方法只要确定好递归出口和递归操作流程即可,代码如下:void posttravel(TreeNode* root, vector<int>& res) { if(root == nullptr) return; if(root->left != nullptr) posttravel(root->left, res); if(root->right != nullptr原创 2020-09-29 19:54:07 · 285 阅读 · 0 评论 -
9.27网易互娱笔试题1,2题代码
第一题关于蛇形遍历数组的题目,AC代码如下:#include<bits/stdc++.h>using namespace std;vector<vector<int>> prepare(int n){ vector<vector<int>> data(n, vector<int>(n, 0)); int left = 0, right = n-1; int up = 0, down = n-1;原创 2020-09-28 10:00:08 · 1392 阅读 · 3 评论 -
链表两数相加的递归和迭代解法 LeetCode445
题意给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。输入(7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4)输出7 -> 8 -> 0 -> 71. 迭代正常思路的话都是从低位开始相加,计算进位carry,模拟加法过程。但这里数据表示是数字高位位于链表开始位置,所以我们很容易想到翻转链表,然后原创 2020-09-24 15:58:41 · 308 阅读 · 0 评论 -
腾讯9.6笔试
直接给出代码:/*50 52 1 25 10 11 12 13 142 0 12 49 24 6 7 8 2 */#include<bits/stdc++.h>using namespace std;vector<vector<int>> data;set<int> s;int main(){ int n , m; cin >> n >> m; for(int i = 0; i原创 2020-09-09 08:52:45 · 172 阅读 · 0 评论 -
9.4阿里笔试,第二题
题意大概是给定一棵树,任意删掉一个叶子节点到根节点路径上的结点,得到一个森林,求得到最大森林数。示例:71 21 32 42 53 63 7得到如下所示的树:删掉叶子节点4到根节点1的路径上的结点1->2->4,剩下两棵树:5和(3, 6, 7)删除其他叶子节点最大也只能获得两棵树,所以最后结果输出2。本人解法我的解法是首先定义post用来记录每一个节点的父节点,比如post[4] = 2。然后找到叶子节点存到vector yezi中,这里显然是(4, 5, 6,原创 2020-09-04 10:21:19 · 262 阅读 · 3 评论 -
c++ priority_queue用法
c++ priority_queue是优先队列,可以用来实现大根堆和小根堆。默认priority_queue是大根堆。priority_queue<int> pq; // 大根堆//等同于priority_queue<int, vector<int>, std::less<int>> pq;priority_queue的模板类型是:template <typename T, typename Container=std::vector<原创 2020-09-01 11:24:15 · 546 阅读 · 0 评论 -
树的构建和遍历
LeetCode中树的构建和遍历这里主要介绍如何给定N,构建一棵有N个节点的完全二叉树:给定N,那么完全二叉树的结点值从1~N。我们可以使用层序遍历的方式为队列中的结点新建子节点,这里要注意子节点的值是否超过了给定的N。代码#include <bits/stdc++.h>using namespace std;struct Node{ int val; Node* left; Node* right; Node(int v) {原创 2020-08-03 19:50:05 · 266 阅读 · 0 评论 -
329. 矩阵中的最长递增路径
题目描述给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2输入: nums =[[3,4,5],[3,2,6],[2,2,1]]输出: 4解释: 最长递增路径是 [3, 4, 5, 6]。注意不允许在对角线方向上移动。解原创 2020-07-26 12:12:32 · 166 阅读 · 0 评论 -
LeetCode 2.两数相加(c++)
题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7...原创 2019-09-25 10:38:04 · 463 阅读 · 0 评论 -
LeetCode 1.两数之和(c++)
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1...原创 2019-09-24 10:53:48 · 371 阅读 · 0 评论