自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 LeetCode算法问题18 —— Ones and Zeroes

看一下问题描述题目给定一个字符串数组,求出由m个0和n个1能够构成字符串数组中字符串的最大数量我采用了一种动态规划的方法解决本题,对于函数 int findMaxForm(vector& strs, int m, int n)首先创建了一个三维数组对于数组元素dp[k][m0][n0]表示:还有m0个0和n0个1可用时,对于前k个字符串集合所可以组成的最大字符串个数,这样我们就可以首先确定我们返回

2018-01-17 18:07:13 327

原创 LeetCode算法问题17 —— Find Largest Value in Each Tree Row

首先看一下问题描述要求我们找到一个二叉树每一层的最大值这个问题用BFS、DFS都可以解决,且不得不遍历整棵树。在遍历过程中,需要时刻记录当前节点的深度,以便比较同深度下的节点值以获取每一层的最大值本题我采用了DFS算法,对于主干函数largestValues,通过操作:通过explore函数对容器answer进行填满。对于容器answer,answer[i]表示深度为i的一层(起始深度为0)的最大值

2018-01-16 16:10:31 327

原创 LeetCode算法问题16 —— Climbing Stairs

首先看下问题描述 给一个n表示n级台阶,而我们上台阶的方式有一次上1个台阶和一次上2个台阶,需要我们求出到n级台阶一共有多少种方法。这题自然可以采用递归的方式,对于所到达的每级台阶,再次求其到第n级台阶的方法,具体实现类似如下伪代码:GetWay(current_step, aim_step) { int ways = 0; if (current_step <= aim_step

2018-01-16 12:05:39 344

原创 LeetCode算法问题15 —— Find Bottom Left Tree Value

先看下问题描述题目给定一个二叉树,要求获取这个数最后一行(最底层)的最左值其中树的数据结构有代码:struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };依据DFS可以获得本题

2018-01-13 17:08:28 249

原创 LeetCode算法问题14 —— Kth Largest Element in an Array

首先看下问题描述题目要求给一个无序数组,要求找到第k大的数。最先想到的办法自然是通过排序先获得一个有序数组,再通过提取对应位置获得结果,例如,可通过库函数sort来解答问题: int findKthLargest(vectorint>& nums, int k) { sort(nums.begin(), nums.end()); retur

2018-01-13 16:12:30 226

原创 NP-Complete Problem

如题一:Prove that the following problem is NP-complete: given an undirected graph G=(V, E) and an integer k, return a clique of size k as well as an independent set of size k, provided both exist.给了一个无向图G

2018-01-01 16:42:03 661

原创 LeetCode算法问题13 —— Search Insert Position

问题描述: 要求给定一个已排序数组,以及一个目标值,如果数组中存在目标值,则返回第一次出现目标值的位置,否则返回应当插入数组中的哪个位置。 题目指示不会出现重复数在数组中,因此使用了二分查找法int searchInsert(vector<int>& nums, int target) { int low = 0, high = nums.size()-1; //

2017-12-10 16:02:54 284

原创 LeetCode算法问题12 —— Partition to K Equal Sum Subsets

看一下问题描述 问题要求判断一个给定的数组能否划分为k个代数和相同的子数组。首先必须获取给定数组的和 int sum = 0; for(int num:nums) sum += num;问题就变成了将每个元素划分到哪个子数组的问题了,我的想法是先让第一个子数组从起始位置开始挑选数字看能否组成一个和为sum/k的子数组。 那么这样子就要创建k个子数组了吗?答案是否定的,我创建了一个数组

2017-12-03 20:48:44 322

原创 LeetCode算法问题11 —— Maximum Length of Repeated Subarray

先看问题描述 给定两个整数型数组,要求找出相等的最长子串的长度。特别的,将数组长度限制在了1-1000,且数组元素限制在了0-100本体采用了动态规划的算法,从最短相同子串慢慢累积到最长相同子串,每一个更长子串都是基于上一次较短子串获得的。这里定义一个数组C[i][j]记录以给定数组A[i]和B[j]结尾的相同子串长度,也就是说,如果A[i] 和B[j]不相同,则相同子串在此处已经完结,如果相同,

2017-11-05 16:51:11 304

原创 LeetCode算法问题10 —— Best Time to Buy and Sell Stock with Transaction Fee

问题描述 prices是这个股票每天价钱的数组,而fee,我把它理解为手续费,即一组买入卖出后要交的费用。 题目要求我们手上只能有1份股权,也就是说如果我们还想买进股票,必须先把原先自己拥有的股票抛售才行。 整个问题的描述就是这样,要求也很简洁,求出我们能获得的最大利润。可以很简单的确认一次交易的利润,假定我们在第i天买入,第j天抛售(以0为起始天),则 profit=prices[j]−p

2017-10-29 16:55:34 333

原创 LeetCode算法问题9 —— Two Sum

先看问题描述 题目给定一个整数型数组以及一个目标和,要求找出数组中和为目标和的整数对(两个整数相互独立)。特别的,题目假定输入限制了数组中有切仅有一对整数答案。首先想到的办法肯定是对于数组进行遍历,在这一层遍历的基础上再建立一个向后的遍历以查找答案,它的基本思想是这样的:in array a1, a2, ..., anfor i from 1 to n-1 for j from i+

2017-10-23 20:40:30 284

原创 LeetCode算法问题8 —— Remove Nth Node From End of List

看下问题描述 即要求删除倒数第n个节点。其中给定的n是合法的,因此我们不需要考虑是否会有所给n超出链表的问题。遇到这个问题首先想到的自然是先遍历链表一次确定其长度,然后再来第二遍完成删除。然而题目要求尝试一趟完成,这就要求当第一次遍历到目标位置时,就该删除。因此我想到一个方法:用两个指针,pos1, pos2,它们相距n-1个节点,对链表遍历,当pos2到底后,pos1就是倒数第n个节点比如1

2017-10-15 16:44:31 310

原创 LeetCode算法问题7 —— Longest Substring Without Repeating Characters

问题描述 简单来说,就是找一个字符串中最长的不存在重复字母的子串长度自然遍历字符串一遍是不可避免的,自然,我的想法就是建立一个临时字符串变量temp存储当前遍历到的无重复字母的字符串,在对给定字符串进行遍历的时候,可能会出现几种情况:不是重复字母,则temp将其加上是重复字母,则: a. 首先比较当前temp长度和目前所遇到的最长长度哪个大,若是temp较长则替换 b

2017-10-08 14:29:31 318

原创 LeetCode算法问题6 —— Container With Most Water

先看一下题目题目说的是给定一个数组,将数组中的每个数作为一个Y值,其对应下标号(从1开始)作为X值,从该点下拉一条竖线到X轴,将这条竖线作为一个木板,求出由两条竖线和它们之间的X轴做成的水桶的最大容积。这个问题牵扯到短板问题,即,一个木桶的最大容积是由围成它的最短的木板所决定的。因此对于本题来说,容积公式应该为:V = the lowest height * x解决这个问题首先想到的自然是暴力算法,

2017-10-01 22:51:54 428

原创 LeetCode算法问题5 —— ZigZag Conversion

首先看一下题目问题描述:给定一个字符串,及一个整数表示把其分成几行(Z字长度),然后依次竖着画Z字。这个问题其实很好解决,根据题目意思,如果需要n行,建立n个数组指针,然后按规则一个一个赋值,最后老老实实地把字符数组整合成一个字符串即可。但是这种算法明显无脑,且浪费空间,代码量想想也知道会很冗余。于是我尝试画了一个5行,字符串长度为21的Z字形图: 这里我只是罗列了每个字符在字符串中的下标值。

2017-09-24 15:23:56 292

原创 LeetCode算法问题3 —— Median of Two Sorted Arrays

问题描述问题要求我们找到给定的两个已排序的数组组合在一起的中位数(median)。关于时间复杂度为O(log(m+n))的要求,我还没达到,但是想到了一个不错的方法,先记录下来。说到中位数的计算,牵扯到这个数列的长度:为奇数:就取中间的数为偶数:取中间两位数的平均值那么如何找到中位数呢?笨办法当然是乖乖地把两个数组的数都取出来然后排序,最后再取中位数。但是我突然注意到了sorted,那么完全就

2017-09-09 20:07:06 268

原创 LeetCode算法问题4 —— Longest Palindromic Substring

问题描述问题要求我们找到一个字符串s中最长的回文子串首先我们看看什么叫做回文,我认为,就是对称,也可以这样理解,将回文字符串从中间折叠,能够刚好吻合。那么该如何判断回文?有一个方法是递归,一个回文字符串去掉一头一尾,依旧是回文字符串。根据这个原理我们可以把要判断的字符串减去头尾继续递归。这个用编程语言很好写,就是算法复杂度可能会高一点。不过这次我用的是另外一种方法:找到一个中心点,然后以此为圆心向两

2017-09-09 16:03:31 398

原创 LeetCode算法问题1 —— Add Two Numbers

最近在学校提供网站LeetCode上刷算法题,近段时间会将一些自己觉得有意义,值得效仿的点写下来,为自己以后的工作和学习所用。今天讲的是Add Two Numbers首先看一下问题描述 问题大概意思是这样的:分别将两个非负整数的各个数位用链表连接起来,且数字的存储方向是反向的,即,2->4->3其实是342。要求我们计算出两个整数的和并以相同方式返回。同时,题目提供了这种链式的数据结构stru

2017-09-07 19:15:51 358

原创 制作多周期CPU(代码)

MCPUmodule MCPU( CLK, RST, CurPC, instcode ); input CLK; // 时钟信号 input RST; // 置零信号 output [31:0] CurPC; // 当前指令的地址 output [31:0] instcode; // 指令寄存器中获取的指令码 wire [5:0] op; // 操作码

2017-05-31 22:27:14 1643

原创 制作多周期CPU(分析)

上次做完单周期CPU后开始思考多周期的相关设计,最近总算做出来一个马马虎虎的。先来说说思路。要求 原理1.多周期多周期CPU指的是将整个CPU的执行过程分成几个阶段,每个阶段用一个时钟周期去完成,然后开始执行下一条指令,一般将一条指令的执行分为以下几个阶段:(1)取指令(IF):根据程序计数器pc中的指令地址,从指令寄存器中取出对应指令,同时pc自动递增产生相邻的下一条指令的地址(pc+4

2017-05-31 22:02:42 5899 3

原创 制作游戏背包界面

这次制作了一个切换装备的UI界面,首先上效果图 有点恐怖,嘿嘿,下面说一下制作思路游戏背景新建一个空对象命名为SF Scene Elements,里面包含一个main camera,一个空对象BackGround,一个粒子系统。 在BackGround中添加Sprite Renderer组件,将选好的背景添加。 值得注意,我一开始下载的是图片资源,怎么都不能挂到Sprite上,后来知道要将

2017-05-05 18:10:11 3828

原创 制作单周期CPU(代码)

直接上代码SCPUmodule SCPU( CLK, Reset, CurPC, instcode ); input CLK; // 时钟信号 input Reset; // 置零信号 output [31:0] CurPC; // 当前指令的地址 output [31:0] instcode; // 指令寄存器中获取的指令码 wire ExtSel; //

2017-04-21 16:58:25 4596 1

原创 制作单周期CPU(分析)

用的是Vivado软件,代码部分将在下一期展现出来(内容太多我也很绝望),这一期来讲讲思路要求 原理1.单周期:单周期CPU指一条指令在一个时钟周期内完成并开始下一条指令的执行。由时钟上升、下降沿控制相关操作。两个相邻时钟上升沿或下降沿之间的时间间隔为一个时钟周期2.CPU如何处理指令:CPU处理指令的步骤如下: a.取指令:根据PC中的指令地址,在指令存储器中获取相应指令。然后PC值会自动

2017-04-21 16:49:26 17246 3

原创 PostgreSQL初识

这几天通过TCP-H以及PostgreSQL完成了一系列数据库实践。跳了很多坑,所以写一点心得,和注意事项以下是Linxu系统下的实现准备工具其实就是要安装PostgreSQL运行环境,以及TCP-H的下载1.PostgreSQL首先打开命令行菜单,输入命令 sudo apt-get install postgresql-client sudo apt-get install postgresq

2017-04-12 22:40:11 478

原创 扔飞镖游戏

日落西山红霞飞~战士打靶把营归呀巴扎嘿。今天我制作一个简单的打靶游戏(扔飞镖)在制作之前首先要思考这个游戏需要什么对象,很简单,一只飞镖、一个靶。这里我把飞镖设置成了刚体,什么是刚体?简而言之,就是给这个物体加上了物理引擎,有了刚体,这个对象可以发生正常的碰撞,可以有质量、有阻力、有重力。这些属性自然我们可以通过时时改变游戏对象的Position和Rotation来模拟。但是这样子的话我们要时刻计算

2017-04-03 21:00:23 3199 1

原创 打飞碟游戏

今天我们做一个简单的飞碟游戏有了上一章点击地面出现攻击目标而引出的单例模式,这一次的游戏可以很好设计出来。这个游戏中的主要角色有飞碟:最基本的要素,就是一个ganmeobject游戏场景:作为游戏美化导演:控制全局,场景转换(本游戏中还没有体现它的作用,因为只有一个场景。。。)场记:加载资源,给飞碟工厂、记分员、场次控制员下达命令,协调工作飞碟工厂:用于飞碟的制造和回收,以及发射飞碟加工

2017-03-24 22:44:34 1154

原创 简单的点击交互

unity为我们提供了许多人机交互的方式,包括鼠标、键盘、手柄等等,这些具体的设置我们可以通过Edit->ProjectSettings->Input中查看 这里我讲一下鼠标左键的点击,我们点开Fire1 这里Alt Positive Button显示的是mouse 0,表示鼠标左键点击就会有该响应,而且是积极相应,这些可以自己修改下面我做一个小游戏:用 Plane 或其他物体做地面, t

2017-03-22 13:58:30 1511

原创 #Vi,java,Ant,Junit学习笔记

为了更好地完成实训,学习了Vi,java,Ant,Junit的一些基本用法。 下面说一说我对它们的认识目录Vi分离式的三种模式易于理解的操作进入1插入模式2命令行模式3底行模式java如何写一个HelloWorld基本数据类型数组对象String类型继承多态垃圾收集器接口Antxmlprojecttargetpropertyjarjavacjava实

2017-03-19 15:33:00 659

原创 牧师与魔鬼优化

我们知道,一个人物其实会有很多动作,虽然我之前做的牧师过河可以把动作和对象放在一起而且思路还能够保持清晰,但那也仅仅是因为这个游戏只有基础的移动动作。试想,一个大型动作游戏,游戏人物有奔跑,跳跃,开枪,开车等等复杂的动作,全部加到对象文件内部,一是代码容量太大,可读性差,理解性差,还有一个问题就是,如果我们以后想对这个游戏人物在进行动作更新呢?又要写进去一大堆代码?所以,仔细想想,将对象与动作分离有

2017-03-18 22:20:54 741

原创 使用 Fantasy Skybox FREE 构建游戏场景

下面我演示如何用 Fantasy Skybox FREE 来构建游戏场景 首先创建一个新项目,在Asset Store中搜索Fantasy Skybox FREE 并下载 我们会看到Assets中出现了三个文件夹 文件夹中有很多纹理、素材、预设,我们可以自己DIY 既然要创建一个游戏场景,肯定需要一块地,Create一个Terrain 具体的功能有我嫌弃创建的新地形,就在Demo

2017-03-17 00:56:03 1423

原创 面向对象语言接口和超类

首先要知道什么是面向对象语言和超类还有接口面向对象语言面向对象语言,是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。超类被继承的类成为超类(父类)接口计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。可以理解为一个特殊的抽象类,

2017-03-16 14:53:46 1149

原创 光源

3D游戏给我们构造了一个虚拟的世界,为了让玩家切实感受到游戏世界的真实性,光源肯定是必须的,下面介绍光源光源正如字面意思,光源可以决定场景环境的明暗,色彩和氛围。它的效果就如白天和晚上的区别,开灯和关灯的区别。 创建光源有两种方法 一、直接在create的选单中选择light 二、创建一个空对象,添加灯光组件 我们可以看到 其实light就是一个组件,而我们创建的太阳光等等都是ligh

2017-03-16 14:17:58 709

原创 摄像机

作为一个游戏的必要元素,摄像机、光源、场景有着不可磨灭的作用。下面这几期聊一聊我的看法。摄像机玩家要体验制作好的游戏,首先要看到画面,摄像机就是这样的作用。在我看来,游戏和电影没什么区别,自然,摄像机把游戏世界呈现给了我们。比如我们要做第一人称游戏,那么摄像机就可以放在人物的头部,如果要做第三人称,那么就放在人物后面。。。。。诸如此类。再者我们平时玩游戏出现的小地图,其实也可以通过一个摄像机俯视游戏

2017-03-16 02:05:18 1064

原创 牧师和魔鬼游戏制作

游戏规则和背景我就不说了,首先我们要知道这个游戏中出现了那些对象:魔鬼,牧师,两个岸,一条河,一艘船。那么每个对象有什么行为呢,如下魔鬼 1.上下船 2.当数量大于牧师时,可以杀死牧师,游戏结束 3.划船牧师 1.上下船 2.划船船 1.河岸间移动至于岸,河就是个场景布置,没有什么行为。在开始之前,首先我在Assets中创建了三个文件夹,Materials存放一些简单素材,Resourc

2017-03-12 01:02:32 1194

原创 模拟太阳系

今天来模拟太阳系 我们知道,太阳系包括太阳,水星,金星,地球,火星,木星,土星,天王星,海王星。 为了模拟太阳系,首先我查找了一些相关参数 因为只是简单模拟,所以我只是依据它们的周期比例简单的为它们的旋转速度赋了值。接下来我们就先建模,创建九个球,再网上下载相关纹理,拖入球体,得到九个实体(太阳肯定要搞大点) 由于对太阳系而言,太阳是静止的,所以我把太阳作为父类,其余的星球作为太阳的子类(粉

2017-03-11 02:12:40 1740

原创 Unity 简单的物体运动

Unity简单的物体运动物体的运动包括位置坐标的改变和旋转。下面是几种运动常见手段的实例。首先我们先new一个project,创建一个GameObject Cube然后开始编写脚本1. 通过Transform组件1.1 Transform.positionpublic class 移动 : MonoBehaviour { // Use this for

2017-03-09 14:42:03 4501

原创 Unity学习第二周

Unity学习第二周我下面写的可能会有很多错误,请见谅,我会更加努力学习弥补这些错误,感谢! 这一期博客借鉴了很多人的博客,看了下外国网站,并不能看懂。。。。所以很多理解都来源于野路子嘿嘿通过两个星期的学习,我对unity有了一定的了解,在课上我们通过新建游戏对象,然后修改它的属性,如transform可以调整游戏对象的位置、形状、大小。甚至可以多个游戏对象组成一个整体,成为预设等等。在接触了脚本

2017-03-05 20:08:47 486

空空如也

空空如也

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

TA关注的人

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