Richbabe Blog

立志成为一个游戏开发者.

LeetCode75_Sort Colors

题目 题目地址:LeetCode 75:Sort Colors 思路 这一题也被称为荷兰国旗问题,是可以通过双指针的方法在O(n)的时间复杂度和O(1)的空间复杂度解决的。具体思路如下: 在数组左侧设置0区域为-1,右侧设置2区域为n 从前到后遍历数组,如果当前数为0的话,与0区域的下一个位置进行交换 3.然后让0区域往右扩大即+1 同理当前数为...

LeetCode72_Edit Distance

题目 题目地址:LeetCode 72:Edit Distance 思路 这一题可以用动态规划的方法来做。 首先来定义dp矩阵 定义dp[i][j]:word1这个字符串的前i个字符转换成word2的前j个字符所需要的最小步数 接着要设定一下状态转移方程,一共有以下几种情况: 当word1[i - 1] == word2[j - 1]时(注意这里的-1,因为i和j表示...

LeetCode71_Simplify Path

题目 题目地址:LeetCode 71:Simplify Path 思路 这道题我们可以用C++的库函数getline来将’/’(或者’//’)之间的字符串分隔开。 getline()的原型是istream& getline ( istream &is , string &str , char delim ); 其中 istream &is 表示一个...

LeetCode200_Number of Islands

题目 题目地址:LeetCode 200:Number of Islands 思路 方法一:DFS 将遍历过的置为0,每次往上下左右四个方向进行dfs遍历。 代码如下: class Solution { public: int numIslands(vector<vector<char>>& grid) { int row = ...

LeetCode215_Kth Largest Element in an Array

题目 题目地址:LeetCode 215:Kth Largest Element in an Array 思路 方法一:排序后取出第K大的数 时间复杂度为O(nlogn) 直接调用sort函数获取第K大的数。 代码如下: class Solution { public: int findKthLargest(vector<int>& nums, ...

LeetCode60_Permutation Sequence

题目 题目地址:LeetCode 60:Permutation Sequence 思路 一开始使用了backtracking的方法构造出全排列,当构造出第K个排列时返回,此时显示超时!代码如下: class Solution { public: int count = 0; string getPermutation(int n, int k) { ve...

Unity内存管理

前言 上一篇博客中讲了Unity资源加载,这篇博客来看看Unity的内存管理,转自Unity 3D中的内存管理 Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙上一两百兆,导致内存资源耗尽,从而被系统强退造成极差的体验。 虽然Unity标榜自己的内存使用全都是“Managed Memory”,但是事实上你必须正确地使用内存,以保证回收机制正确运行。...

Unity资源加载

前言 由于Unity在手机以及其他平台很容易出现占用内存太大的问题,因此对于Unity本身的内存管理和优化是很有必要了解的,这篇博客主要内容来源于Unity3D占用内存太大的解决办法,外加我自己通过搜索资料总结的见解。(因为刚入门能力有限,所以大部分资料来自于网上各博客,如果侵权可以联系我删除) Unity资源类型 Unity资源类型如下: Unity内置的常用asset,比如fbx...

UGUI优化汇总

前言 相信每个刚刚步入游戏行业的新人第一个接触的便是写UI界面。对于Unity来说,UGUI是每个客户端程序第一个接触学习的东西。在这里我将长期更新一些UGUI的优化方法。 UGUI简介 UGUI是Unity官方推出的UI系统,集成了所见即所得的UI解决方案, 其功能丰富并且使用简单,同时其源代码也是开放的,下载地址:戳我 相比于NGUI,UGUI有以下几个优点 所见即所得的编辑方...

ulua、tolua原理解析

Unity热更新 在聊ulua、tolua之前,我们先来看看Unity热更新相关知识。 什么是热更新 举例来说: 游戏上线后,玩家下载第一个版本(70M左右或者更大),在运营的过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载(浪费流量和时间,体验不好)。 热更新可以在不重新下载客户端的情况下,更新游戏的内容。 热更新一般应用在...