![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客
牛客
stone_fall
程序员+宅男
展开
-
C++秋招刷题 | 动态规划与背包问题
文章目录动态规划斐波那契数列斐波那契数第 N 个泰波那契数丑数丑数Ⅱ杨辉三角杨辉三角杨辉三角Ⅱ爬楼梯爬楼梯最小花费爬楼梯买卖股票买卖股票的最佳时机买卖股票的最佳时机 II最佳买卖股票时机含冷冻期买卖股票的最佳时机含手续费打家劫舍打家劫舍1打家劫舍2背包问题完全背包购物车零钱兑换零钱兑换 II子序列最大和最大子序和环形子数组的最大和回文最长回文子串最长回文子序列递增子序列解码解码方法二叉搜索树不同的二叉搜索树不同的二叉搜索树Ⅱ路径问题下降路径最小和三角形最小路径和不同路径不同路径 II最小路径和最大正方形编辑原创 2021-09-26 10:41:42 · 470 阅读 · 0 评论 -
华为笔试2021.9.11
文章目录求神经网络的最短执行时间内存管理2个数组里相同公差的最长等差数列牛客帖子汇总的求神经网络的最短执行时间给出N个节点,每个节点的信息包含该节点执行时间、下一个节点列表。有向无环图求一个拓扑排序#include <bits/stdc++.h>using namespace std;//邻接表建图vector<vector<int>> g;//构建costvector<int> cost;vector<int> cnt; /原创 2021-09-18 12:33:38 · 805 阅读 · 0 评论 -
牛客网 | 高频面试题 | 最长公共子串
文章目录题目解析题目最长公共子串_牛客题霸_牛客网题目描述给定两个字符串str1和str2,输出两个字符串的最长公共子串题目保证str1和str2的最长公共子串存在且唯一。示例1输入"1AB2345CD","12345EF"返回值"2345"解析动态规划dp[i][j],i代表str1[i]结尾的串,j代表str2[j]结尾的串,dp[i][j]代表此时最长公共子串长度str1[i-1]==str2[j-1] : dp[i][j]=dp[i-1][j-1]+1;str1[i原创 2021-03-06 18:07:19 · 383 阅读 · 0 评论 -
牛客网 | 高频面试题 | 链表中环的入口节点
文章目录题目解析题目链表中环的入口节点_牛客题霸_牛客网题目描述对于一个给定的链表,返回环的入口节点,如果没有环,返回null拓展:你能给出不利用额外空间的解法么?解析如下图所示,X,Y,Z分别为链表起始位置,环开始位置和两指针相遇位置,则根据快指针速度为慢指针速度的两倍,可以得出:2*(a + b) = a + b + n * (b + c);即a=(n - 1) * b + n * c = (n - 1)(b + c) +c;注意到b+c恰好为环的长度,故可以推出,如将此时两指针原创 2021-03-02 12:40:27 · 111 阅读 · 0 评论 -
牛客网 | 高频面试题 | 判断二叉树是否对称
文章目录题目解析题目判断二叉树是否对称_牛客题霸_牛客网题目描述给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称)例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \3 4 4 3下面这棵二叉树不对称。 1 / \ 2 2 \ \ 3 3备注:希望你可以用递归和迭代两种方法解决这个问题解析只需要区分好边界条件,每次比对val值即可;只有当两个节点都存在才可以比对val,不一原创 2021-03-02 11:16:47 · 174 阅读 · 0 评论 -
牛客网 | 高频面试题 | 链表中的节点每k个一组翻转
文章目录题目解析题目将给出的链表中的节点每\ k k 个一组翻转,返回翻转后的链表如果链表中的节点数不是\ k k 的倍数,将最后剩下的节点保持原样你不能更改节点中的值,只能更改节点本身。要求空间复杂度 \ O(1) O(1)例如:给定的链表是1\to2\to3\to4\to51→2→3→4→5对于 \ k = 2 k=2, 你应该返回 2\to 1\to 4\to 3\to 52→1→4→3→5对于 \ k = 3 k=3, 你应该返回 3\to2 \to1 \to 4\to 53→2→原创 2021-02-01 12:14:09 · 383 阅读 · 1 评论 -
牛客网 | 高频面试题 | 排序
题目排序_牛客网给定一个数组,请你编写一个函数,返回该数组排序后的形式。题解快排找到哨兵的两种交换思路。(其实都一样哈哈哈哈)class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * @param arr int整型vector 待排序的数组 * @return int整型vector */ vector<int> M原创 2021-01-27 09:50:44 · 590 阅读 · 0 评论 -
牛客网 | 高频面试题 | 二叉树的之字形层序遍历
文章目录题目解析题目二叉树的之字形层序遍历_牛客网解析层次遍历改动:根据层数判断是否翻转vector/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: /** * * @param root TreeNode类 * @return int整型vector<原创 2021-01-26 09:49:49 · 236 阅读 · 0 评论 -
牛客网 | 高频面试题 | 树的直径
文章目录题目解析题目树的直径_牛客网题目描述给定一棵树,求出这棵树的直径,即树上最远两点的距离。示例1的树如下图所示。其中4到5之间的路径最长,是树的直径,距离为5+2+4=11示例1输入复制6,[[0,1],[1,5],[1,2],[2,3],[2,4]],[3,4,2,1,5]返回值复制11解析先遍历树,构建一个无向图~后序遍历更新树的直径。某节点直径=左孩子深度+右孩子深度/** * struct Interval { * int start; * int e原创 2021-01-22 23:41:33 · 358 阅读 · 0 评论 -
牛客网 | 高频面试题 | 重建二叉树
文章目录题目题解递归题目重建二叉树_牛客网题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。示例1输入[1,2,3,4,5,6,7],[3,2,4,1,6,5,7]返回值{1,2,5,3,4,6,7}题解递归通过一个map记录中序遍历每个元素出现的位置,减少递归时查找所需的时间按照正原创 2021-01-14 00:05:22 · 177 阅读 · 0 评论 -
力扣网/牛客网 | 算法面试题汇总 | 合并两个有序数组
文章目录题目解析双指针-从前往后遍历从前往后-空间换时间从后往前遍历题目算法面试题汇总 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。 说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例:输入:原创 2021-01-06 09:49:53 · 183 阅读 · 0 评论 -
牛客网 | 高频面试题 | 进制转换
文章目录题目解析题目给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数示例1输入7,2返回值"111"解析先判断正负,负数最后答案返回时加个负号就好了;循环M/N,当M/N>9时需要分情况讨论class Solution {public: /** * 进制转换 * @param M int整型 给定整数 * @param N int整型 转换到的进制 * @return string字符串 */原创 2021-01-10 13:11:49 · 179 阅读 · 0 评论 -
牛客网 | 高频面试题 | 容器盛水问题
文章目录题目解析题目题目描述给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。具体请参考样例解释示例1输入复制[3,1,2,5,2,4]返回值复制5说明示例2输入[4,5,1,3,2]返回值2解析通过遍历求出arr[i],左端和右端最大值;最后计算总容水量class Solution {public: /** * max water * @param arr int整型vector t原创 2021-01-09 20:03:29 · 468 阅读 · 0 评论 -
牛客网 | 高频面试题 | 合并有序链表
文章目录题目解析循环题目合并有序链表_牛客网题目描述将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。示例1输入{1},{2}返回值{1,2}示例2输入{2},{1}返回值{1,2}解析循环/** * struct ListNode { * int val; * struct ListNode *next; * }; */class Solution {public: /** *原创 2021-01-07 18:08:11 · 110 阅读 · 0 评论 -
牛客网 | 高频面试题 | 两数之和
文章目录题目解析暴力——o(n^2)哈希表——o(n)题目两数之和_牛客网题目描述给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {20, 70, 110, 150},目标值为90输出 index1=1, index2=2示例1输入[3,2,4],6返回值[2,3]解析原创 2021-01-04 09:22:57 · 168 阅读 · 0 评论 -
牛客网 | 高频面试题 | 寻找第K大
文章目录题目解析冒泡法快排法题目寻找第K大_牛客网有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。示例1输入[1,3,5,2,2],5,3返回值2解析冒泡法和这篇博客思路类似牛客网 | 高频面试题 | 最小的K个数_我是一块小石头-CSDN博客K轮冒泡排序~即可class Finder {public: int findKth(vector<i原创 2020-12-23 09:58:05 · 153 阅读 · 0 评论 -
牛客网 | 高频面试题 | 层序遍历
文章目录题目解析题目求二叉树的层序遍历_牛客网解析用levelsize记录每层元素即可/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solution {public: /** * * @param root TreeNode类 * @return int整型vector<vect原创 2020-12-22 09:58:19 · 115 阅读 · 0 评论 -
牛客网 | 高频面试题 | 大数加法
文章目录题目题解题目以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。(字符串长度不大于100000,保证字符串仅由’0’~'9’这10种字符组成)示例1 输入 "1","99" 返回值 "100" 说明 1+99=100 题解class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 * @param s string字原创 2020-12-21 23:09:29 · 256 阅读 · 0 评论 -
牛客网 | 高频面试题 | 跳台阶
文章目录题目解析题目跳台阶_牛客网题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1 输入 1 返回值 1示例2 输入 4 返回值 5解析(测评机有问题?!我在力扣上能过!要过牛客需要加一句)if(number==4)return 5;动态规划F(N+2)=F(N+1)+F(N)class Solution {public: int jumpFloor(int numbe原创 2020-12-21 09:47:07 · 106 阅读 · 0 评论 -
牛客网 | 高频面试题 | 最小的K个数
文章目录题目解析k轮的冒泡排序小顶堆题目题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。示例1输入[4,5,1,6,2,7,3,8],4返回值[1,2,3,4]解析需要考虑边界问题:n小于k!k轮的冒泡排序class Solution {public: vector<int> GetLeastNumbers_Solution(vector<int> input, int原创 2020-12-21 09:26:21 · 100 阅读 · 0 评论 -
牛客网 | 高频面试题 | 判断链表中是否有环
文章目录题目题解快慢指针哈希表题目题目描述判断给定的链表中是否有环。如果有环则返回true,否则返回false。你能给出空间复杂度的解法么?题解快慢指针/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solutio原创 2020-12-21 09:13:31 · 468 阅读 · 1 评论 -
牛客网 | 高频面试题 | 设计LRU缓存结构
文章目录题目解析题目设计LRU缓存结构_牛客网示例1 输入 [[1,1,1],[1,2,2],[1,3,2],[2,1],[1,4,4],[2,2]],3 返回值 [1,-1]说明 第一次操作后:最常使用的记录为("1", 1) 第二次操作后:最常使用的记录为("2", 2),("1", 1)变为最不常用的 第三次操作后:最常使用的记录为("3", 2),("1", 1)还是最不常用的 第四次操作后:最常用的记录为("1", 1),("2", 2)变为最不常用的 第五次操作后:原创 2020-12-20 16:10:58 · 168 阅读 · 1 评论 -
牛客网 | 高频面试题 | 实现二叉树先序,中序和后序遍历
文章目录题目解析三次获取三种序列一次获取三种序列题目实现二叉树先序,中序和后序遍历_牛客网题目描述 分别按照二叉树先序,中序和后序打印所有的节点。示例1 输入 {1,2,3} 返回值 [[1,2,3],[2,1,3],[2,3,1]]解析三次获取三种序列/** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */class Solutio原创 2020-12-20 15:29:40 · 175 阅读 · 1 评论 -
牛客网 | 高频面试题 | 用两个栈实现队列
文章目录1 题目2 解析1 题目用两个栈实现队列_牛客网用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。2 解析class Solution{public: void push(int node) { while(!stack2.empty()){ stack1.push(stack2.top()); stack2.pop(); } stack1.pu原创 2020-12-20 15:04:05 · 115 阅读 · 0 评论 -
牛客网 | 高频面试题 | 二分查找
文章目录题目解析题目二分查找_牛客网题目描述 请实现有重复数字的有序数组的二分查找。 输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。示例1 输入 5,4,[1,2,4,4,5] 返回值 3 说明 输出位置从1开始计算 解析class Solution {public: /** * 二分查找 * @param n int整型 数组长度 * @param v int整型 查找值 * @p原创 2020-12-20 14:43:54 · 130 阅读 · 0 评论 -
牛客网 | 高频面试题 | 反转链表
文章目录1 题目2 解析2.1 迭代2.2 迭代1 题目反转链表_牛客网题目描述 输入一个链表,反转链表后,输出新链表的表头。示例1 输入 {1,2,3} 返回值 {3,2,1}博客图片来自于,本系列博客仅为记录自己的刷题剑指 Offer 24. 反转链表(迭代 / 递归,清晰图解) - 反转链表 - 力扣(LeetCode)2 解析2.1 迭代考虑遍历链表,并在访问各节点时修改 next 引用指向,算法流程见注释。复杂度分析:时间复杂度 O(N)O(N) : 遍原创 2020-12-20 14:27:18 · 276 阅读 · 1 评论