- 博客(220)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 算法基础(二):栈的应用--迷宫解题(超详细版!)
算法基础(二):栈的应用--迷宫解题(超详细版!)。(注:为了不离开本节讨论的重点--栈,迷宫的自动生成以后重新写。这里用简单的二维数组代替,手动迷宫,呵呵!)MAP里面0代表墙(通不过),1代表空格(可通过)代码中每一步有详细注释。欢迎大家交流,嘻嘻。
2014-02-28 14:13:24
4653
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 用Unity进行网络游戏开发(一)
使用Unity3D进行网络游戏开发一.Unity3d简介 Unity3d是时下比较流行的一款游戏引擎,流行是因为用它做游戏很方便,无论是3d还是2d都会有非常好的效果, 即便某些朋友不懂编程,也可以通过Unity自带的组件做出一些简单的诸如三维视频游戏、建筑可视化、实时三维动画 等类型的小作品。在正式发布前,Unity经历的多年的开发阶段,Gooball在2005三月发布,
2014-02-23 14:10:11
9232
原创 Kmeans基本思想以及和SVM的区别
由于最近要用到该算法,但是发现算法的思想基本忘掉了,只知道是聚类算法,因此又回头去学习了一番,记录下学习的感受,方便以后复习。 Kmeans算法的基本思想:看如下图,假设要把这些点分成三类,首先随机的选择3个点作为三个类别的中心点,然后依次计算其余所有的点到这三个中心点的距离,如果x点(非中心点)到center i (i = 0,1,2)的距离最小,那么x就是i类的,然后对于每一个
2017-11-21 19:23:45
8052
原创 回溯算法的理解与使用
最近在做题的过程中发现很多我不会的题目的解决方法都使用了回溯算法的思想,说明我对这个算法目前掌握的还不够牢固,因此今天花时间来好好了解这个算法。 回溯算法是一种算法思想,而递归则是具体的代码结构。 就我的学习感受:回溯算法就是树结构的思维过程。 图示: 回溯算法解决问题的例子:n皇后问题,0-1背包问题,货郎问题。
2017-11-16 16:21:43
3547
1
原创 leetcode33题解_Search in Rotated Sorted Array
题意:要在一个排好序的但是旋转过的序列中找给定的数字。 (通常的题目是,比如:1,2,3,4,5,6,7.找这组序列中是否有7这个数,但是这个序列在这个题目中是旋转过的,但是按哪个位置旋转不知道,比如旋转后是:4,5,6,7,1,2,3.要在这个序列中找7,题目就要求我们写算法来找是否有这个数字) 我的思路: 直接遍历一遍,O(n)复杂度-_-。
2017-11-15 15:28:07
460
原创 leetcode31_Next Permutation
这道题的题目含义是:给你一串数字{1,2,4,4,6},这串数字按从前往后组的成一个数就是:12446,(假设这几个数排列组合得到的一个集合为X),要求你用这几个数字得到一个新的数字,这个新的数字要比1244大,并且是X中所有比12446大的最小数,即:14246成立。如果没找到比它大的,则输出能得到最小数的一个组合。 求解思路:因为要找下一个比它大的最小数字,倒序遍历数组,设置两
2017-11-14 16:09:26
344
原创 leetcode-22-生成括号
题目给出括号的对数,要求我们生成正确匹配的括号字符串。 具体题意看leetcode吧,这里给出解题思想。 由于我们要找出所有满足条件的解,答案是一个解集,因此此题可以采用回溯法来解决。 “回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向
2017-11-13 15:33:26
3119
2
原创 leetcode17-根据数字找到可能的按键字母组合
/*这个解法是比较巧妙的*/vector letterCombinations(string digits) { vector res; string charmap[10] = { "0", "1", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" }; res.push_back("");//此时res的size=
2017-11-13 14:33:17
483
原创 leetcode19--删除链表中倒数第n个节点
友情提示,刷leetcode题目的时候,先刷支持率高的题目,这些题目的质量好,我现在按照top 100 like这个列表中的顺序刷题,先把hard以下的刷完。 今天的第二题:删除链表中倒数第n个元素,要求最好是只遍历一遍。难度:中等。 我:只遍历一遍?但是不知道链表的长度,怎么在一遍之内找到呢?(如果是第一次做这个题目的同学估计会和我有)相同的疑问把。所以,该怎
2017-11-10 15:53:38
1334
原创 leetcode第11题带来的关于人生的反思
LeetCode上有些题目有点不够友好,比如第7题:string转int,测试case里面居然给了“input:+-2 , output: 0”这种类型,有啥意义??什么规则?而且题目最开始又不说这些规则,每次提交又特殊案例,disscuss里面对这道题的评价也很低,没啥意思,所以优先做支持率高的题目把。 于是今天做第11题,题目大意是:(图) 我
2017-11-09 16:43:15
698
转载 windows程序崩溃生成dump文件
第一种: 通过任务管理器:这种适用在程序挂了(crash)的时候进程还未退出,比如我运行程序,出现了下面的错:此时打开任务管理器,右击相应进程,点击"Create Dump File“:一会创建完成:然后把这个DMP文件拷到开发机器上,用VS打开: 会出现下面的界面,要想知道发生错误时候的调用栈,需要设置symbol的路径,点
2017-11-09 10:10:26
2827
原创 leetcode 7—— integer reverse
我的代码: //必须要分离出每一位,而这个只能通过除10//如果是负数,那么乘以-1变成正数处理,之后再乘-1回去即可//所以现在考虑正数情况就可以了int reverse(long num){ bool sig = false; if (num >= INT_MAX || num <= INT_MIN) return 0; if (num < 0) { num
2017-11-08 13:05:31
335
原创 leetcode 6—— zjgzag conversion
看了大神的代码,我才知道....有如醍醐灌顶! 题意是给了一串字符,这串字符是按照zigzag--锯齿方式排列的,我们需要按人类一行行的方式去读这个字符串。 我的思路:这就是个找规律的题目阿,我的想法是将源字符串填充到一个二维矩阵当中,然后一行行的去读矩阵就好了,那么问题的关键就是如何填充这个矩阵,也就是要找到字符的位置和矩阵元素位置的关系。就以3行的zigzag为例,
2017-11-07 20:20:57
315
原创 leetcode 5—— Longest Palindromic Substring
这道题是求字符串中的最长回文字符串。 回文字符串就是从前面读与从后往前读是一样的。 一看到题目,我就开始想,既然这样,那我就从前往后扫描字符串,既然回文,那肯定头尾一样,我找到一头一尾,根据头尾的位置,然后判断剩余的部分,从头往后,从尾往前,再一个个判断。 因此,代码如下: string longestPalindrome(string s)
2017-11-07 15:43:34
298
原创 leetcode 4——Median of Two Sorted Arrays
这道题很难,看了别人的代码都还搞了一天阿。。。 记录一下解题思路。 首先要区分中位数,不是平均数!该题是要找中位数,如果序列是奇数个,那么直接取中间的,如果是偶数个,那么取中间的两个数的平均数,所以,核心问题是,如何把两个排好的序列整合成一个序列,并且时间复杂度要求低于:o(log(m+n))。 既然要求算法时间复杂度在log级别,那肯定和二分
2017-11-06 19:54:17
830
原创 leetcode problem solve 3——Longest Substring Without Repeating Characters
这道题我直接看disscuss了-_-,原因是我对字符串操作很陌生-_-.....看完disscuss代码后,发现字符串的处理没有我想象的那么不能接受,其实背后还是数字嘛(ascii),不要怂,不要怕,下次遇到字符串的题没理由逃避了。 disscuss里的那个9行c++代码解决这个问题的思路是很好的。 下面是代码的分析: //寻找最长的子字符串的长
2017-11-06 10:28:12
292
原创 leetcode problem solve 2——Add Two Numbers
题意就不再赘述了,这里主要总结一下解题过程中感触比较深的地方。 这道题仅仅是medium水平,但是我却做了两个多小时.....我觉得主要原因是我一开始觉得很简单,然后一上来就写代码,没有做好前期的问题剖析工作,导致后面每次提交都出现不同的案例测试无法通过,然后真的就慌乱了,心想:这种问题我居然都无法控制住??!!然后心态就崩了....开始焦躁,又试图使自己再次专注解题。做人真的不能
2017-11-05 17:34:24
300
原创 leetcode problem solve 1——Two Sum
这道题目难度级别:easy。 题意是给定一个整形数taget和一个vectorarr,这个target是arr中两个数求和的结果,要求返回arr中这两个数的索引号。 我的解题思路是:(talk is cheap,直接show code吧) class Solution {public: vector twoSum(vector& nums,
2017-11-05 14:35:26
267
原创 C++11新特性学习笔记—委托构造函数的使用
#include#include#include/*委托构造函数的使用情景:当一个类中存在大量构造函数1,2,3,4....且1,2,3,4...直接按存在大量相同操作的时候,可以抽象出一个公共的操作--形成委托构造函数,以此降低代码量*/using namespace std;class TDConstructed{ //抽象出通用的--委托构造函数 template T
2017-11-03 20:03:24
377
原创 C++11新特性学习笔记—继承构造函数的使用
/*为了避免透传接口,在c++中使用using 关键字如果派生类要使用基类的成员函数的话,可以通过使用using声明来完成*/#includeusing namespace std;class Base{public: Base(); Base(int i) :m(i) {} int m; void f(double x) { cout << "base x = " <<
2017-11-03 19:41:21
346
原创 C++11新特性学习笔记—final和override关键字
一、final关键字 为什么c++现在才提供final这个关键字?很奇怪。 和Java一样,c++中的final关键字是用来修饰一个函数,防止这个函数被子类重写。 二、override关键字 这个关键字作用蛮大的。在C++中,有父类A,子类B,父类中有虚函数x,子类B继承
2017-11-03 15:26:36
1703
原创 C++11新特性学习笔记—noexcept关键字
//动态异常声明thro由于很少使用,在c++11中被弃用了//表示函数不会抛出异常的动态异常声明throw()也被新的noexcept异常声明所取代//noexcept修饰的函数不会抛出异常//在c++11中,如果noexcept修饰的函数抛出了异常,编译器可以选择直接调用std::terminate()//来终止程序的运行,这比基于异常机制的throw()在效率上会高出一些。//使用
2017-11-03 14:28:38
3350
原创 C++11新特性学习笔记—long long
C++11整型的最大改变就是加入了long long。#include #include using namespace std;int main(){ long long ll_min = LLONG_MIN; long long ll_max = LLONG_MAX; unsigned long long ull_max = ULLONG_MAX; printf("m
2017-11-03 10:24:36
610
原创 C++11新特性学习笔记—变长参数的宏定义以及__VA_ARGS__
在C99标准中,我们就已经可以使用变长参数的宏定义。变长参数的宏定义是啥??就是在宏定义的参数列表的最后一个参数为省略号。而现在C++ 11 中,可以使用预定义宏__VA_ARGS__可以在宏定义的实现部分替换省略号所代表的字符串。 EX: #include //定义LOG宏来记录代码位置中一些信息,程序员可以根据stderr产生的日志追索到代码中产生//这些记录的位
2017-11-03 10:03:52
3550
原创 unity解决快速运动物体碰撞检测穿透问题
在Unity中,快速移动的物体在与其他物体进行碰撞检测时,可能会穿透。比如子弹和墙壁的碰撞检测。 如何解决这个问题呢? 网上看了下,有说Rigidbody修改continus的,但是我试了下,效果不好,还是会出现穿透的情况。 所以,我准备采用其他方法。 思路如下:发射子弹之前,先发射射线,记录下射线与墙壁的碰撞点,然后再发射子弹,在碰撞点出特效。
2017-10-15 12:45:54
28480
1
原创 快速理解c++编译器名称查找规则koenig lookup(ADL)
示例代码深入浅出让你快速理解c++编译器名称查找规则koenig lookup(ADL)
2017-10-11 09:56:04
1532
原创 MFC新手使用小结
首先,很多人黑MFC,我觉得这是不对的,他们老是说MFC复杂,过时。复杂暂且不说,过时我不认同,只要能做出合格的效果,最终用户才不会去管你用的MFC还是QT,MFC没有过时,它可以做出我想要的效果,而且不费劲。 小结一下最近使用MFC的经验,方便以后再使用。 新建一个win32项目,注意不是新建MFC应用程序,因为后者太大了,前者轻量级。 新建完项目后,开始添加
2017-10-11 09:24:09
1496
原创 C语言Socket图片传输中的图片保存问题
需求描述:客户端发送指定图片到服务器上,服务器保存该图片,保存名字为当前系统时间。 实现中遇到的问题:因为在传输图片过程中,服务器需要持续性的将获得的数据保存起来,怎么保存呢?可以write到文件中,或者保存到某一个数组中?讨论前者,如果保存到文件中,那么如果客户端要发送多个图片,那每次都写入到同一个文件中了,怎么解决这个问题。 解决方法:在传输过程中,依然先把该图片保存到
2017-09-13 15:03:00
3823
1
原创 windows下cuda7.5卸载方法
百度一直没找到卸载方法,于是看了下官方文档,文档里说,直接从windows控制面板即可卸载。原来如此。 搞定!
2017-09-08 21:09:32
9862
2
原创 C++ :error LINK2005:函数XXX已经在main.obj中定义--解决方法
我的情况是这样的: 我在头文件中定义了一个函数,然后这个函数被其他函数引用。但是编译的时候死活通不过,一直报错:error LINK2005,费了好大力气-_-才解决。#include "aabb.h"#pragma once#define M_PI 3.14159aabb surrounding_box(aabb box0, aabb box1) { vec3 smal
2017-09-07 09:42:00
13172
3
原创 C获得当前系统时间
void printCurrentTime(){ time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t = localtime(&tt); printf("\n%d-%02d-%02d %02d:%02d:%02d\n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour,
2017-09-05 15:33:21
1391
2
原创 opengl雾效问题解决
问题:在加入了天空盒子之后,可以看到,图中的雾效是非常不真实的,因为在有雾的情况下, 站在观察者的角度,远处的物体应该是由近及远越来越模糊的,而这幅图完全没有表现出这个特点。解决方法:原理,正如前面所说,越是靠近地面的物体,雾越浓(也就是越能表现出雾的颜色),往高处,才会慢慢凸物体,最上层(超过某个高度)则是物体本身的颜色或者天空盒子的颜色,如下图所示:因此
2017-09-01 20:17:27
981
1
转载 C++ 取得系统当前时间
原文:点击打开链接#include //* 方法一 time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t= localtime(&tt); printf("%d-%02d-%02d %02d:%02d:%02d\n", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
2017-08-03 21:51:16
510
原创 场景管理方法之BVH介绍
总结一下最近学习BVH的知识。 BVH全称:Bounding volume hierarchy。这是一种用来管理3D场景中物体的方法。 我主要是在光线追踪算法中用这个方法来做加速,因为光线追踪算法的计算要求非常高,稍微好点的画质,至少要求每像素达到上千的采样数量。简单介绍下光线追踪算法:从相机发射射线到场景中与场景中物体进行相交检测,如果碰撞检测成功,则根据物体的材质计算颜
2017-08-01 23:32:38
15644
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人