- 博客(61)
- 资源 (3)
- 收藏
- 关注
原创 算法出题点整理
一、贪心算法1、分配问题2、区间问题二、双指针1、Two Sum 问题2、归并两个有序数组3、快慢指针4、滑动窗口三、二分查找1、开平方2、查找区间3、旋转数组查找数字四、排序算法1、常用排序2、快速排序3、桶排序五、搜索算法1、深度优先搜索2、广度优先搜索3、回溯法六、动态规划1、一维动态规划2、二维动态规划3、分割类问题4、子序列问题5、背包问题6、字符串编辑7、股票问题七、分治算法1、表达式问题八、数学问题1、公倍数与公因数2、质数3、
2021-04-04 17:28:24 152
原创 C++ leetcode刷题代码模板
一、二分查找二、排序三、BFS四、DFS五、回溯法六、树1、递归2、迭代3、前序遍历4、中序遍历5、后序遍历七、构建完全二叉树八、并查集九、前缀树十、图遍历1、Dijkstra 算法2、Floyd-Warshall 算法3、Bellman-Ford 算法十一、最小生成树1、Kruskal 算法2、Prim 算法十二、拓扑排序十三、双指针十四、动态规划1、状态搜索2、贪心...
2021-04-04 16:50:14 1083
原创 Breakout——渲染精灵
一、简介1、概念渲染精灵 = 2D图片 + 摆放属性(位置、旋转角度、二维大小)二、详解1、2D投影矩阵(1)投影矩阵:把观察坐标转化为标准化设备坐标。(2)示例:glm::mat4 projection = glm::ortho(0.0f, 800.0f, 600.0f, 0.0f, -1.0f, 1.0f);2、渲染精灵顶点着色器:#version 330 corelayout (location = 0) in vec4 vertex; // <vec2 positio
2021-02-15 21:46:57 148
原创 OpenGLL——坐标空间整合
一、简介1、物体定点转化为屏幕坐标经过的坐标系统。(1)局部空间(Local Space)或物体空间(Object Space)(2)世界空间(World Space)(3)观察空间(View Space)或视觉空间(Eye Space)(4)裁剪空间(Clip Space)(5)屏幕空间(Screen Space)2、变换矩阵(1)三个重要变换矩阵: 模型(Model)、观察(View)、投影(Projection)。(2)变换过程:(3)意义: 将整个变换分成三个,是为了增加灵活性
2021-02-15 20:15:36 168
原创 Breakout——准备工作
一、总述1、简介本章节主要讲述整个项目的基本框架,后面工作将会在这个基本框架上添加内容。2、基本框架:(1)超级游戏类: 包含所有的渲染和游戏代码,主要工作是管理游戏代码和将窗口代码从游戏中解耦。(2)工具类: 包含频繁重用的OpenGl概念,如纹理、着色器等,主要工作是为两个元素创建更加易用的接口。(3)资源管理: 主要工作是将工具类的文件处理部分(着色器等程序都是放在单独的文件中,还包括纹理图像等文件)抽离出来,来保障工具类的单一职责原则。注意:这个类是个静态类(单一实例的静态资源管理器),
2021-02-15 16:22:44 191
原创 算法练习题43——不严格递增数组,删掉出现次数大于K的数字,禁止使用而外内存
分析: 定义三个指针,一个遍历,一个对比,一个存储。当遍历指针与对比指针的值不一样时,计算两者之间距离是否大于K,来判断对比指针所指数据是否要保留,如果要保留,用存储指针进行保留。因为没有测试数据,不知道此方法是否有缺漏,希望大家指正代码:int main(){ // 测试数据 vector<int> nums{1,2,2,3,3,3,4,4,4,4,5,6,6}; // K的值 int K = 4; // i为存储指针,j为对比指针,k为遍历指针 i
2021-02-08 20:29:14 206
原创 算法练习题34——无序数组,求三个数的最大积
分析: 要考虑正负情况,真正影响结果的是五个数字,分别是最大的三个数,和最小的两个数。最大值应该为三个最大数字的积,或者最大数字与最小两个数字的积。这道题,没有找到用来测试的数据,我并不清楚答案对不对,欢迎大家指正。代码:int main(int argc, char* argv[]){ // 测试数据 vector<int> nums{-5,-6,-7,0}; // 保存三个最大数和两个最小数,容器设置的大一点是为了方便排序 vector<
2021-02-05 16:05:47 296
原创 算法练习题15——找出数组中每个元素的后一个比它大的值
测试用例(从网上找到了两个):如数组A=[1,5,3,6,4,8,9,10] 输出[5, 6, 6, 8, 8, 9, 10, -1]如数组A=[8, 2, 5, 4, 3, 9, 7, 2, 5] 输出[9, 5, 9, 9, 9, -1, -1, 5, -1]分析:用个栈,大的在下,小的在上。当检索到一个数字,比较该数字与top的大小,大的话就记录。最坏的时间复杂度是O(2n),即O(n)。代码:vector<int> getMaxArray(vector<int> n
2021-01-18 23:07:27 1231
原创 算法练习题11 n位数删k位,使剩下的数最小
分析:这道题的难点在分析,怎样删除可以使数字最小,答案是当第i位比第i+1位大的时候,删除较大位可以使数字较小,当没有i > i+1时,删除最后面几位,整个数字最小。该方法可以使用贪心。代码:string getMin(string str,int k){ string::iterator start; bool flag; for(int i = k;i > 0;--i){ flag = false; // 删除一个第i位大于第i+
2021-01-17 20:18:24 281
原创 算法练习题4 最长连续序列
力扣 128. 最长连续序列分析:这道题稍微有些难度,虽然一开始也想到了要使用map,但是没有答案中使用的那么灵活。这道题的思路是,先遍历以便数组,使用set记录数据并去重;然后再遍历一遍数组,这次遍历中,寻找连续数列的最小起始点,然后计数。更困难的是,最长不连续,该如何实现呢?代码:class Solution {public: int longestConsecutive(vector<int>& nums) { unordered_set<i
2021-01-15 14:18:32 126
原创 算法练习题3 最长连续递增序列
力扣674. 最长连续递增序列分析:这道题不算难,略。代码:class Solution {public: int findLengthOfLCIS(vector<int>& nums) { if(0 == nums.size()){ return 0; } int maxLength = 0; int count = 0; int length = nums.si
2021-01-15 14:11:49 129
原创 算法练习题2 链表实现队列
力扣里面没找到这道题,我们用剑指 Offer 09. 用两个栈实现队列写一下代码。分析:1、基础:链表插入删除,这是基本操作;2、head指针:为了方便删除第一个数据,维护一个head;3、一个指向end的指针:尾部插入,每次都找到尾部那不是很麻烦;4、维护指向end的指针:删除的过程中,end可能被删除掉,要让end再指向head。代码:class CQueue {// 我们用的链表结构struct ListNode{ int val; ListNode* next;
2021-01-13 21:06:34 104
原创 算法练习题1 栈排序
力扣 面试题 03.05. 栈排序分析:这道题并不难,用两个栈,一个保存数据,另一个辅助存储,考虑到题目中要求最多只能使用临时栈,所以我在插入中使用了临时的栈,没有使用成员变量栈。代码:class SortedStack {public: SortedStack() { // 清空栈 while(!st.empty()){ st.pop(); } } void push(int val) {
2021-01-13 20:59:53 163
原创 C++ 泛型算法检索
一、常用泛型算法检索表1、搜索算法(search algorithm)find():find(istreambuf_iterator<_CharT> __first, istreambuf_iterator<_CharT> __last, const _CharT& __val);find_if():find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred);count(
2021-01-12 11:31:57 361
原创 ubuntu vnc 已经配置好,一键开启,节省大家时间
1、粘贴复制自己找个目录复制过去2、修改权限sudo chmod 777 x0vncserver3、开启x0vncserver -rfbport=5900 -SecurityTypes=None下载地址:
2020-10-16 19:49:46 334
原创 Vtk转obj
全是文件操作,没什么困难的,稍微有点坑是obj的face对应的vertex的idx要加1,下面上代码。#include <iostream>#include <string>#include <fstream>#include <vector>#include <OpenMesh/Core/IO/MeshIO.hh>#include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>.
2020-10-07 14:54:12 1251 1
原创 OpenGL_深度测试_线性深度值
一、非线性深度值这是默认的,非线性深度值可以保证,在近处得深度值精度高,在远处得深度值精确度低,更有实际意义,方程如下:变化图如下:接下来,从练习得角度,来改成线性。二、线性深度值先看方程:变化图:变换思路:(1)将坐标变换回标准化设备坐标(裁剪空间)(2)反转方程代码如下:#version 330 coreout vec4 FragColor;float near = 0.1; float far = 100.0; float LinearizeDepth(fl
2020-09-24 16:01:47 804
原创 一种基于改进SURF和K-Means聚类的布料图像匹配算法
一、摘要传统方式:通过提取布料图像的SURF特征进行形状分析。缺点:速度慢(SURF特征维度高)、匹配结果不符合人眼视觉特点(基于灰度图)。本文:基于小波变换的自适应SURF特征提取算法和基于K-Means的布料图像颜色分析算法。通过融合图像形状特征、颜色特征加快布料匹配速度,使结果更见符合人眼视觉感受。二、背景常见图像匹配思路:基于灰度图像的匹配、基于特征图像的匹配。基于灰度的图像匹配:根据全局最优化像素间的相似度来度量。基于特征的图像匹配:提取图像特征点实现匹配。三、算法简介1、SURF
2020-08-23 21:52:54 827 2
原创 好资料记录
一、网站1、学习githttps://learngitbranching.js.org/?locale=zh_CN2、刷题-力扣英文版https://leetcode.com/explore/3、正则表达式https://regexr.com/https://regexone.com/4、SQLhttps://sqlzoo.net/
2020-07-30 10:12:01 83
原创 力扣刷题C++常用数据结构及函数记录
一、数据结构1、待定二、函数1、数组初始化函数int[] dp = new int[nums.length];Arrays.fill(dp,1);
2020-07-30 10:04:07 726
原创 《labuladong算法小抄》压缩整理-第零章:框架结构之数据结构
《labuladong算法小抄》压缩整理-第零章:框架结构之数据结构一、存储方式1、根本存储方式:数组(顺序存储)、链表(链式存储)2、【队列】、【栈】3、【图】4、【散列表】:用散列函数把键映射到一个大数组5、【树】6、总结二、基本操作1、基本操作:遍历+访问,具体一点---增删查改。2、不同数据结构存在价值:应对不同场景,尽可能高效。3、遍历+访问的两种形式:线性(for + while迭代)和非线性(递归)。4、常用框架4.1 数组遍历框架(线性迭代):4.2 链表遍历框架(迭代和递归):4.3 二叉
2020-07-16 16:07:50 677
原创 工具类-图像Kmeans聚类分割、K均值图像分割
opencv做的,直接用即可,方便,用法看下图:使用方法:#include <iostream>#include "Kmeans.h"using namespace std;using namespace cv;int main(){ Mat pic = imread("original.png"); pic = Kmeans::getKmeansImage(pic, 2); imwrite("0000.png", pic); return 0;}
2020-05-15 16:50:27 164
原创 《代码整洁之道》 第一章:整洁代码
1.2 糟糕的代码 勒布朗(LeBlanc)法则:稍后等于永不(Later equals never)。1.3.4 整洁代码的艺术 “整洁感”:它不仅让我们看到代码的优劣,还予我们以借戒规之力化劣为优的攻略。 “代码感”:缺乏“代码感”的程序员,看混乱是混乱,无处着手。有“代码感”的程序员能从混乱中看出其他的可能与变化。“代码感”帮助程序员选出最好的方案,并...
2020-02-25 14:50:50 375
转载 windows下编译LAPACK
测试了,很好用。Download lapack.tgz from herehttp://netlib.org/lapack/lapack.tgz Extract to a folder. I used 7zip file manager to extract the tarball to x:/Other/test Install mingw32. I used this:http:/...
2019-09-27 10:57:12 615
C51入门(包括源码与部分图片及指导手册)
2018-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人