自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 问答 (1)
  • 收藏
  • 关注

原创 字节跳动面试算法题目以及答案

题目来源于牛客https://www.nowcoder.com/discuss/455003?type=post&order=time&pos=&page=2&channel=-1&source_id=search_post_nctrack

2021-01-28 20:24:16 3267 1

原创 复习算法 寻找数组中重复元素这种类型题目(原地标记法)

先占座

2021-01-23 16:08:28 216

原创 2020面试题汇总(已完结)

手撕字节跳动面试时出现过的算法题1.买股票的最佳时机leetcode 原题链接:买股票的最佳时机题目:121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。代码:class Solution {public: int maxProfit(vector<int>& prices) { int minDat

2020-12-08 00:15:51 908

原创 最近想刷剑指offer的题了

先占座

2020-10-24 17:10:22 85

原创 面试中被问到一组有序序列(无序),求这组序列中的第n个小

之前面试的时候,被问到,我的回答是每次都取头部进行比较,然后再取剩下的进行比较。身为菜鸡的我思路有了,却写不出来,后面想一想,这种topk问题,不就是堆问题解决吗?唉。菜鸡的悲哀。如果是一个数列,求前n个如下#include<iostream>#include<queue>#include<vector>//求一组数中最小的n个数 using namespace std;class Solution {public: //获取数组中第n个小的数

2020-10-05 21:53:25 1274

原创 剑指offer是不是应该来场全方位的解析

之前leetcode上面,剑指offer刷了几遍,现在牛客上面重新刷题发现,牛客网上面和leetcode有些测试用例不同,导致leetcode能过,但是牛客不能过,而且牛客网上的剑指offer输入数据的很多范围都没有给出。考虑中,剑指offer全方位解析…...

2021-04-01 17:19:30 208

转载 C/C++在main函数之前和之后会做些什么

我们看看底层的汇编代码:__start:     :     init stack;     init heap;     open stdin;     open stdout;     open stderr;     :     push argv;     push argc;     call _main; (调用 main)     :     destory heap;     close stdin;     close stdout;     close s

2021-04-01 14:58:16 334

原创 剑指 Offer 13. 机器人的运动范围

最近想将剑指 Offer 13 重新刷一遍,因为之间是在leetcode上面做的题目,现在在牛客上面,我发现有些边界条件牛客没给出,但是面试基本手撕代码都是在牛客上面。题目:牛客:剑指 Offer 13. 机器人的运动范围leetcode:剑指 Offer 13. 机器人的运动范围思路:首先我们做这种题目是需要有一些必须写出的函数。边界函数isArea() 还有个记录是否访问的二维数组used以及方向增量数组dxy bool isArea(int rows, int cols,int t

2021-03-20 21:12:11 180

原创 最近在写毕业论文

晚上看看之前的代码,熟能生巧。

2021-03-02 00:26:48 159

原创 字节跳动面试题求叶子节点到叶子节点的最大距离

题目:给一个类似树的结构,每个节点都可以有多个节点(不止两个树)然后每个根节点和字节点间的路径不一样,求叶子结点到叶子结点的最大路径class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _children) {

2021-01-30 19:36:04 269

原创 一些基于归并排序,自下而上的递归题目讲解

首先我们看看归并排序题目:思路:自底向上1.MergeSort函数一直二分到只有一个元素,2.Merge函数代表合并已经两个已经排序的数组(双指针法)3.回溯过程在MergeSort函数中,回溯也就是自底向上的过程代码:class Solution {private: void Merge(vector<int> &arr, int start, int end,int mid, vector<int> &temparr) {

2021-01-29 10:32:30 488 3

原创 类的四个默认函数以及string 的自己实现

首先类的默认函数A(void); // 缺省的无参数构造函数A(const A &a); // 缺省的拷贝构造函数~A(void); // 缺省的析构函数A & operate =(const A &a); // 缺省的赋值函数在实现的字符串中我们发现1.一般的构造函数String::String(const char* str)//通用构造{ if (!str) {//为空。String a() length = 0;

2021-01-28 19:52:17 191

原创 leetcode 72. 编辑距离

题目:代码;这题其实可以用,动态规划和递归来解方法一:动态规划 (自底向上)题目中 针对三个条件插入一个字符删除一个字符替换一个字符我们可以具体化:word1删除最后一个元素word2删除最后一个元素word1或者word2修改最后一个元素和另外一个字符串元素相同确认状态: 首先 dp[i][j]代表着从word1 中前第i(包括i)个字符到word2中第j(包含j)个字符的最小操作数状态转移:当 word1【i】==word1【j】时,dp[i][j] =dp[i-1][j

2021-01-27 22:09:46 76

原创 c++匿名函数考察点

一般的函数形式以及调用形式int foo(int a,int b){ return a + b;}foo(1,2)首先是匿名函数形式[]//捕获列表 默认是按值捕获()//参数列表->int //函数返回值int c2 = [](int a, int b) -> int { return a + b; }(1,2); //为了能够复用lamba表达式 auto f= [](int a, int b) -> int { return a + b;

2021-01-27 11:52:21 283

原创 leetcode 32. 最长有效括号

题目:32. 最长有效括号链接思路:方法一:栈看到括号匹配问题首先想到栈,这题求连续匹配的括号长度,因此我们首先想到如何指定弹栈,入栈的规则。首先 需要明确栈中存的是下标,并不是元素值s.push(-1); -1为了 后面计算maxLen方便进行的, 不用担心越界问题,因为-1下标,并不会直接使用。入栈规则 :代表着等待弹出if(str[i]=='(') { s.push(i); }出栈规则:这代表着经过出栈后,1.原栈中若是空,则代表着不用更新元素max

2021-01-26 12:47:09 106

原创 leetcode 数独是否合法与解数独

题目: 36. 有效的数独链接思路代码:题目:37. 解数独 链接思路:代码:class Solution {private: //vector<vector<bool>> used(9, vector<bool>(9, false)); vector<vector<bool> > row ;// vector<vector<bool> > col ;// vector<vecto

2021-01-25 23:30:41 119

原创 面试过程中常考的图形学知识汇总

1.渲染管线GAMES101-现代计算机图形学入门-闫令琪 讲的非常好 文字参考链接:首先,我必须对于英文翻译成中文的几个词作出解释光栅化(Rasterize/rasteriztion)。这个词儿Adobe官方翻译成栅格化或者像素化。没错,就是把矢量图形转化成像素点儿的过程。我们屏幕上显示的画面都是由像素组成,而三维物体都是点线面构成的。要让点线面,变成能在屏幕上显示的像素,就需要Rasterize这个过程。就是从矢量的点线面的描述,变成像素的描述。如下图,这是一个放大了1200%的屏幕,前面是

2021-01-24 11:02:50 1076

原创 腾讯面试题,视野争夺 以及一类leetcode集合合并问题。

题目:合并区间:

2021-01-22 23:30:06 259

原创 大数相加,大数相乘

题目:大数相加链接思路:为了方便两个字符串相加,我们将短的字符串,前面补0,最重要的一点是我们需要设置进位标志ok代码:class Solution {public: string addStrings(string num1, string num2) { int ok=0; string ret; int size_num1=num1.size(); int size_num2=num2.size();

2021-01-21 20:06:11 116

原创 1293. 网格中的最短路径

题目:1293. 网格中的最短路径链接1294. 思路:这题我们可以采用bfs和dfs来做,首先我们需要明白bfs由于相当于没有回溯的过程,因此bfs是不需要遍历完所有节点就可以找到到目的的最短路径,但是由于dfs有借助于回溯的思想,因此是需要遍历完所有节点才可以知道最短路径长度。方法一bfs:思路首先,我们采用seen这个二维的vector里面存放着从起始点以相同的步数走到当前位置过程中,这个位置存放的最小的障碍obstacle数目(由于后面做了剪枝,因此只要obstacle数目>k

2021-01-19 21:29:51 1104

转载 c++中explicit用法详解

视频地址:https://www.bilibili.com/video/BV1G54y147dD

2021-01-12 19:26:57 236

转载 程序从源代码到可执行程序的过程

主要是四个阶段 预处理阶段-编译阶段-汇编阶段-链接阶段其中,编译是主要部分,其中又分为六个部分:词法分析、语法分析、语义分析、中间代码生成、目标代码生成和优化。链接中,分为静态链接和动态链接转载于:https://blog.csdn.net/zhoudonghao4381/article/details/80811906...

2021-01-12 15:16:27 185

原创 148. 排序链表

题目:思路:首先这题是归并排序的思想,归并排序代码:void Merge(vector<int> &arr, int start, int end,int mid, vector<int> &temparr){ int i_start = start; int i_end = mid; int j_start = mid + 1; int j_end = end; int length = 0; //合并两个有序序列(为什么就有序了) 思考

2021-01-06 17:12:48 79 2

原创 校招秋招求职面试超高频智力题-赛马问题

题目思路:首先将25匹马跑五组得到如下矩阵其中A1>A2>A3>A4>A5 (B,C,D,E也是同理的)最后将每个第一名 A1,B1,C1,D1,E1跑一次可以确定第一名现在假设A1是第一名如何确定第二名呢? 我们发现假设A是第一名 那么A2,B2是潜在的第二名当B1是第二名时 A2,B2,C1 可能时第三名当A2是第二名时 A3,B1可能时第三名我们发现其实 第二名 第三名 在B1.A2 C1,B2,A3这5匹马中,所以可以再跑一场确定2,3,名综上所述

2020-12-29 09:29:51 374

转载 彻底理解虚函数指针,虚函数表,虚函数

来源于https://blog.csdn.net/lingfengtengfei/article/details/12345809

2020-12-28 15:04:41 95

原创 游戏中寻路算法

游戏中寻路算法题目:求以某一起始点到另外所有结点的最短路径dist思路:首先对应的二维矩阵是其次我们需要明白 迪杰斯特拉(Dijkstra)是针对连通图来说的。代码最重要的两个变量 vector<int> visit(n,0);//0代表未访问节点,1代表访问节点 vector<int> dist(n, 0);//后面会根据start进行初始化,这里初始化值是任何值都没关系主要思路是,首先将start节点先拎出来,然后每次将最小的dist的没有访问

2020-12-25 20:52:36 298 2

原创 c++面试一些基本问题作答(完结)

1.C++相关2.虚函数的原理?虚表存放的位置?构造函数能不能是虚函数?虚函数原理。含有虚函数的类有个虚表指针,虚指针指向虚函数表。虚函数表中存放着虚函数地址。派生类继承了父类的虚函数表,如果派生类虚函数会将自己的虚函数地址替换到虚函数表中。C++中虚函数表位于只读数据段(.rodata),也就是C++内存模型中的常量区;而虚函数则位于代码段(.text),也就是++内存模型中的代码区。构造函数不能是虚函数虚函数对应一个虚指针,虚指针其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过 虚

2020-12-23 11:04:40 152

原创 啊哈!算法 案例用c++实现

第二章题目:思路:题目其实已经给出思路了代码#include<iostream>#include<vector>#include<queue>using namespace std;class Solution {public: vector<int> deCode(vector<int>& nums) { vector<int> ret_v; queue<int> qu; f

2020-12-22 22:42:15 917 1

原创 Leetcode 31 下一个排列

题目:31. 下一个排列31. 下一个排列实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,5]输出:[1,5,1]示例 4:输入:nums = [1]输出:

2020-12-22 14:33:06 107

原创 网易游戏面经汇总(待更)

算法:如何将字符串转换为整数?2^31*2在计算机中如何表示?会输出什么?正数和负数在计算机中如何存储?有什么好处?计算机图形学相关:渲染管线介绍一下?光照模型、实现?PBR有了解过吗?顶点着色器中都可以做哪些事情?视图矩阵什么样子的?为什么是那样的形式?反走样原理是什么?如何实现的OpenGL渲染需要经过哪些状态测试?各自的机制为什么会有锯齿?抗锯齿怎么弄?C++相关:重载和覆盖的区别以及原理(为什么程序可以通过参数个数、类型的不同区分出 不同的重载函数)?动态绑定机制?c...

2020-12-21 09:44:12 632

原创 给定一个有序数组,请算出平方后的结果可能的个数。

思路:双指针,left=0 right=number.size()-1一定要注意while循环中条件是 left<=right 因为有可能如【-1,2,3】最后此时left=0 right=0; 这次我们需要加上当然我们也可以 while(left <right) 只不过需要在后面单独拎出来判断一次,加上以下代码就可以了while(left <right) { res++;.......}if(left==right){res++;}

2020-12-09 10:12:56 206

原创 找出不重复的元素个数(先递增然后递减)

7.找出不重复的元素个数题目:一个数据先递增再递减,找出数组不重复的个数。不能使用额外空间,复杂度o(n)思路:方法1:首先用快排进行1排序,然后中不同方法二:找到最大的位置然后,从最大的位置向两边移动(双指针)谁大谁移动 左右指针相等 那么同时移动代码:class Solution {private: int _maximumSwap(vector<int> &numbers) { //首先找到最大值

2020-12-09 09:24:52 2040

原创 55. 跳跃游戏

跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。解法法一.

2020-12-07 22:38:18 41

转载 1000瓶药有1瓶有毒,需要多少只小白鼠才能试验找出

视频来源地址:https://www.bilibili.com/video/BV15b411N7XK?from=search&seid=7198844245222384579解决方案1)我们将1000瓶液体编号1~1000,然后将编号转化为10位二进制,如1号就是0000000001;2)将十只小白鼠编号1~10;3)将液体的二进制编号上为1的位数给对应的小白鼠喝,如液体编号为 1111100000,那就是15号小白鼠不喝这瓶液体,610号小白鼠喝这瓶液体;4)一星期后观察小白鼠的死亡情

2020-12-07 16:12:33 1331

原创 leetcode打家劫舍1,2,3

题目:198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。示例 2

2020-12-01 23:32:34 78

原创 403. 青蛙过河

青蛙过河一只青蛙想要过河。 假定河流被等分为 x 个单元格,并且在每一个单元格内都有可能放有一石子(也有可能没有)。 青蛙可以跳上石头,但是不可以跳入水中。给定石子的位置列表(用单元格序号升序表示), 请判定青蛙能否成功过河(即能否在最后一步跳至最后一个石子上)。 开始时, 青蛙默认已站在第一个石子上,并可以假定它第一步只能跳跃一个单位(即只能从单元格1跳至单元格2)。如果青蛙上一步跳跃了 k 个单位,那么它接下来的跳跃距离只能选择为 k - 1、k 或 k + 1个单位。 另请注意,青蛙只能向前.

2020-11-28 20:57:16 235

转载 C++中函数调用时的三种参数传递方式详解

原文地址:https://blog.csdn.net/ccblogger/article/details/77752659?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.co

2020-11-28 08:37:31 357

原创 大端模式 小端模式

通过一句话记住大端序和小端序的区别在软件开发过程中,软件开发人员都知道大端序和小端序的概念,但是在真正使用的时候,傻傻分不清两种到底是怎么存储。首先还是先看下基本概念:1、大端模式:高字节保存在内存的低地址2、小端模式:高字节保存在内存的高地址我比较喜欢这么记忆小端模式:低地址在小端大端模式:低地址在大端例子:举例:var = 0x11223344,对于这个变量的最高字节为0x11,最低字节为0x44(1)大端模式存储(存储地址为16位)地址 数

2020-11-27 23:29:30 132

转载 c++虚函数实现机制及内存模型

文章转自 https://blog.csdn.net/qq_28114615/article/details/98041319?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.contro

2020-11-27 21:22:46 117

原创 面试题有基础算法题要求都是手写一些数据结构,例如栈,队列,双端队列,堆并且采用例如数组,列表这种底层结构构造

米哈游面试算法题:手写双端队列(数组实现)双端队列含义实现:

2020-11-24 16:44:14 245

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除