- 博客(68)
- 收藏
- 关注
原创 程序员面试金典84题之每日7题 - 最后一天
第一题:单词最近距离题目:有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值)。给定一个string数组article,代表所给文章,同时给定文章的单词数n和待查找的两个单词x和y。请返回两个单词的最短距离。保证两个单词均在文中出现且不相同,同时保证文章单词数小于等于1000。解析:cl...
2021-04-06 00:35:22
353
转载 碰撞检测之 AABB 包围盒
1.包围盒描述包围盒算法是一种求解离散点集最优包围空间的方法。基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。最常见的包围盒算法有AABB包围盒(Axis-aligned bounding box),包围球(Sphere),方向包围盒OBB(Oriented bounding box) 以及固定方向凸包FDH(Fixed directions hulls或k-DOP)。2、AABB包围盒AABB 包围盒就是采用一个长方体将物体包裹起来,进行两个物体的相交性检测时仅检
2020-09-12 16:35:24
19046
5
转载 射线和三角形的相交检测(ray triangle intersection test)
射线和三角形的相交检测(ray triangle intersection test)本位以https://www.cnblogs.com/graphics/archive/2010/08/09/1795348.html为参考,在此感谢原作者,大家也可以直接阅读原版。概述 射线和三角形的相交检测是游戏程序设计中一个常见的问题,最典型的应用就是拾取(Picking),本文介绍一个最常见的方法,这个方法也是DirectX中采用的方法,该方法速度快,而且
2020-09-11 21:35:38
1988
原创 SSPR:踩坑记录
首先贴上大佬的Unity URP 移动平台的屏幕空间平面反射(SSPR)趟坑记幽灵行动荒野中的屏幕空间平面反射GraphicsLab Project 之 Screen Space Planar Reflection从SRP到传统渲染管线注意点:1、深度图的获取 Shader编写时必须加上FallBack “Diffuse”,才能在自定义的shader中加入深度值2、从cpu向gup传值时,必须先在start中使用(RenderTexture) xxx.Create()创建实例,否则GPU不能绑.
2020-08-18 09:31:13
1879
2
原创 KinectDK+Body Tracking
参考文献:1、AZURE KINECT:颜色+深度+身体跟踪(C#/ C ++)2、官方数据结构3、国外开发者的一个很赞的blog4、旧版Kinect2的body tracking5、Kinect 2 Hands On Labs6、KinectDK维基百科
2020-07-26 20:47:37
1368
原创 四元数相关参考
参考文献1、四元数的两种 notation:Hamilton 和 JPL2、四元数与三维旋转3、四元数(Quaternions)与旋转总结4、四元数旋转的物理意义以及代码实现-偏应用向KinectAzureDK编程实战_实时双Kinect标定
2020-06-16 20:00:40
289
原创 二叉树遍历非递归版本
#include <bits/stdc++.h>using namespace std;typedef struct Node* pNode;struct Node { char c; pNode lchild, rchild; Node(char c, pNode lchild = nullptr, pNode rchild = nullptr) : c(c), lchild(lchild), rchild(rchild) {}};pNode build(){
2020-05-21 19:05:07
106
原创 堆排序、归并排序、快速排序
堆排序#include<bits/stdc++.h>using namespace std;//堆排序问题二:如何调整一个堆?void HeapAdjusting(int a[], int root, int n){ int temp = a[root]; int child = 2 * root + 1; //左孩子的位置 while (child < n) { //找到孩子节点中较小的那个 if (child + 1 < n && a[c
2020-05-16 22:43:15
196
原创 《程序员代码面试指南》刷题集合
1、在行列都排好序的矩阵中找指定的数原题链接思路:从右上角或者左下角开始比较,或者用二分查找#include <bits/stdc++.h>using namespace std;int main() { int n, m, k; cin >> n >> m >> k; vector<int> ans(m); vector<vector<int>> tmp(n,ans); for (int i =
2020-05-13 20:15:23
576
原创 全局光照(简述)
一、什么是全局光照全局光照(Global Illumination,简称 GI), 作为图形学中比较酷的概念之一,是指既考虑场景中来自光源的直接光照,又考虑经过场景中其他物体反射后的间接光照的一种渲染技术。即可以理解为:全局光照 = 直接光照(Direct Light) + 间接光照(Indirect Light)图1 Direct illumination (原图连接)图2 Global illumination = Direct illumination +Indirect illumina
2020-05-11 22:05:23
14487
原创 程序员面试金典84题之每日7题 - 第十天
第一题:最小调整有序题目:有一个整数数组,请编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n-m应该越小越好,也就是说,找出符合条件的最短序列。给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的起点和终点。(原序列位置从0开始标号,若原序列有序,返回[0,0])。保证A中元素均为正整数。测试样例:[1,4,6,5,9,10]...
2020-04-25 21:10:26
426
原创 程序员面试金典84题之每日7题 - 第九天
第一题:维护x的秩题目:现在我们要读入一串数,同时要求在读入每个数的时候算出它的秩,即在当前数组中小于等于它的数的个数(不包括它自身),请设计一个高效的数据结构和算法来实现这个功能。给定一个int数组A,同时给定它的大小n,请返回一个int数组,元素为每次加入的数的秩。保证数组大小小于等于5000。测试样例:[1,2,3,4,5,6,7],7返回:[0,1,2,3,4,5,...
2020-04-25 19:41:09
268
转载 转:拜托,别再问我贪心算法了!
转自 原文前言本文将会从以下几个方面来介绍贪心算法什么是贪心算法贪心算法例题详题贪心算法适用场景再看三角形最短路径和是否能用贪心算法求解什么是贪心算法贪心算法是指在每个阶段做选择的时候都做出当前阶段(或状态)最好的选择,并且期望这样做到的结果是全局最优解(但未必是全局最优解)贪心算法其实是动态规划的一种,由于它的「贪心」,只着眼于当前阶段的最优解,所以每个子问题只会被计算一次...
2020-04-23 16:57:09
167
原创 华为2016研发工程师编程题
题目链接[编程题]删数有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。输入描述:每组数据为一...
2020-04-17 23:17:53
188
原创 华为研发工程师编程题
题目链接[编程题]汽水瓶有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少...
2020-04-17 20:53:22
142
原创 常见算法——七大查找算法和八大排序
目录查找算法摘要七大查找算法排序算法摘要八大排序算法查找算法摘要 查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。树表查找和哈希查找会在后续的博文中进行...
2020-04-16 19:21:31
1999
原创 程序员面试金典84题之每日7题 - 第六天
第一题:平分的直线题目:在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分。假定正方形的上下两条边与x轴平行。给定两个vecotrA和B,分别为两个正方形的四个顶点。请返回一个vector,代表所求的平分直线的斜率和截距,保证斜率存在。测试样例:[(0,0),(0,1),(1,1),(1,0)],[(1,0),(1,1),(2,0),(2,1)]返回:[0.0,...
2020-04-15 17:14:29
276
原创 程序员面试金典84题之每日7题 - 第五天
第一题:整数转化题目:编写一个函数,确定需要改变几个位,才能将整数A转变成整数B。给定两个整数int A,int B。请返回需要改变的数位个数。测试样例:10,5返回:4解析:第二题:奇偶位交换题目:请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)给定一个int x,请返回交换后的数int。测试样例:10返回:5解析:第三题:找出...
2020-04-15 13:22:44
226
转载 剑指Offer66题之每日6题 - 最后一天
第一题:序列化二叉树题目:请实现两个函数,分别用来序列化和反序列化二叉树解析:第二题:二叉搜索树的第k个结点题目:给定一颗二叉搜索树,请找出其中的第k大的结点。例如 5 / \ 3 7 /\ /\ 2 4 6 8按结点数值大小顺序第三个结点的值为4。如何得到一个数据流中的中位数?如果从数据流...
2020-04-13 12:16:11
122
转载 剑指Offer66题之每日6题 - 第十天
第一题:链表中环的入口结点题目:一个链表中包含环,请找出该链表的环的入口结点。解析:第二题:删除链表中重复的结点题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为1->2->5解析:第三题:二叉树的下一个结点题目:...
2020-04-13 12:15:11
117
原创 程序员面试金典84题之每日7题 - 第二天
第一题:翻转子串题目:假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:“Hello worl...
2020-04-12 15:30:30
392
原创 程序员面试金典84题之每日7题 - 第一天
第一题:确定字符互异题目:请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。测试样例:“aeiou”返回:True“BarackObama”返回:...
2020-04-12 00:23:53
236
转载 剑指Offer66题之每日6题 - 第九天
第一题:把字符串转换成整数题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0解析:第二题:数组中重复的数字题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,...
2020-04-10 00:05:12
138
原创 网易游戏(互娱)2019年-游戏测试开发工程师部分真题
2、10000个人背上依次贴着从1到10000的编号,他们从小到大依次报数,偶数出列,一圈后,从剩下的5000人再次从号码小的开始报数,偶数出列,直到没人出列为止。问最后一次出列的人,背上的编号是多少?解析:第一次走出后留下的人的数字都是2n-1<10000第二次走出后留下的人的数字都是4n-1<10000第三次走出后留下的人的数字都是8n-1<10000…第m次走...
2020-03-28 20:34:42
1949
原创 网易游戏(互娱)2019年-游戏研发/初级游戏研发/平台开发岗部分真题
原题链接1、[编程题]时钟小W有一个电子时钟用于显示时间,显示的格式为HH:MM:SS,HH,MM,SS分别表示时,分,秒。其中时的范围为[‘00’,‘01’…‘23’],分的范围为[‘00’,‘01’…‘59’],秒的范围为[‘00’,‘01’…‘59’]。但是有一天小W发现钟表似乎坏了,显示了一个不可能存在的时间“98:23:00”,小W希望改变最少的数字,使得电子时钟显示的时间为一个...
2020-03-27 16:13:10
713
原创 网易游戏(互娱)2020校招在线笔试-游戏研发第一批-笔试编程题
[编程题]二进制计数-研发小A刚学了二进制,他十分激动。为了确定他的确掌握了二进制,你给他出了这样一道题目:给定N个非负整数,将这N个数字按照二进制下1的个数分类,二进制下1的个数相同的数字属于同一类。求最后一共有几类数字?输入描述:输入的第一行是一个正整数T(0<T<=10),表示样例个数。对于每一个样例,第一行是一个正整数N(0<N<=100),表示有多少个数字...
2020-03-26 17:22:23
4077
8
转载 剑指Offer66题之每日6题 - 第八天
第一题:左旋转字符串题目:汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!解析:第二题:翻转单词顺序列题目:牛客最近来了一个新员工Fish,...
2020-03-25 20:48:55
115
转载 剑指Offer66题之每日6题 - 第七天
第一题:数字在排序数组中出现的次数题目:统计一个数字在排序数组中出现的次数。解析:第二题:二叉树的深度题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解析:第三题:平衡二叉树题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。解析:第四题:数组中只出现一次的数字题目:一个整型数组...
2020-03-25 20:17:37
92
转载 剑指Offer66题之每日6题 - 第六天
第一题:整数中1出现的次数题目:求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。解析:第二题:把数组排成最小的数题目:输入一个正整数数组,把数组里所有数...
2020-03-23 20:15:08
110
转载 剑指Offer66题之每日6题 - 第五天
第一题:复杂链表的复制题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解析:第二题:二叉搜索树与双向链表题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结...
2020-03-21 13:33:19
118
转载 剑指Offer66题之每日6题 - 第四天
第一题:顺时针打印矩阵题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解析:代码实现回字矩阵的规则class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix) { vector<int> res; int up...
2020-03-17 22:30:32
261
转载 剑指Offer66题之每日6题 - 第三天
第一题:调整数组顺序使奇数位于偶数前面题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解析:这里是引用第二题:链表中倒数第k个结点题目:输入一个链表,输出该链表中倒数第k个结点。解析:这里是引用第三题:反转链表题目:输入一个链表...
2020-03-17 22:28:19
70
转载 剑指Offer66题之每日6题 - 第二天
第一题:斐波那契数列题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。解析:斐波拉契数列的定义:F0=0,F1=1;Fn=Fn−1+Fn−2 (n≥2)用f1, f2分别表示 Fi−2, Fi−1,用ret表示FiFi,每次令ret = f1 + f2,sum就表示Fi得到Fn,然后把f1, f2分别更新为Fi−1, F...
2020-03-16 22:57:16
120
转载 剑指Offer66题之每日6题 - 第一天
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
2020-03-16 21:24:52
145
原创 leetcode刷题121. 买卖股票的最佳时机
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...
2020-03-12 19:54:19
135
原创 leetcode刷题628. 三个数的最大乘积
题目描述:给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。示例 1:输入: [1,2,3]输出: 6示例 2:输入: [1,2,3,4]输出: 24注意:给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。来源:力扣(LeetCode)链接:ht...
2020-03-12 16:41:45
253
转载 转:一文学会动态规划解题技巧
前言动态规划(dynamic programming,简称 dp)是工程中非常重要的解决问题的思想,从我们在工程中地图软件上应用的最短路径问题,再在生活中的在淘宝上如何凑单以便利用满减券来最大程度地达到我们合理薅羊毛的目的 ,很多时候都能看到它的身影。不过动态规划对初学者来说确实比较难,dp状态,状态转移方程让人摸不着头脑,网上很多人也反馈不太好学,其实就像我们之前学递归那样,任何算法的学习都是...
2020-02-23 16:38:25
154
原创 leetcode刷题面试题 10.09. 排序矩阵查找
题目描述:给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]给定 target = 5,返回 ...
2020-02-22 20:57:09
249
转载 转:一文学会递归解题
前言递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面试官很喜欢的考点最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等...
2020-02-22 13:13:04
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人