自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 堆排序,大顶堆

时间复杂度:O(nlogn)

2023-04-04 15:58:53 153

原创 删除排序链表中的重复元素

链表常见算法之一

2022-10-20 20:14:40 235

原创 合并两个有序链表(非递归解法和递归解法)

合并两个有序链表,升序

2022-09-20 23:30:32 297

原创 找到所有数组中消失的数字

给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。示例 1:输入:nums = [4,3,2,7,8,2,3,1]输出:[5,6]示例 2:输入:nums = [1,1]输出:[2]提示:n == nums.length1 <= n <= 1051 <= nums[i] <= n进阶:你能在不使用额外空间且时间复杂度为 O(n)

2022-05-20 10:17:58 170

原创 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:注意这里的0只是占位符,占nums2的位

2022-05-07 10:35:33 148

原创 移动零的算法分析

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]示例 2:输入: nums = [0]输出: [0]第一种方法:挪,双指针形式,一个i用来遍历数组,然后记下非0元素,一个j用来作为数组顺序下标,只是把i指向的非0元素,往数组的顺位放时间复杂度O(n)public void Move(int[] nums

2022-05-07 10:28:24 342

原创 两数之和的分析和优化

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。public class SumTwoNumber {

2022-03-10 12:18:40 108

原创 爬楼梯的分析和算法,以及优化

递归的解法,复杂度O(n)这里可以看到f3,f4,被计算了多次,这里可以优化,用字典先存起来,要的时候再从里面拿,不用重复计算private Dictionary<int, int> saveResult = new Dictionary<int, int>();public int ClimbStairs(int n) { if (n == 1) return 1; if(n == 2) return 2

2022-03-08 12:02:45 216

原创 关于List源码的分析

List是c#中的一个最常见的可伸缩数组组件,不用手动去分配数组大小初始容量是0优点:使用索引方式提取数组很快,通用性高缺点:扩容时会很糟糕,每次针对数组进行new操作都会造成内存垃圾,给gc带来巨大负担。效率不高常用接口分析(1)Add接口给定对象添加到列表的末尾,列表的大小+1容量不够,将会增加到当前容量的两倍4,8,16,32,64,128溢出(大约2gb)之前,会允许列表增长到最大容量(2)Remove接口删除给定索引处的元素,列表大小减1返回此列表范围内给定值首次出现的索引

2022-03-06 16:50:18 272 1

转载 GitKraKen报出hook code 2错误时的解决办法

本质是因为大文件限制,突破大文件限制就好git 突破大文件上传限制1.安装 lfs: git lfs install2.跟踪大文件:git lfs track “file.suffix”3.添加配置文件:git add .gitattributes之后正常提交,不过可能会遇到这个问题:Remote “origin” does not support the LFS locking API. Consider disabling it with:…4.再执行此命令:$ git lfs push

2021-10-11 13:05:29 401

原创 空接合运算符??和空条件运算符?

空接合运算符:当前面的变量为null是,给个默认的值int? myI4=null;Console.WriteLine(“myI4:{0}”,myI4??-1);//-1myI4=10;Console.WriteLine(“myI4:{0}”,myI4??-1);//10空条件运算符:?检查引用变量为空还是包含一个对象引用if(students!=null)studentCount=students.length;等价的写法studentCount=students?.length;..

2021-10-10 11:32:39 100

原创 ref与out

//ref out//函数参数的修饰符//当传入的值类型参数在内部修改时,或者引用类型参数在内部重新声明时,外部的值会发生改变 //ref static void ChangeValueRef(ref int value) { value = 3; } static void ChangeArrayRef(ref int[] arr) { arr = new i

2021-05-23 10:34:35 51

原创 C#入门之for循环

(一)for循环语法for(初始表达式;条件表达式;增量表达式){//循环代码逻辑;}初始表达式:一般声明一个临时变量,用来计数条件表达式:表明进入循环的条件 一个bool类型的结果(bool变量,条件运算符,逻辑运算符)增量表达式(步长):用初始表达式中的变量 进行 自增减运算执行顺序:见图书写规则:初始表达式:声明变量,可以连续声明,以分号结尾条件表达式:只要是bool结果的表达式都可以增量表达式:执行一次循环逻辑过后要做的事情,做啥都行//例子for(int i=10;i

2021-02-19 00:55:57 7030 2

原创 C#入门之do-while循环

游戏开发里用的不多如果里面有continue是回到while不是回到do作用:先至少执行一次循环语句块的逻辑,再判断条件是否继续do{}while(bool类型的值);//切记这里有个分号//例子int a=0;do{Console.WriteLine(a);++a;}while(a>2);//例子do{Console.WriteLine(“1”);continue;//如果里面有continue是回到while不是回到do}while(false);...

2021-02-16 17:28:07 426

原创 C#入门之while循环

作用:让顺序执行的代码,可以被重复执行,不停的循环某块代码,直到跳出这个条件(一)whilewhile(bool类型的值){}控制循环逻辑的关键词break:跳出当前循环,与在switch中的break异曲同工。continue:回到循环开始,继续执行//break例子1while(true){ Console.WriteLine("break before"); break; Console.WriteLine("break after");}//break例子2

2021-02-16 17:01:04 2191

原创 C#入门之条件分支语句

(一)if作用:让顺序执行的代码产生分支(1)if(2)if-else(3)if-elseif-else(产生n条分支)(二)switchPs:常量这里不能写一个范围,只能写一个值switch(变量){ case 常量: 满足要执行的代码逻辑 break; case 常量: 满足要执行的代码逻辑 break; default: 如果上面都不满足,就会执行default里的逻辑 break;}//不写case后面的break,就叫贯穿满足某些条件时

2021-02-15 21:23:03 192

原创 C#入门之各种运算符

C#入门之条件运算符(如<=这种)(一)条件运算符的基本运用(二)各种应用的写法(三)不能进行范围比较(四)不同类型之间的比较C#入门之逻辑运算符(一)逻辑与(有假则假)(二)逻辑或(有真则真)(三)逻辑非(四)混合使用优先级问题(五)逻辑运算符的短路规则C#入门之位运算符(一)位与&(有0则0)int a=1;//001int b=5;//101int c=a&b//001转成十进制就是1(二)位或|(有1则1)(三)异或^(相同为0,不同为1)(

2021-02-15 17:51:58 263

原创 C#入门之字符串拼接

string s1= string.Format("{0},{1}", “ni”, “hao”);Console.WriteLine(s1);Console.WriteLine("{0},{1},{2}", “ni”, “hao”, “ma”);

2021-02-15 16:51:36 216

原创 C#入门之算数运算符

1.赋值符号2.算数运算符加 +减 -乘 *除 /float t = 2.1f / 5.1f;//0.41176468float t = 2f / 4f;//0.5取余 %3.算数运算符的优先级4.算数运算符的复合运算符+=-=*=/=%=5.算数运算符的自增减a++:先用再加++a:先加再用算时间的算术题//987652秒有多少天,多少小时,多少分,多少秒int total = 987652;int oneDay = 60 * 60 * 24;int oneH

2021-02-15 15:57:44 219

原创 C#入门之异常捕获

作用:通过对异常捕获的学习 可以避免当代码报错时 造成程序卡死的情况try{//希望进行异常捕获的代码块//放到try中//如果try中的代码 报错了 不会让程序卡死}catch(Exception e){//如果出错了 会执行 catch中的代码 来捕获异常}//可选部分finally{//最后执行的代码 不管有没有出错 都会执行其中的代码}ps:try-catch可以用多个,避免try里面一出错后面就不执行了,比如每一次输入都可以用try-catch例子:try{

2021-02-15 15:18:30 207

原创 C#入门之隐式转换、显示转换

类型转换(一)隐式转换隐式转换的基本规则:不同类型之间的自动转换(一般都是属于一种比如都是整型或者都是浮点),大范围装小范围,比如long可以装int,但特殊类型bool,char,string之间是不存在隐式转换的。有符号可以隐式转换无符号的,但是要大范围装小范围。浮点数可以装载任何类型得整数,当超过有效数字位后,会用科学计数法。decimal不能隐式得转float和double,但是可以转各种类型得整数。整数不能隐式得转浮点,因为整数不能存小数char类型的字符对应的数字就是个ascii码

2021-02-15 14:17:01 2569

原创 C#入门之零散小知识点

//变量声明了不赋值使用会不安全//小数不加f会默认成doublesizeof(int);char是两个字节驼峰命名法:myName,变量名帕斯卡命名法:ControlFun,函数,类c#对大小写敏感常量:const,且必须初始化,而且不能被修改,作用申明一些常用的不变的变量,如pi,速度,时间间隔,弧度,最大血量转义字符:字符串的一部分,用来表示一些特殊含义的字符,比如在字符串中表现单引号,引号,空行,取消转义字符用string a = @“hhahahha\a\ha”;打印出来hhaha

2021-02-13 16:12:12 156 4

原创 Mac上查找lua安装路径

打开控制台,输入,which lua

2020-10-17 21:21:51 1165

原创 lua调用c#之Lua使用C#重载函数

c#代码#region 函数重载public class CallFun{ public int Calc() { return 100; } public int Calc(int a,int b) { return a + b; } public int Calc(int a) { return a; } public float Calc(float a)

2020-10-08 22:44:15 554 1

原创 lua调用c#之Lua使用C# ref和out函数

c#代码:using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;#region ref和outpublic class RefOut{ public int RefFun(int a,ref int b,ref int c,int d) { b = a + d; c = a - d; return 100;

2020-10-08 20:04:49 1085

原创 lua调用c#之Lua使用C#拓展方法

c#代码using System.Collections;using System.Collections.Generic;using UnityEngine;using XLua;#region 拓展方法/// <summary>/// 想要在lua中使用拓展方法,一定要在工具类加特性/// 建议lua中要使用的类都加上该特性,可以提升性能/// 如果不加该特性,除了拓展方法对应的类,其它的类虽然不会报错/// 但是lua是通过反射机制去调用c#类 效率较低/// &

2020-10-08 15:45:03 405

原创 lua调用c#之lua调用c#中的数组,list,字典

lua代码:print("调用c#里的数组,list,字典")--*****************数组******************--[[c#里的数组在lua中相当于userdata保留了其结构c#怎么用,lua就怎么用]]--CS.CallArray_list_Dic--ps:c#那边的类取名少用下划线local ca=CS.Callarray()--获取数组长度print(ca.arr.Length)--获取数组元素print(ca.arr[0])--遍历

2020-10-08 14:35:29 4866

原创 lua调用c#之Lua使用C#枚举

lua代码:CallEnum.lua--[[ 枚举调用 1.调用unity当中的枚举 枚举的调用规则和类调用规则是一样的 CS.命名空间.枚举名.枚举成员 也支持取别名 小技巧:不记得函数的具体写法就在c#里写一遍,有提示]]PrimitiveType=CS.UnityEngine.PrimitiveTypeGameObject=CS.UnityEngine.GameObjectlocal obj = GameObject.CreatePrimitive(PrimitiveType.C

2020-10-08 00:40:43 1897 1

原创 Lua调用c#之调用c#类

首先:lua没有办法直接访问c#,一定是先从c#调用lua脚本后c#主入口using System.Collections;using System.Collections.Generic;using UnityEngine;/// <summary>/// lua没有办法直接访问c#,一定是先从c#调用lua脚本后/// 才把核心逻辑交给lua编写/// mian相当于是入口一样/// </summary>public class Main : MonoBeh

2020-10-07 23:49:38 1178

原创 c#调用lua之用LuaTable映射table(引用拷贝,效率低,有垃圾,不建议使用)

注意:官方不建议用luatable,和luafunction去映射table,和table里的函数,因为效率低,有垃圾,这种是引用拷贝,改了值会反映在lua文件中,而且如果luatable不用了一定要释放dipose,不然产生垃圾test.lua--class--这样定义的表相当于是个自定义的类,有成员变量和成员函数testClass={ testInt=1, testBool=true, testFloat=1.3, testString="13", testFun=function (

2020-10-03 22:29:14 794

原创 c#调用lua之接口映射table(引用拷贝)

注意:接口没有成员变量,只有属性,包括对应的函数都不能用委托,如果无参,无返回值可以用unityaction,而且接口去接要打上csharpcalllua标记,而且接口是引用拷贝!!!改了值会反应在lua定义的表中test.lua--class--这样定义的表相当于是个自定义的类,有成员变量和成员函数testClass={ testInt=1, testBool=true, testFloat=1.3, testString="13", testFun=function () -- b

2020-10-03 16:39:50 300

原创 c#调用lua之把lua中的表映射到c#中的类

test.lua--class--这样定义的表相当于是个自定义的类,有成员变量和成员函数testClass={ testInt=1, testBool=true, testFloat=1.3, testString="13", testFun=function () -- body print("nihaoyahahahahha") end, testInClass={ testInInt=13 }}c#代码using System.Collections;u

2020-10-03 12:12:26 508 1

原创 c#调用lua之用list,dictionary映射table

test.lua--ListtestList={1,23,4,5,7,8}testList2={"1",true,23,"13"}--dictionarytestDic={ ["1"]=1, ["2"]=2, ["3"]=3, ["4"]=4, ["5"]=5}testDic2={ ["true"]=true, ["1"]=13, ["false"]= -1, ["13"]=true}c#代码using System.Collections;using Sys

2020-10-03 10:48:22 587

原创 c#调用lua之全局函数的获取

test.lua代码testfun=function() -- body print("no args")endtestfun1=function(a) -- body print("args returns") return a+1endtestfun2=function( a,... ) -- body print("many args") print(a) args={...} for k,v in pairs(args) do print(k,v) ende

2020-10-02 22:29:13 274

原创 C#调用Lua之全局变量的获取(简单类型(string,number,boolean)

(一)获取lua文件中的简单变量的全局变量注意,get方法只能获取lua文件里的全局变量,获取不到局部变量主lua文件代码:print("主lua脚本启动")--整个文件算所有lua文件的主入口--只要执行lua文件,xlua都会去找自定义的加载器去加载整个lua文件require("Test")Test lua文件代码:print("Test.lua")testNumber=1testBool=truetestFloat=1.3testString="13"c#中函数代码

2020-10-01 22:05:34 570

原创 Lua解析器管理器(封装解析器通用函数(销毁解析器,垃圾清理),通过ab包加载lua文件的加载器)

(一)做一个lua管理器,保证解析器的唯一性,封装一些解析器常用函数单例模式代码:/// <summary>/// 单例模式基类/// </summary>public class BaseManager<T> where T:new(){ private static T instance; public static T GetInstance() { if (instance == null) {

2020-10-01 19:35:53 776

原创 C#调用Lua之Lua解析器(常用函数,默认路径下加载lua文件,自定义加载器加载lua文件)

Lua解析器作用:让unity能够执行lua语言(一)导入xlua步骤:xlua源代码中assets文件夹中的plugins文件夹和xlua文件夹,放到unity工程中的asset目录下,xlua中的tools文件夹,放在项目的asset目录的同级目录下。然后配置playersetting,最后编辑器会出现热补丁注入的选项,如图所示测试脚本:using System.Collections;using System.Collections.Generic;using UnityEngine;

2020-10-01 14:37:54 741

原创 Lua语法详解之垃圾回收

--垃圾回收--垃圾回收关键字:collectgarbage--获取当前lua占用内存数,以k字节为单位,如果乘以1024,是具体占用字节数print(collectgarbage("count"))--97.173828125 kb--进行垃圾回收,有点类似c# 里的gccollectgarbage("collect")print(collectgarbage("count"))--76.1298828125,比上面的97kb释放到76kb--lua中有自动定时进行gc方法,而且lua热更新

2020-09-27 09:39:51 252

原创 Lua语法详解之自带库

--自带库--string--table--时间print(os.time())--1601168290print(os.time({year=2020,month=9,day=25}))--1601006400--os.date("*t")传回来的是张表local now=os.date("*t")print(now)--table: 0x7fa99f604360for k,v in pairs(now) do print(k,v)end--[[month 9hour 9yd

2020-09-27 09:28:03 253

原创 Lua语法详解之多态

--面向对象实现--万物之父 所有对象的基类 objectObject={}--实例化方法function Object:new() local obj={} --给空对象设置元表,以及__index self.__index=self setmetatable(obj,self) return objend--继承function Object:subClass(className) --根据名字生成一张表,就是一个类 _G[className]={} local obj=_

2020-09-20 22:13:32 604

UIRes.unitypackage

一些做游戏常用的ui美术资源,可以做个小demo的那种

2021-08-12

空空如也

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

TA关注的人

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