自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NL的博客

一个对技术渴望的coder

  • 博客(138)
  • 收藏
  • 关注

原创 leetcode 440. 字典序的第K小数字(精)

题目: 给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。注意:1 ≤ k ≤ n ≤ 109。示例 :输入: n: 13 k: 2输出: 10解释: 字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。 解题思路: 艰难的一题,从昨晚9点开始脑子就一直在想这道题的做法...

2018-08-13 22:30:55 7013 1

转载 拉链表设计算法

转自https://www.cnblogs.com/zhangchenliang/archive/2012/09/11/2680945.html在企业中,由于有些流水表每日有几千万条记录,数据仓库保存5年数据的话很容易不堪重负,因此可以使用拉链表的算法来节省存储空间。1.采集当日全量数据存储到 ND(当日) 表中。2.可从历史表中取出昨日全量数据存储到 OD(上日数据)表中。3.用ND-O...

2020-05-06 21:29:42 132

原创 VUE嵌套路由导致父组件重复渲染BUG(虚惊一场)

哲神最近在做VUE开发,开发一个模块需要用到嵌套路由,路由如下:{ path: 'dashboard', component: () => import('@/views/dashboard/index'), name: 'dashboard', meta: { title: '数据看板', activeMenuName: 'dashboard', keepAlive: t...

2020-01-19 15:54:20 1345 1

转载 centos 安装 libiconv

原文链接:http://www.cnblogs.com/-mrl/p/11151943.html安装方法如下:cd /usr/local/srcwget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gztar -zxvf libiconv-1.14.tar.gzcd libiconv-1.14配置./configure ...

2019-08-29 20:51:26 3386

原创 C# action delegate func的区别

转自https://www.cnblogs.com/772933011qq/p/6369381.html以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。先说一下委托:模拟...

2018-09-12 23:40:55 861 2

原创 C#中Get和Post请求的同步及异步方法

在C#中发起Http请求一般使用HttpWebRequest这个类,下文将使用这个HttpWebRequest对象来对Get和Post的同步及异步请求进行封装:新建HttpRequestHelper类: public static class HttpRequestHelper { /// <summary> /// Http Ge...

2018-09-12 21:06:36 1095

原创 UNITY材质球合并

材质球合并,分以下几步走,首先我们讨论普通的MeshRenderer的材质球合并,然后再讨论SkinnedMeshRenderer的材质球合并。普通的MeshRenderer的材质球合并:1.合并所有材质球所携带的贴图,新建一个材质球,并把合并好的贴图赋予新的材质球。2.记录下每个被合并的贴图所处于新贴图的Rect,用一个Rect[]数组存下来。3.合并网格,并把需要合并的各个网格...

2018-09-05 16:39:57 2382

原创 UNITY PlayClipAtPoint用法

今天折腾了一天3D音效,把脚本直接挂载怪物身上总觉的不合适,用相机的audioSource切换一直出现卡顿现象。最后终于靠PlayClipAtPoint救了一命。 下面介绍一下该函数以及如何使用多个AudioSource。 ———————————————————————————————— 游戏中的声音通常可以分为音乐和音效,音乐通常时间较长,且需要循环播放,音效则时间较短,不需要循环播放。...

2018-09-04 23:29:11 2435 1

原创 C#as的用法

在程序中,进行类型转换时常见的事,C#支持基本的强制类型转换方法,例如 Object obj1 = new NewType(); NewType newValue = (NewType)obj1; 这样强制转换的时候,这个过程是不安全的,因此需要用try-catch语句进行保护,这样一来,比较安全的代码方式应如下所示: Object obj1 = new NewType(); NewT...

2018-09-04 10:36:10 796

原创 UNITY 常用优化策略

这节主要讲unity资源优化,先学习一个概念吧:资源管道,原始文件通过内容管道变成了一个可被Unity高效使用的中间文件 ,这不是Unity里面的一个概念,但Unity的工作行为和它很类似;Unity在导入资源的时候可以使用类型丰富的文件,这不意味着在我们生成的App中同样也是这些文件,资源通过Unity的资源管道变成了较为统一的格式。我们在导入资源的时候有很多参数可以调整,1 首先从声音开始...

2018-09-03 19:27:56 204

原创 C#委托

今天在寻找INVOKE传参方法的时候,网上搜了一堆也没得到一个像样的回答,有人说可以通过委托实现,我是没实现成功,不过顺带把委托复习了一遍,下面是委托相关的知识点。 1、什么是委托从数据结构来讲,委托是和类一样是一种用户自定义类型。委托是方法的抽象,它存储的就是一系列具有相同签名和返回回类型的方法的地址。调用委托的时候,委托包含的所有方法将被执行。2、委托的定义委托是类型,就好像...

2018-09-03 18:52:15 69

原创 C#嵌套类

嵌套类型可以自由访问外层类型的成员,而不在乎那些成员是否私有。外层类型如果想访问嵌套类型,则要受到访问规则的限制。 不管外层类型是类型还是结构,嵌套类型均默认为 private,但是可以设置为 public、protected internal、protected、internal 或 private。 如果嵌套类型是private或protected的,嵌套类型对外层类型以外的其它类型是不可...

2018-09-03 18:43:19 572

原创 对c#的get和set的看法

在程序中经常碰到get、set,不甚明白,在网上查询时也说的迷迷糊糊,所以整理下,以学的明白透彻点。有两个类person:public class person{public string name;}public class person{public string Name{set;get;}}第一个类型的name属性未封装,其name属性直接通过pub...

2018-09-01 21:34:20 93

原创 C#程序集的组成

1.程序集清单,包含描述该程序集中各元素彼此如何关联的数据集合,还包含指定该程序集的版本要求和安全标识所需的所有元数据,以及定义该程序集的范围和解析对资源和类的应用所需的全部元数据。 2.元数据,提供有关程序集中定义的类型的信息,包括类型的名称,可见性,基类和类型所实现的接口。注意:程序集清单和元数据说明了程序集是自我描述的。 3.实现这些类型的MSIL代码。 4.资源集,诸如位图,指针,静...

2018-08-26 17:14:07 549

原创 C++之upper_bound的谓词趣用

今天做一道算法题,用到了upper_bound,第一次需要给upper_bound加谓词功能。题中需要比较的是结构体,我就这样调用upper_bound:/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0),...

2018-08-25 23:26:36 189

原创 C#脚本 [System.Serializable]的作用

前几天在做自己的塔防游戏的时候,建造了一个turrentData类,却无法显示在inspector上,百度别人对此问题的解决办法后,得到了用序列化存储的解决办法,在类前写上 [System.Serializable]就解决了问题,下面介绍一下 序列化的作用。序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然...

2018-08-25 18:26:14 5827

原创 Unity Time.deltaTime的作用

初学Unity3D,第一次接触Time.deltaTime这个变量,以下是个人的一些理解,如有错误,欢迎拍砖。先说下Unity3d脚步中常用的两个方法:Update():每帧被调用一次FixedUpdate():每隔Time.fixedDeltaTime被调用一次。Time.fixedDeltaTime默认是0.02s,可以通过Edit->ProjectSettings->...

2018-08-23 20:46:11 3581

转载 A*算法详解(讲的一级棒 )

转自:https://blog.csdn.net/hitwhylz/article/details/23089415概述虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。搜索区域(The Search Area)我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B ,中间蓝色是墙。 图 ...

2018-08-23 16:03:28 94431 37

原创 光栅化具体描述

和几何形状阶段类似,本阶段也细分为几个功能阶段:建立三角形、遍历三角形、像素着色和合并,如图2.8。2.4.1 建立三角形本阶段计算三角形表面的差值和其他数据。该数据用于扫描转换,以及几何形状阶段生成的各种着色数据的插值。该过程由任务专用的固定操作硬件执行。2.4.2 遍历三角形在这个阶段,将检查每个被三角形覆盖了中心(或某样品)的像素,并为和三角形重叠的像素部分生成片段。查找哪...

2018-08-19 21:04:12 286

原创 渲染管线的流程

》GPU的渲染管线就是告诉GPU一堆数据,最后得出来一副二维图像,而这些数据就包括了”视点、三维物体、光源、照明模型、纹理”等元素。 》渲染管线主要分为三个阶段: 1.应用程序阶段:主要是CPU与内存打交道,例如碰撞检测,计算好的数据(顶点坐标、法向量、纹理坐标、纹理)就会通过数据总线传给图形硬件 。 2.几何阶段:主要负责顶点坐标变换、光照、裁剪、投影以及屏幕映射,在该阶段的末端...

2018-08-19 21:02:30 2462

原创 前缀树

前缀树的功能很强大,比如有一个字符串数据,我们要从查找其中以“hell”开头的,或者以”ive”结尾的字符的个数等等操作。我们只需要在定义前缀树的时候加上相应得数据项就OK了。下面来简单通俗易懂的解释一下前缀树。假设刚开始我们,有一个空节点,现在我们有一个操作,往这个空的节点上insert字符串“abc”, 那么我们按照下面的步骤insert:process: 1、首先看当前节点有没有指向...

2018-08-17 23:03:25 656

原创 策略模式与工厂模式的区别

定义:工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作;工厂类负责判断、控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了,访问该父类,得到我们想要的结果。 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。在软件开发中也常常遇到类似的情...

2018-08-17 11:23:13 2529

原创 Unity中的物体移动-Transform.Translate

Transform.Translate通过设置下一步移动的矢量方向和大小进行移动。有两种移动方式:1.ADWS控制游戏对象上下左右移动,不涉及旋转;2.AD通过旋转控制方向,WS控制前后移动,也可以实现受控位移。无论哪种方式,首先都要获取键盘响应,可以通过Input.GetKey获取,也可以通过Input.GetAxisRaw获取。第一种方式下的代码如下:float i...

2018-08-14 19:04:36 1459

原创 Unity3d - 为何需要Time.deltaTime

初学Unity3D,第一次接触Time.deltaTime这个变量,以下是个人的一些理解,如有错误,欢迎拍砖。先说下Unity3d脚步中常用的两个方法:Update():每帧被调用一次FixedUpdate():每隔Time.fixedDeltaTime被调用一次。Time.fixedDeltaTime默认是0.02s,可以通过Edit->ProjectSettings->...

2018-08-14 17:47:21 258

原创 435. 无重叠区间

题目 给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。 解题思路 按照每个节点的end从小到大排序,从第一个开始,将当前点的end和后面一个节点的start比较,如果end<=start那么说明没有重合,将后面一个节点作为当前点,继续向后比较。...

2018-08-11 21:17:49 555

原创 leetcode 423. 从英文中重建数字

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。注意:输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1:输入: “owoztneoer”输出: “012” (zeroonetwo) 示例 2:输入: “f...

2018-08-11 15:17:17 1001

原创 红黑树与AVL树的比较

AVL是严格的平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多;红黑树是用非严格的平衡来换取增删节点时候旋转次数的降低开销;所以简单说,如果你的应用中,搜索的次数远远大于插入和删除,那么选择AVL树,如果搜索,插入删除次数几乎差不多,应选择红黑树。即,有时仅为了排序(建立-遍历-删除),不查找或查找次数很少,R-B树合算一些。红黑树与AVL树的调整平衡的实...

2018-08-10 13:50:47 270

原创 leetcode 417. 太平洋大西洋水流问题

给定一个 m x n 的非负整数矩阵来表示一片大陆上各个单元格的高度。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。规定水流只能按照上、下、左、右四个方向流动,且只能从高到低或者在同等高度上流动。请找出那些水流既可以流动到“太平洋”,又能流动到“大西洋”的陆地单元的坐标。提示:输出坐标的顺序不重要 m 和 n 都小于150一道DFS的变种题,这种题...

2018-08-09 17:09:46 1287

原创 什么是死锁及死锁的必要条件和解决方法

进程死锁及解决办法 一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件–以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁的预防策略中资源有序分配策略。(5) 理解进程安全序列的概念,理解死锁与安全序列的关系。(6) 了...

2018-08-07 21:52:18 2228

原创 程序的链接的三种方式

程序的链接有以下三种方式: 静态链接:在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。 装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,釆用边装入边链接的链接方式。 运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行的链接。其优点是便于修改和更新,便于实现对目标模块的共享。内存的装入模块在装入内...

2018-08-06 23:49:06 5347 1

原创 数字中找前K大/小的元素的几种方法

方法一:根据快速排序划分的思想 :(1) 递归对所有数据分成[a,b)b(b,d]两个区间,(b,d]区间内的数都是大于[a,b)区间内的数 ; (2) 对(b,d]重复(1)操作,直到最右边的区间个数小于100个。 注意[a,b)区间不用划分 ;因为[a,b)区间一定小于(b,d]区间;(3) 返回上一个区间,并返回此区间的数字数目。 如果个数大于100,对(b,d]重复...

2018-08-06 23:37:14 458

原创 leetcode 395. 至少有K个重复字符的最长子串

这道题类似于leetcode 394,我用的是递归的思想。 先建立一个辅助容器,unordered_map<char,int>work,用来存储本段字符串的每一个字符的出现次数。然后如果存在work[i]<k,则从i处分割字符串,对分割出来的子字符串进行递归。这么做的原因是如果确定该字符出现的次数小于k,那么最长的满足要求的子串必定不能含有该字符。 另外的就是注意设置好递归的...

2018-08-06 18:04:17 656

原创 STL的lower_bound和upper_bound

先贴代码 STL的二分查找的精巧体现在它用len而不是end来进行二分操作,这样可以用移位操作代替除2操作。以提高速度。STL中lower_bound和upper_bound的区别在于,lower_bound将mid元素等于target的情况与大于的情况归为一类,因此它会在等于target的这个区间尽量向左找,最终找到的自然是>=target的第一个数值。而upper_bound则将m...

2018-08-05 17:56:43 58

原创 390. 消除游戏

1 解题思想 所谓的消除游戏,是指给出一个数字n,对应1..n的序列,然后重复如下流程: 1、选择当前序列的第1,3,5,7…..的所有奇数位置的数字消除,得到新的序列 2、选择当前序列的倒数第1,3,5,7…的所有倒数的奇数位置的数字消除,得到新的序列 3、重复12 直到只剩一个为止这道题首先可以推出一个规律: 1、无论是1还是2,若当前序列长度为k,那么下一轮一定只剩k/...

2018-08-04 23:58:02 406

原创 leetcode 386. 字典序排数

给定一个整数 n, 返回从 1 到 n 的字典顺序。例如,给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] 。请尽可能的优化算法的时间复杂度和空间复杂度。 输入的数据 n 小于等于 5,000,000。这道题直观的想法是,建一个vector<int>,和一个vector<string>,int转换到string,排序后...

2018-08-03 21:02:54 1503

原创 [leetcode] 375. Guess Number Higher or Lower II 解题报告

题目链接: https://leetcode.com/problems/guess-number-higher-or-lower-ii/We are playing the Guess Game. The game is as follows:I pick a number from 1 to n. You have to guess which number I picked.Eve...

2018-08-03 16:50:42 46

原创 Leetcode 371 求两个数的和

题意为不用+和-,求出a与b的和。 因此用位级运算。 我的思路是新建一个result遍历,将a和b按位求和,求和的方式是二进制加法专用符号:异或。 其中这句话carry=(tmpA&tmpB || tmpB&carry || tmpA&carry);的意思是: 如果tmpA、tmpB、carry中如果有两个以上为1,则进位置为1。class Solution {...

2018-08-03 14:31:34 118

原创 leetcode 363. 矩形区域不超过 K 的最大数值和

题目: 给定一个非空二维矩阵 matrix,和一个整数 k,找到这个矩阵中矩形区域不超过 k 的最大数值和。示例:给定 matrix = [ [1, 0, 1], [0, -2, 3] ] k = 2 结果是 2,因为矩形区域 [[0, 1], [-2, 3]] 的数值和是 2,且 2 是不超过 k 的最大数字(k = 2)。这道题是最大矩形面积问题的一个变种,我...

2018-08-02 00:21:19 2424 4

原创 leetcode 365. 水壶问题

题目: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。你允许:装满任意一个水壶 清空任意一个水壶 从一个水壶向另外一个水壶倒水,直到装满或者倒空这道题的解法在于证明Z可以被X和Y的最大公倍数整除,下面是该定理的证明:假设最终体积z = m *...

2018-08-01 23:03:28 1075 2

原创 树状数组的原理和实现

概念 树状数组或者二叉索引树也称作Binary Indexed Tree,又叫做Fenwick树;它的查询和修改的时间复杂度都是log(n),空间复杂度则为O(n),这是因为树状数组通过将线性结构转化成树状结构,从而进行跳跃式扫描。通常使用在高效的计算数列的前缀和,区间和。 其中a数组就是原数组,c数组则是树状数组,可以发现C1 = A1C2 = A1+A2C3 = A3C4...

2018-07-31 17:26:56 242

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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