Bob__yuan的博客

私信 关注
Bob__yuan
码龄3年

表面上看是菜鸡程序员,实际是一个魔方博主,可还行

  • 1,230,763
    被访问量
  • 230
    原创文章
  • 15,953
    作者排名
  • 217
    粉丝数量
  • 毕业院校 浙江大学
  • 于 2018-07-16 加入CSDN
获得成就
  • 获得283次点赞
  • 内容获得86次评论
  • 获得657次收藏
荣誉勋章
兴趣领域
  • #后端
    #C/C++
TA的专栏
  • Unreal Engine
    23篇
  • 面试机试题、算法、数据结构
  • 面试题
    44篇
  • 常见算法
    13篇
  • 数据结构
    9篇
  • 编程题
    58篇
  • 编程语言
  • C++
    31篇
  • Lua
    10篇
  • python
    2篇
  • Visual Studio
    2篇
  • 论文、简历书写
    2篇
  • 魔方
    3篇
  • 琴谱
    1篇
  • LeetCode Algorithm
    71篇
  • VCG库
    2篇
  • Mesh
    3篇
  • PTA
    11篇
  • 三维重建
    1篇
  • Geometry
    4篇
  • Andriod
    2篇
  • 剑指offer
    4篇
  • Abaqus
    1篇
  • FEA
    1篇
  • Qt
    1篇
  • VTK
    1篇
  • OpenGL
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

【UE4】动画通知

   本文总结 UE4 中动画通知 AnimNotify(动画通知状态 AnimNotifyState)的源码分析以及问题总结。一、动画通知简介   动画通知是 UE4 中主要配置在动画(Animation)或者动画蒙太奇(AnimMontage)上的通知,通过动画的运行驱动通知的触发。通知分为两种:AnimNotify(动画通知) – 没有时长;只有 Notify 方法;详见 AnimNotify.hAnimNotifyState(动画通知状态) – 有时长(TotalDuration);有 N
原创
40阅读
0评论
0点赞
发布博客于 6 天前

【UE4】TriggerAnimNotifies 递归调用问题

  AnimNotifyState 的 Trigger 核心是三个数组:ActiveAnimNotifyState: 记录上一帧在 Active 的 NotifyState(简称 Act)NotifyQueue.AnimNotifies: 记录这一帧 Montage 上所有 Notify(包括 Notify 和 NotifyState)NewActiveAnimNotifyState(局部变量): 通过 1 和 2 计算出有哪些是这一帧新的 NotifyState(简称 NewAct)Notify
原创
104阅读
0评论
1点赞
发布博客于 2 月前

【UE4】在 Dedicate Server 上刷新一帧骨骼 Mesh Pose

问题描述  在 UE4 中,为了性能优化,常会在 Dedicate Server 上把 Mesh 的 Tick 关掉(即 OnlyTickMontagesWhenNotRendered),使其在在服务器上保持 TPose,只在客户端上实时刷新 Mesh Pose(即 AlwaysTickPoseAndRefreshBones)。if (GetNetMode() == NM_DedicatedServer && GetMesh()){ GetMesh()->VisibilityB
原创
82阅读
0评论
1点赞
发布博客于 2 月前

【UE4】AnimNotify 相关源码分析

一、问题描述  UE4 中的动画通知分为两种:AnimNotifyAnimNotifyState  第一种是只有 Begin 的触发一次的 Notify,第二种是有 Begin 和 End 以及 Tick 的有持续时间(在动画条上有长度的 Notify)。本文讨论内容只关于 AnimNotifyState。  对于 AnimNotifyState,UE4 官方文档中说明:可以保证从 Notify Begin Event 开始可以保证从 Notify EndEvent 结束可以保证 No
原创
269阅读
0评论
1点赞
发布博客于 4 月前

【UE4】Enable / Disable RootMotion at RunTime in Montage

MeshComp->GetAnimInstance()->SetRootMotionMode(ERootMotionMode::IgnoreRootMotion);
原创
218阅读
0评论
0点赞
发布博客于 4 月前

【UE4】Slomo 顿帧

fsd
原创
266阅读
0评论
1点赞
发布博客于 4 月前

【UE4】Github 上访问 Unreal Engine 的源码

111
原创
318阅读
0评论
0点赞
发布博客于 6 月前

【UE4】LineTrace 功能详解

LineTraceSingleGetWorld()->LineTraceSingleByObjectTypeGetWorld()->LineTraceSingleByChannelUKismetSystemLibrary::LineTraceSingleUKismetSystemLibrary::LineTraceSingleForObjects
原创
992阅读
0评论
0点赞
发布博客于 7 月前

【UE4】Camera Shake 震屏

  本文使用的引擎版本是 UE 4.25.1,使用 “Third Person” 模板。一、创建 Camera Shake  步骤如下:在 ThirdPersonBP 的 Blueprints 文件夹中创建一个 “Blueprint Class”,选择 Parent Class 为 “CameraShake”,命名为 “OnCamShake”,里边的参数设置如下,其中"Oscillation Duartion" 是震动时间,Pitch、Yaw、Roll分别对应摄像机绕着自己的 Y、Z、X 轴的
原创
1210阅读
0评论
1点赞
发布博客于 9 月前

【UE4】Unlua luaL_dostring、luaL_loadstring

  luaL_loadstring 之后调用 lua_pcall 会出错。  luaL_dostring 的定义如下:#define luaL_dostring(L, s) \ (luaL_loadstring(L, s) || lua_pcall(L, 0, LUA_MULTRET, 0))结论  用 luaL_dostring。。
原创
341阅读
0评论
0点赞
发布博客于 9 月前

【UE4】径向模糊 RadialBlur(PC and Mobile)

效果示例  图片为百度上找的 径向模糊 的示例图(网游中常见的轻功,向前飞的时候,屏幕会变得模糊,给玩家一种 冲刺加速 的感觉,这种模糊是从屏幕中心,沿着一圈圈同心圆向外传递的,这就是径向模糊 Rdial Blur)。实现方法  首先需要在 UE4 中创建一个 Material(UE4 中的材质都是创建一个 Material,然后用的时候用这个材质创建 Instance,这样调整 Instance 不会修改原始 Material吗,就像类的实例化,然后分别调整每个实例。)。  创建 Materi
原创
1157阅读
2评论
1点赞
发布博客于 9 月前

【UE4】Change Image in UMG in game

  
原创
181阅读
0评论
0点赞
发布博客于 10 月前

【UE4】AI NPC 重生后不动(Controller无法possess)

  
原创
437阅读
1评论
0点赞
发布博客于 10 月前

【UE4】Virtual Joystick 用蓝图解决两个手指触屏冲突问题

  在 UE4 中制作手机游戏(比如第三人称3D游戏,就像吃鸡手游)时,会需要对角色进行移动和视角的控制。UE4 中提供了默认的 Virtual Joystick 也就是虚拟摇杆。在引擎中 “Edit” 下的 “Project Settings…” 中 “Input” 里的 “Default Touch Interface” 中可以选择(也可以直接搜 “Touch”)。  默认情况,引擎文件夹是不显示的,也没法搜到引擎文件中的内容。需要在 “View Options” 中将 “Show Engine Co
原创
594阅读
0评论
0点赞
发布博客于 10 月前

【UE4】移动端 Virtual Joystick 和 UMG button 冲突

问题说明  joystick摇杆和UMG button在移动端冲突的问题:按住摇杆时,UMG button按了不起作用。解决办法  UMG button的Is Focusable属性设置为 false。  参考:[UE4]移动端Joystick和UMG button冲突的问题...
原创
398阅读
0评论
1点赞
发布博客于 10 月前

【UE4】快捷键

UE4引擎中的快捷键:Ctrl + B在 Content Browser 中所搜一个文件的时候,Ctrl + W
原创
703阅读
0评论
2点赞
发布博客于 10 月前

【UE4】Aim Offset

实现效果参考资料文档 - Unreal 官方文档 - Aim Offset(对配置没有什么用,只是介绍)视频 - Youtube 教学 - UE4 TPS Aim OffSet Setup Part 6(我是跟着这个视频做的)文档 - 使用 Animation Starter Pack 进行配置(这个文档应该就是上边视频的总结版)...
原创
169阅读
0评论
1点赞
发布博客于 10 月前

【UE4】Android Preview 模式下,材质显示异常

Preview Rendering Level  在 Unreal 中,想要设计手机玩的游戏,可以修改 Render 模式来查看。  上图中 “Preview Rendering Level” 中三个选项分别对应 电脑、安卓机、ios。打开安卓的 preview 之后,途中红框的安卓小人就变成了黄色底,再次点击可以关闭。Android Preview 材质显示异常  实际使用过程中,会碰到原来效果没有问题,但是切换到 Android 就显示出问题的情况,如下两图所示。上图是正常效果,下图是切换之后
原创
518阅读
0评论
0点赞
发布博客于 10 月前

【UE4】导入 .uasset 文件,迁移资源

一、项目资源迁移  在 Unreal 中导入 .uasset 文件,经常会出错。因为 Unreal 的文件连接关系很复杂,在项目与项目之间移动资源,直接复制粘贴是肯定不行的,要在引擎中打开原有项目,选择要移动的资源,比如是一个关卡(level)。应该右键需要移动的关卡文件,选择 “Asset Actions” 中的 “Migrate”,即 “迁移”。  这时候会弹出一个问你当前项目中没有保存的文件需不需要保存,保存之后,就会弹出与选中的 level 有关系的所有文件,以及对应的组织关系。然后在选择想要
原创
4495阅读
3评论
0点赞
发布博客于 10 月前

【UE4】创建首个关卡

UE4 构建首个关卡  本文利用 UE4 中的 “Third Person” 模板,从空项目创建出一个小关卡出来。最终效果:参考资料:虚幻引擎入门 第一个小时具体步骤1. 创建 Third Person 游戏项目  在 Epic Games Launcher 中启动 UE4 引擎,创建新项目,选择 “Games” Category,“Third Person” Template。Project Settings 的设置方式可以参考:Project Settings。2. 创建level
原创
428阅读
0评论
0点赞
发布博客于 10 月前

【UE4】添加一个 AI NPC

1
原创
531阅读
0评论
1点赞
发布博客于 10 月前

【UE4】UAbilityTask_Repeat 潘森E技能

结构ModuleGameplayAbilitiesHeader/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Public/Abilities/Tasks/AbilityTask_Repeat.hInclude#include “Abilities/Tasks/AbilityTask_Repeat.h”SyntaxUCLASS () class UAbilityTask_R
原创
240阅读
0评论
0点赞
发布博客于 10 月前

CSDN markdown 格式博文,插入图片空行太大

  CSDN markdown 格式插入图片,可以点 “图片” 按钮,直接上传,但是上传之后经常出现图片和文字空行太大的问题,如下图所示:  使用 <div align=center><img src="图片地址#pic_center" width="80%"></div>的方式,可以将图片既居中,又紧凑的插入,如下图所示:  一定要有 "#pic_center"。...
原创
185阅读
0评论
0点赞
发布博客于 10 月前

Visual Studio 输出窗口有乱码

  VS中,output 窗口出现乱码(黑色方片,一堆问号),查看网上各种教程都不好用,修改时区,编码方式,修改 vs 为英文,都不行。  最后发现,启动 Visual Studio Installer,选择 修改,然后选择上方 语言包,英文应该时 Language packs,然后把中文取消选择,只留一个英文语言包,重新启动 VS 即可。...
原创
1308阅读
0评论
0点赞
发布博客于 10 月前

Visual Studio 禁用 IntelliSense

  当解决方案包含了很多个工程,越来越大之后,VS的智能提示(IntelliSense)经常会导致VS本身卡死。而且,还会在代码中经常看到一堆的红波浪线。可以把他禁了。  步骤:  “Tools” --> “Options…” --> “Text Editor” --> “C/C++” --> “Advanced” --> “IntelliSense” --> “Disable IntelliSense” 设为 “True”;  中文环境下:“工具” -->
原创
233阅读
0评论
0点赞
发布博客于 10 月前

【UE4】“xxx.generated.h”

  摘自 https://zhuanlan.zhihu.com/p/115750451当一个头文件中 include “xxx.generated.h“,意味着这个头文件加入了反射系统。那些 UPROPERTY, UFUNCTION 之类的宏,也标记着这些方法属性等等加入了 UE4 的反射系统,加入了反射系统,UE4 才能帮你做 GC(垃圾回收),你才能实现蓝图、C++ 通信等等很多功能。  需要在头文件中声明一个 UCLASS 或 USTRUCT 后后才会生成 “xxx.generated.h”
原创
1188阅读
0评论
1点赞
发布博客于 11 月前

【python】turtle库画小猪佩奇

  使用的是 python turtle 库。turtle 库就是 Python 语言中一个很流行的绘制图像的函数库,就像一个小乌龟,在一个横轴为 x、纵轴为 y 的坐标系中,从原点,(0, 0) 位置开始,根据一组函数指令的控制,在这个平面坐标系中移动,在它爬行的路径上绘制图形。  网上的代码,但是出处太多不知道原创是谁了都。。效果还是很好的,如下:  代码如下:# coding:utf...
原创
278阅读
0评论
0点赞
发布博客于 1 年前

【PBRT】圆盘均匀采样,python实现

  圆盘内的均匀采样问题,是一个很有意思,也很常被考到的问题。在一个圆形内,均匀采点,怎么保证均匀且随机?  有三种方法:1、正方形采样;2、极坐标采样(错误!);3、圆盘采样一、正方形采样(Reject Method)  最容易想到的方法就是在正方形内采样,比如要在圆心为原点,半径为1的圆内均匀采样,可以在 x 从 [-1, 1],y 从 -[-1, 1] 的正方形内均匀采样,然后把不在圆...
原创
736阅读
1评论
5点赞
发布博客于 1 年前

【python】matplotlib 在 windows下安装、命令行画图

  matplotlib 是风格类似 Matlab 的基于 Python 的图表绘图系统。  matplotlib 是 Python 最著名的绘图库,它提供了一整套和 matlab 相似的命令 API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入 GUI 应用程序中。一、安装  在 windows 下安装了 python 后,进入命令行,输入 python -V 可以看到...
原创
526阅读
0评论
0点赞
发布博客于 1 年前

判断一个多边形的凸凹性

一、凹凸多边形定义  因为凸多边形刚好定义,所以还是先看凸多边形的定义,凸多边形(Convex Polygon)可以有以下三种定义:没有任何一个内角是优角(Reflexive Angle)的多边形。如果把一个多边形的所有边中,有一条边向两方无限延长成为一直线时,其他各边都在此直线的同旁,那么这个多边形就叫做凸多边形。凸多边形是一个内部为凸集的简单多边形。  简单多边形的下列性质与其凸...
原创
981阅读
0评论
2点赞
发布博客于 1 年前

面试中的思维题

先记录所有问题,最后给出所有答案:问题1. 硬币分堆  桌子上有 23 枚一模一样的硬币,光用手摸,摸不出正反面。现在有 10 枚硬币正面朝上,13 枚反面朝上,怎么做可以蒙着眼把这 23 枚硬币分成两堆,这两堆中正面朝上的硬币个数一样多。解答1. 硬币分堆  将这堆硬币随意分成 10 和 13 两堆,把 10 枚硬币这堆,10 枚硬币全部翻面即可。  从结果看肯定没有问题,正向推也...
原创
427阅读
0评论
0点赞
发布博客于 1 年前

LeetCode - 289. Game of Life

LeetCode - 289. Game of Life根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:...
原创
106阅读
0评论
0点赞
发布博客于 1 年前

《小毛驴》简谱

原创
339阅读
0评论
0点赞
发布博客于 1 年前

《小星星》简谱

一、单手二、双手
原创
1285阅读
0评论
0点赞
发布博客于 1 年前

Lua 迭代器和闭包

  内容来自《Lua程序设计(第四版)》18.1节 —— 迭代器和闭包。  迭代器(iterator)是一种可以让我们遍历一个集合中所有元素的代码结构。在 Lua 语言中,通常使用函数表示迭代器:每一次调用函数时,函数会返回集合中的“下一个”元素。一个典型的例子就是 io.read,每次调用该函数时它都会返回标准输入中的下一行,子啊没有可以读取的行时返回 nil。  所有迭代器都需要在连续的调...
原创
103阅读
0评论
0点赞
发布博客于 1 年前

Lua 队列及双端队列

  在 Lua 语言中实现队列(queue)的一种简单方法是使用 table 标准库中的函数 insert 和 remove。这两个函数可以在一个数组的任意位置插入或删除元素,同时根据所做的操作移动其他元素。不过,这种移动对于较大的结构来说开销很大。一种更高效的实现是使用两个索引,一个指向第一个元素,另一个指向最后一个元素。使用这种实现方式,我们就可以像在如下方式以 O(1)O(1)O(1) 的时...
原创
195阅读
0评论
0点赞
发布博客于 1 年前

Lua 稀疏矩阵相乘

function mult(a, b) local c = {} for i = 1, #a do local resultline = {} -- 即 c[i] for k, va in pairs(a[i]) do -- 'va' 即 a[i][k] for j, vb in pairs(b[k]) do -- 'vb' 即 b[k][j] loca...
原创
237阅读
0评论
1点赞
发布博客于 1 年前

Lua 文本中出现频率最高的单词

  本文借鉴《Lua程序设计(第四版)》第十一章 – “小插曲:出现频率最高的单词”。  本文开发一个读取并输出一段文本中出现频率最高的单词的程序。主要数据结构是一个记录文本中出现的每一个单词及其出现次数之间关系的表。使用这个数据结构,该程序可以完成3个主要任务:读取文本并计算每一个单词的出现次数按照出现次数的降序对单词列表进行排序输出有序列表中的前 nnn 个元素  通过 io.l...
原创
127阅读
0评论
0点赞
发布博客于 1 年前

Lua 小试函数式编程,PBM绘制二维区域

  借鉴《Lua程序设计(第四版)》第9章 – 闭包,9.4节 – 小试函数式编程。  目标是开发一个用来表示几何区域的系统,其中区域即为点的集合。  为了实现这样的一个系统,首先需要找到表示这些图形的合理数据结构。我们可以尝试使用面向对象的方案,利用继承来抽象某些图形;或者,也可以直接利用特征函数(characteristic or indicator function)来进行更高层次的抽象...
原创
168阅读
0评论
0点赞
发布博客于 1 年前

Lua 函数重定义,以及安全的运行时环境(沙盒)

  本文章借鉴《Lua程序设计(第四版)》。一、函数重定义  在Lua中,由于函数可以被保存在普通变量中,因此在Lua语言中可以轻松地重新定义函数,甚至是预定义函数。这种机制也正是Lua语言灵活的原因之一。通常,当重新定义一个函数的时候,我们需要在新的实现中调用原来的那个函数。例如,假设要冲i性能定义函数sin以使其参数以角度为单位而不是以弧度为单位。那么这个新函数就可以先对参数进行转换,然后...
原创
191阅读
0评论
0点赞
发布博客于 1 年前

C++ - Can we call an undeclared function in C++?

  https://www.geeksforgeeks.org/g-fact-28/  如下代码,在C中可以运行,但是在C++中
原创
113阅读
0评论
0点赞
发布博客于 1 年前

LeetCode - 138. Copy List with Random Pointer 随机节点链表复制

A linked list is given such that each node contains an additional random pointer which could point to any node in the list or null.Return a deep copy of the list.  节点结构如下:class Node {public: ...
原创
86阅读
0评论
1点赞
发布博客于 1 年前

Visual Studio 常用快捷命令

一、Ctrl + xx / Ctrl + Shift + xx三、Else一、Ctrl + xx / Ctrl + Shift + xxCtrl + Tab:打开的文件之间的切换vs上方有最近打开的文档,右上角的下拉小箭头可以所有打开的文档,不过看起来还是不方便,Ctrl + Tab 可以打开所有活动文件,在这个界面可以按键盘上下左右键,也可以直接用鼠标选择一个打开。Ctrl + k ...
原创
163阅读
0评论
0点赞
发布博客于 2 年前

LaTex 在线编辑编译,生成PDF —— Overleaf

  LaTex很好用,Texmaker 和 TexStudio 都是很好的本地编辑编译器,但是有的时候出了问题需要重装,甚至重装都弄不好(因为我太菜了)。  师兄推荐了一个在线编辑编译LaTex的网址:https://www.overleaf.com/,可以用Google账号登录,网页界面如下所示。  每次修改了什么就点图中红框中的 “Recompile” 就可以了,然后写完了点红框中的下...
原创
1522阅读
0评论
2点赞
发布博客于 2 年前

二阶魔方还原 - 4步2公式

三阶魔方的公式记录在 https://blog.csdn.net/Bob__yuan/article/details/86546920,这是只需要记7个公式就可以三阶魔方还原法,本文为二阶魔方“傻瓜还原法”,即不需要另外再记公式,只需要会上述三阶魔方中的2个公式就可以还原的方法。  首先对魔方要有一个整体理解:魔方分为 奇数阶(如三阶、五阶、七阶)和 偶数阶 两种,其中奇数阶的特点是每个面有...
原创
10051阅读
0评论
1点赞
发布博客于 2 年前

毕业论文书写

分以下几个部分:1、图、表、公式2、参考文献2、注意事项一、图、表、公式1.1 图、表  图和表都需要 插入题注(英文版叫""),图的题注在图的下方,表的题注在表的上方。  1.2 公式  二、参考文献  三、其他注意事项毕业论文中,所有 “本文” 都应该写为 “本论文”;每一章节提出的算法不写 “本文”,写 “本章” 或者 “本节”;论文章节题目可以写 “本文”,...
原创
629阅读
0评论
4点赞
发布博客于 2 年前
三阶魔方7步还原法 - 一共只需记6个公式
发布Blink于 2 年前

单词翻转

一、字符串按照单词顺序翻转 LeetCode - 151. Reverse Words in a StringGiven an input string, reverse the string word by word.Input: “the sky is blue”Output: “blue is sky the” Example 2:Input: " hello world! ...
原创
97阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 1247. Minimum Swaps to Make Strings Equal

1247. Minimum Swaps to Make Strings Equal  给出两个只包含x和 y的字符串,问最少多少步交换可以让两个字符串相同?  交换是指任意s1[i]和s2[j]的一次交换。如果不能达到相同,输出-1,如果能输出最少交换次数。Input1: s1 = “xx”, s2 = “yy”Output1: 1Input: s1 = “xy”, s2 = “yx...
原创
122阅读
0评论
0点赞
发布博客于 2 年前

chrome一次性刷新所有打开的标签页

  有的时候我们想一次性刷新所有标签页,网上很多教程是用插件定时刷新,这样比较麻烦,其实标签页的选取和windows上的文件选取是一样的,按住ctrl是多选,想选哪个选上哪个,按住shift是将左右端点以及中间的全选上,所以选点网页最左边的标签页,然后按shift,再点击浏览器最右边的标签页,就将所有已经打开的标签页全选中了,然后按F5刷新即可。...
原创
4920阅读
0评论
1点赞
发布博客于 2 年前

【二分+贪心】【最小值最大化】牛牛分田地

  牛客网 https://www.nowcoder.com/questionTerminal/fe30a13b5fb84b339cb6cb3f70dca699牛牛分田地牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛...
原创
264阅读
0评论
0点赞
发布博客于 2 年前

【C++】final/override、如何设计一个不能被继承的类

  final 和 override 都是在特定场景使用有特殊含义的标识符(specifier / identifier ),并不是C++保留的关键字(not a reserved keyword )。final specifier (since C++11)Specifies that a virtual function cannot be overridden in a derived...
原创
274阅读
0评论
0点赞
发布博客于 2 年前
中国麻将:世界上最早的区块链项目
发布Blink于 2 年前

找同学(只能转弯两次的"DFS")

#include <iostream>#include <vector>#include <algorithm>using namespace std;/*3 44 3 2 10 0 0 01 2 3 441 1 2 43 4 1 12 4 2 13 3 1 10 0*/vector<vector<int>&...
原创
56阅读
0评论
0点赞
发布博客于 2 年前

【DP】LeetCode - House Robber 问题

  这个系列共三道题,前两天类似,是一维数组dp问题,第三题是树的遍历:198. House Robber213. House Robber II337. House Robber IIILeetCode - 198. House Robber  给定一个非负整数的数组nums,表示每个房子的价值,小偷偷房子里的东西,不能偷两个相邻的房子,问最多投多少?Input: [1,2,3...
原创
154阅读
0评论
0点赞
发布博客于 2 年前

topK问题

  topK 问题基本有以下几种:数组前 K 大的 k 和数字数组第 K 大的数字(一个数)前k大的k个数  第k大的数  使用快排思想,参考 https://blog.csdn.net/Bob__yuan/article/details/100145469。...
原创
178阅读
0评论
0点赞
发布博客于 2 年前

【DP】LeetCode - 1235. Maximum Profit in Job Scheduling

LeetCode - 1235. Maximum Profit in Job Scheduling  正常的dp用的都是数组然后以下标的形式表示每个位置的dp值,但是这里可以看出我们需要的下标值不是连续的,而是每个 Job 的 endTime,所以就想到用 mao 当做 dp 数组使用,就和正常的 dp 一样了。  把所有任务按照 endTime 进行排序,然后每次计算 dp[i] 的时候,先...
原创
510阅读
0评论
0点赞
发布博客于 2 年前

【C++】指针和引用的区别

  面试中常会问到:“讲一讲指针和引用的区别”,主要区别如下表所示:指针引用变量指针是一个变量,不过变量存储的是一个地址,指向内存中的一个存储单元引用只是别名解引用使用时需要 dereference(*p)不需要解引用定义与初始化可以初始化为nullptr,也可以不初始化(默认为空)定义时必须初始化,且不能为空能否修改内容指针可以指向别的内容...
原创
180阅读
0评论
0点赞
发布博客于 2 年前

雀魂启动!

https://www.nowcoder.com/practice/448127caa21e462f9c9755589a8f2416?tpId=0&tqId=0&rp=10&ru=/ta/2019test&qru=/ta/2019test/question-ranking雀魂启动!  暴力对每一个出现次数 >= 2 的数作为雀头进行尝试,然后剩下的 12 ...
原创
1342阅读
0评论
1点赞
发布博客于 2 年前

数组中每个位置右边第一个比它大的数

  给定一个数组,O(N) 时间复杂度求出
原创
607阅读
0评论
1点赞
发布博客于 2 年前

const 指针与迭代器

  正常的指针是很好记的:const 在 * 前边,表示 *p 不能变;cosnt 在 * 后边,表示 p 不能变;前后都有 const 表示 *p 和 p 都不能变。  但是 STL vector 的 iterator 和 const_iterator 是不一样的:#include <iostream>#include <vector>using nam...
原创
102阅读
0评论
0点赞
发布博客于 2 年前

【C++】构造函数、析构函数执行顺序

  下边这段代码的输出是什么?#include <iostream>using namespace std;class A {public: A() { cout << "A() "; } ~A(){ cout << "~A() "; }};class B {public: B() { cout << "B() "; } ~...
原创
101阅读
0评论
0点赞
发布博客于 2 年前

随机数函数设计

问题:怎么设计一个随机函数?有一个随机生成 [1, 5] 的随机函数,怎么设计一个均匀随机 [1, 7] 的随机函数?怎么设计一个随机函数  会了再写。随机函数设计有一个随机生成 [1, 5] 的随机函数,怎么设计一个均匀随机 [1, 7] 的随机函数?  这个问题可以概括成:给定一个在 [a, b] 内均匀随机的函数 F,设计一个 [m, n] 内均匀随机的函数 R。  ...
原创
161阅读
0评论
0点赞
发布博客于 2 年前

数组逆序对个数

牛客网 “数组中的逆序对” 题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出(即输出P%1000000007 )。输入描述: 题目保证输入的数组中没有的相同的数字对于 %50 的数据, size<=104对于 %75 的数据, size<=105对于...
原创
142阅读
0评论
0点赞
发布博客于 2 年前

【C++】extern "C"

extern “C”  被 extern 限定的函数或变量是 extern 类型的  被 extern “C” 修饰的变量和函数是按照 C 语言方式编译和链接的。  extern “C” 的作用是让 C++ 编译器将 extern “C” 声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。extern “C” 块应用  在 C 和...
原创
93阅读
0评论
0点赞
发布博客于 2 年前

vector push_back 时间复杂度分析

  《C++程序设计语言》第4部分:标准库,里边写 vector,第一句如下:The STL vector is the default container. Use it unless you have a good reason not to. If your suggested alternative is a list or built-in array, think twice....
原创
1742阅读
0评论
1点赞
发布博客于 2 年前

HTTPS

https://blog.csdn.net/qq_21399461/article/details/80367712
原创
154阅读
0评论
0点赞
发布博客于 2 年前

二项式定理

  二项式定理(Binomial Theorem)就是:(x+y)n(x + y)^n(x+y)n 的展开: (x+y)n=Cn0anb0+Cn1a(n−1)b1+...+Cnn−1a1bn−1+Cnna0bn(x + y)^n = C_n^0 a^n b^0 + C_n^1 a^{(n-1)} b^1 + ... + C_n^{n - 1} a^1 b^{n - 1} + C_n^n a^0 ...
原创
1281阅读
0评论
1点赞
发布博客于 2 年前

经典划船渡河问题

  经典的一帮人,一艘船,渡河问题:  n 个人,一艘船,每次过河穿上最多坐两个人,每个人有一个过河时间 a[i],两个人一起坐船,时间为慢的人的时间,过去之后,需要有人带着船回来,才能继续过河,这个时间也需要计算,问最短需要多少时间能够所有人过河(最后一次船不需要回来)?样例输入:51 2 4 5 15样例输出:27  首先能明确的是,如果过河能够两个人一起过,那就两个人一起过...
原创
1743阅读
0评论
2点赞
发布博客于 2 年前

【CPU缓存】一级二级三级缓存

CPU缓存  CPU缓存(Cache Memory)是位于 CPU 与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却快得多。  CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。高速缓存的出现主要是为了解决 CPU 运算速度与内存读写速度不匹配的矛盾。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的(?如何判断),...
原创
490阅读
0评论
0点赞
发布博客于 2 年前

操作系统虚拟内存调度方式(页式、段式、段页式)

一、操作系统虚拟内存调度方式  操作系统虚拟内存调度方式有分页式、段式、段页式3种。页式调度  页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。  在页式虚拟存储系统中,虚拟空间被分成大小相等的页,称为逻辑页或虚页。主存空间也被分成同样大小的页,称为...
原创
1887阅读
0评论
2点赞
发布博客于 2 年前

【红黑树】RB-tree

一、红黑树定义  红黑树五条性质:红黑树是每个节点都带有颜色属性的二叉查找树,颜色只能为红色或黑色;根节点是黑色;所有叶子节点(即NULL)均为黑色;从每个叶子到根的所有路径上不能有两个连续的红色节点(也就是每个红色节点的子节点只能是黑色。);从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。  上边五条性质决定了红黑树是有平衡性的(因为从根节点到叶节点最长路径最多是最短...
原创
69阅读
0评论
0点赞
发布博客于 2 年前

HTTP 1.0, 1.1, 2.0 的区别

  https://mp.weixin.qq.com/s/GICbiyJpINrHZ41u_4zT-A  总的来说就是:HTTP 1.1 和 HTTP 1.0 相比的新特性:  长连接,HTTP 1.1 支持长连接(Persistent Connection)、)和请求的流水线(Pipelining)处理,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和...
原创
93阅读
0评论
0点赞
发布博客于 2 年前
C语言这么厉害,它自身又是用什么语言写的?
发布Blink于 2 年前

【归并排序】vector上C++实现

#include <iostream>#include <vector>using namespace std;vector<int> merge(vector<int> a, vector<int> b) { vector<int> res; size_t ai = 0, bi = 0; while (ai &...
原创
157阅读
0评论
1点赞
发布博客于 2 年前

单链表上的快排

  正常数组上的快排很常考,可以参考 https://blog.csdn.net/Bob__yuan/article/details/98782859 以及求数组第K大元素时使用的快排:https://blog.csdn.net/Bob__yuan/article/details/100145469。  在链表上进行排序一般用归并,可以参考 https://blog.csdn.net/Bob__...
原创
189阅读
0评论
0点赞
发布博客于 2 年前

【C++】static关键字

分为4部分:static 修饰非成员变量和函数static 修饰非成员变量static 修饰非成员函数static 修饰成员变量和函数static 修饰成员变量static 修饰成员函数一、static 修饰非成员变量和函数1.1 static 修饰非成员变量  C/C++ 中,static 修饰的非成员变量分为静态全局变量和静态局部变量,两种静态变量都是存储在全...
原创
227阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 234. Palindrome Linked List 判断回文链表

LeetCode - 234. Palindrome Linked ListGiven a singly linked list, determine if it is a palindrome.Input: 1->2 Output: falseInput: 1->2->2->1 Output: trueFollow up: Could you do it i...
原创
172阅读
0评论
0点赞
发布博客于 2 年前

字符串去除匹配所有括号

  每一个字符串,比如 (())()()Abc(DEF)(g)))(hi)((,去除所有匹配括号,也就是变成 AbcDEFg))hi((。  可以从左往右遍历,也可以从右往左遍历。这种左右括号的题目,一般都要用栈,从左往右的方式如下:void erase_braces(string& s) { stack<int> st; for(int i = 0; i < s...
原创
950阅读
0评论
1点赞
发布博客于 2 年前

n 个连续递增的数求和为 35,问 n 可能的值是哪些?

n 个连续递增的数求和为 35,问 n 可能的值是哪些?  连续递增数也就是 1 2 3 4 5 这样的,也就是差为 1 的等差数列。  设第一个数是 a,那么最后一个数就是 a + n - 1,利用等差数列求和公式,(首项 + 末项)* 项数 / 2:  (a+a+n−1)∗n/2=35,即(2∗a+n−1)∗n=70(a + a + n - 1) * n / 2 = 35,即 (2 * ...
原创
93阅读
0评论
0点赞
发布博客于 2 年前

【计算机网络】面试复习总结

分为以下几个部分:1、网络模型分类2、各个层的作用3、TCP/IP协议栈4、网络模型分类OSI 七层模型五层模型:OSI 和 TCP 的综合,但是底层还是 TCP/IP 的四层结构TCP/IP四层模型各个层的作用1、物理层(比特):主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(1,0 --> 电流 --...
原创
216阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 236. 二叉树两节点公共祖先

LeetCode - 236. Lowest Common Ancestor of a Binary TreeGiven a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree.According to the definition of LCA on Wikipedia:“Th...
原创
69阅读
0评论
0点赞
发布博客于 2 年前

【旋转数组】LeetCode中旋转数组问题总结

共四道题:1、33. Search in Rotated Sorted Array - 旋转数组中的查找(没有重复元素)2、81. Search in Rotated Sorted Array II - 旋转数组中的查找(有重复元素)3、153. Find Minimum in Rotated Sorted Array - 旋转数组中最小值(没有重复元素)4、154. Find Minim...
原创
73阅读
0评论
0点赞
发布博客于 2 年前

LeetCode -11. Container With Most Water(最大盛水、经典“哨兵”题)

LeetCode - 11. Container With Most WaterGiven n non-negative integers a1, a2, …, an , where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of l...
原创
59阅读
0评论
0点赞
发布博客于 2 年前

【死锁】银行家算法

https://blog.csdn.net/qq_33414271/article/details/80245715
原创
73阅读
0评论
0点赞
发布博客于 2 年前

【设计模式】生产者/消费者模式

https://blog.csdn.net/u011109589/article/details/80519863
原创
70阅读
0评论
0点赞
发布博客于 2 年前

100个人,100盏灯,全部熄灭,第一人过去按所有灯的开关,第二个人会每隔一盏灯按开关,第三个人每隔2盏灯按开关,以此类推,第100人隔99盏灯按开关,100个人都走完,剩多少盏灯亮着?

100个人 , 100盏灯,全部熄灭,第一人过去按所有灯的开关,第二个人会每隔一盏灯按开关,第三个人每隔2盏灯按开关,以此类推,第100人隔99盏灯按开关 , 100个人都走完,剩多少盏灯亮着?  总结来说,所有人都是按他自己编号的倍数的灯(编号都是从1开始),也就是说:1 号人按所有灯,2 号人按 2 4 6 8 10 号灯,三号人按 3 6 9 号灯,依次类推。  我们可以发现:一盏灯...
原创
1340阅读
0评论
0点赞
发布博客于 2 年前

LeetCode -166. Fraction to Recurring Decimal 计算除法

LeetCode - 166. Fraction to Recurring DecimalGiven two integers representing the numerator and denominator of afraction, return the fraction in string format.If the fractional part is repeating, e...
原创
82阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 1191. K-Concatenation Maximum Sum

LeetCode - 1191. K-Concatenation Maximum Sumint maxSubArray(const vector<int>& nums) { int max_sum = INT_MIN, cur_sum = 0; for (const int& i : nums) { cur_sum = max(i, cur_sum + i);...
原创
203阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 1190. Reverse Substrings Between Each Pair of Parentheses

LeetCode - 1190. Reverse Substrings Between Each Pair of ParenthesesYou are given a string s that consists of lower case English lettersand brackets.Reverse the strings in each pair of matching pa...
原创
466阅读
0评论
0点赞
发布博客于 2 年前

哈夫曼编码、解码,哈夫曼树

  
原创
1519阅读
0评论
0点赞
发布博客于 2 年前

一个整数二进制表示中有几个1

  求一个整数的二进制表示下有多少个1,比如 32 (100000),返回 1;给定 5 (101),返回 2;给定 1023 (111111111),返回 9。  当然可以一位一位的看,但是这样太慢了,更好的方式是用:n = n & (n - 1),这种方式 每次将 n 二进制表示下最右边的一个 1 变为 0。int countNumofOne(int n){ int cnt...
原创
393阅读
0评论
0点赞
发布博客于 2 年前

【C++】模板特化、偏特化

  模板分为函数模板和类模板,特化分为全特化和偏特化。使用模板的时候,我们的目的就是希望可以不用每个类型实现一遍,而是用一个模板代替这个类型。如果所有类型的实现都是一个统一的一样的实现,就不需要模板特化或者偏特化了,但是大多数情况是肯定有特殊版本需要特殊处理的,下边用两个典型的例子记录一下:1、hash<_Kty>:模板全特化2、vector<bool>:模板偏特化一...
原创
1310阅读
0评论
0点赞
发布博客于 2 年前

两辆运输车一次运送最多垃圾(环的节点个数)

一个化学实验室,做完实验有 n 堆废料垃圾要运走,但是有些垃圾放在一起会有化学反应,所以不能放在一辆垃圾车里。现共有两辆垃圾车,在保证没有化学反应发生的情况下,两辆车一次最多运多少垃圾?为了简化问题:1、两辆垃圾车必须转同样数量的垃圾;2、每堆垃圾最多有两个不能与之放在一起的垃圾,也就是每堆垃圾最多两个约束条件;3、每辆车能装的垃圾没有上限。样例输入:5 3 (5 堆垃圾,1~5编...
原创
111阅读
0评论
0点赞
发布博客于 2 年前

数组中长度至少为k的区间的最小和

给出一个长度为 n 的数组 arr,在数组中找到一个长度 >= k 的区间,这个 区间中所有数字的和最小,返回这个最小值。输入: 第一行 n, k。(1 <= n < 100000),第二行 n 个整数表示 arr[i](0 <= |arr[i]| <= 1000)。输出一个数,表示区间和的最小值。样例输入6 41 2 3 4 5 6样例输出:1...
原创
348阅读
0评论
0点赞
发布博客于 2 年前

字符数组、字符串指针

  先放代码:#include <iostream>using namespace std;int main() { char a[] = "abcdef"; const char* b = "abcdef"; // C++11 不允许 char* p = "abc"; 了,必须有 const char c[] = { 'a', 'b', 'c', 'd', 'e', '...
原创
65阅读
0评论
0点赞
发布博客于 2 年前

将数组分成两部分,使得 |sum1 - sum2| 最小. LeetCode - 1049

  将一个数组分成两部分,不要求两部分所包含的元素个数相等,要求使得这两个部分的和的差值绝对值最小(|S1 - S2|,S1、S2 是两个数组的和)。比如对于数组 {1,0,1,7,2,4},可以分成 {1,0,1,2,4} 和 {7},使得这两部分的差值最小。  这个问题可以转化为求数组的一个子集,使得这个子集中的元素的和尽可能接近sum/2,其中sum为数组中所有元素的和。这样转换之后这个问...
原创
1041阅读
0评论
0点赞
发布博客于 2 年前

LeetCode - 468.Validate IP Address

Write a function to check whether an input string is a valid IPv4 address or IPv6 address or neither.IPv4 addresses are canonically represented in dot-decimal notation,which consists of four decima...
原创
50阅读
0评论
0点赞
发布博客于 2 年前

【DP】LeetCode - 1218. 最长等差数列子数组

  给一个已排序数组,问最长的等差数列子数组多长。这道题和 LIS 基本一模一样,LIS 可以参考 https://blog.csdn.net/Bob__yuan/article/details/99696806。样例输入:51 2 3 4 5样例输出: 5  用一个二维 dp 矩阵,dp[i][d] 表示以 i 位置为结尾的,差为 d 的等差数列的长度。#include <...
原创
146阅读
0评论
0点赞
发布博客于 2 年前

队列实现栈,栈实现队列

  很常见的两道题:1、用 queue 实现 stack:LeetCode - 225. Implement Stack using Queues2、用 stack 实现 queue:LeetCode - 232. Implement Queue using Stacks一、Implement Stack using Queues  就是用 queue 来模拟 stack,实现 push、...
原创
121阅读
0评论
0点赞
发布博客于 2 年前