题型总结——leetcode 119 杨辉三角
119. 杨辉三角 II题目
代码12345678910111213141516vector<int> getRow(int rowIndex) { vector<int> res; //杨辉三角核心代码 for (int i = 0; i <= rowIndex; i++) { res.resize(i + 1, 1); for (int j = i - 1; j > 0; j--) { res[j] += res[j - 1]; } } return res; }
记忆双重for循环中的杨辉三角核心代码
题型总结——leetcode 520 检测大写字母
520. 检测大写字母问题
解法两种解法
自己第一次写的
03XF的
自己的123456789101112131415161718192021222324252627282930if (word.length() == 0 || word.length() == 1) return true; bool flag1 = false; //检查首位是不是大写的 if (toupper(word[0]) == word[0]) { flag1 = true; } //从第二个开始,后面都需要相同 bool flag2 = false, flag3 = false; //flag2是判断大写的,flag3是判断小写的 for (int i = 1; i < word.length(); i++) { flag2 = flag2 || toupper(word[i]) == word[i] ? 1 : 0; flag3 = flag3 || tolower(word[i]) == word[i] ? 1 : 0; } if ...
githug首次ssh访问注意
github首次ssh访问注意CA证书问题1git config http.sslVerify false
暂时关闭CA证书检查
同样可以安装 TortoiseGit ,
进入到设置中按照以上步骤设置,在右侧文本编辑器中添加红框中的内容
或者也可以先禁止CA证书检查,然后再启用,最后在执行以上操作
github端口问题
第一次上传大概率会有端口问题,因此在C盘的用户目录下的.ssh文件夹内,新建一个config文件,并添加红框中的内容。
123Host github.com Hostname ssh.github.com Port 443
题型总结——leetcode 459 重复的字符串
459. 重复的子字符串
该问题有有三种解法,第一种就是常见的枚举,双重for循环,时间复杂度通常不如人意,On2
第二种则是巧妙利用这种结构的特性进行处理
第三种是经典的KMP算法
枚举12345678910111213141516171819bool repeatedSubstringPattern(string s) { int n = s.size(); for (int i = 1; i * 2 <= n; ++i) { if (n % i == 0) { bool match = true; for (int j = i; j < n; ++j) { if (s[j] != s[j - i]) { match = false; break; ...
题型总结——leetcode 389 找不同
389. 找不同四种解法求和reduce是在numeric头文件下的对容器进行累计操作的方法,默认是求和
1return (char)reduce(t.begin(), t.end()) - reduce(t.begin(),t.end());
时间复杂度On,空间复杂度O1
排序12345678910111213ranges::sort(s); ranges::sort(t); int n = s.length(); for (int i = 0; i < n; i++) { if (s[i] != t[i]) { return s[i]; } } return t.back();
时间复杂度OnlogN,空间复杂度O1
计数12345678910111213vector<int> cnt(26, 0); for (char ch: s) { cnt[ch - 'a']++; } for (char ch ...
题型总结——leetcode 67 二进制求和
67. 二进制求和1234567891011121314151617181920212223242526string StringTopic::addBinary(string a, string b){ //模拟运算 string res; ranges::reverse(a); ranges::reverse(b); int n = max(a.length(), b.length()), carry = 0; for (int i = 0; i < n; i++) { carry += i < a.length() ? (a[i] == '1') : 0; carry += i < b.length() ? (b[i] == '1') : 0; res.push_back(carry % 2 ? '1' : '0'); carry /= 2; } if (carry) { res.push_back('1') ...
Unity组件——AI navigation
AI navigation基础
属性讲解Agent Radius:代理半径,决定了烘焙路面距离墙面的距离,当出现两堵墙距离过近导致没有路径出现的情况,可以适当调小该属性
Height:代理高度,限制代理对象的高度,调整数值可以让代理角色通过桥洞或者隧道等有高度限制的场景
Step Height:台阶高度,在这个高度范围内的 台阶 会生成烘焙路径
Max Slope:可以生成烘焙路径的斜坡最大倾斜角度
Generated Links自动生成外链
Drop Distance:下落高度
Jump Distance:跳跃距离
Component
属性讲解Nav Mesh Agent:自动寻路代理对象,需要自动寻路的添加该组件
Nav Mesh Obstacle:被其余系统驱动的移动物体,需要Agent主动避开
Nav Links
NavMeshdifler
NavMeshSurface
使用
在需要烘焙的游戏对象上添加以上组件,保持默认设置,点击有右下角的bake按钮就可以在该游戏对象上生成烘焙路径,Agent可以在该对象表面进行寻路操作
每次子对象的变动,都需要 ...
题型总结——leetcode 3174 清除数字
3174. 清除数字这时一道简单的栈处理题目,
下面是一开始和直接使用栈的解决方式
123456789101112131415161718192021222324252627string Array::clearDigits(string s){ stack<char> sta; for (char c : s) { if (isdigit()) { sta.pop(); } else { sta.push(c); } } s = ""; while (!sta.empty()) { s += sta.top(); sta.pop(); } ranges::reverse(s); return s; }
以上方法虽然能解决问题,但是最后还需要对新建的栈进行处理,回顾栈的定义,可以使用以下代码
123456789string st;for (char c : s) { if (isdigit(c)) { ...
Unity组件——DotWeen
DotWeen入门实现效果
打击感
打字机
移动
缩放
代码实现引用命名空间
1using DG.Tweening;
打击感
12Camera.main.transform.DOShakePosition(2,3); //将摄像机按照指定的参数进行晃动 //前者是持续时间,单位是秒,后者是强度
打字机123Text text;text.DOText("要进行打字机变换文本内容",3);//对应的需要两个参数,第一个如内容所示,第二个参数代表的是第一个的内容需要在几秒内完成,单位是秒
移动1234Text text;text.transform.DOMove(new Vector2(1,1),3); //在3秒内从当前位置移动到指定位置text.transform.DOMove(new Vector2(1,1),3).From(); //在3秒内从指定位置回到当前位置
缩放1234567text.transform.DOScale(1,2); //在2秒内将缩放至从当前值变为1text.transform.DOScale(1,2).From(); ...
Unity组件——TimeLine
TimeLine创建
TimeLine是控制的本体,Singal是动画中某个指定对象的传递
如果需要将事件传递出去,场景中需要有加载有下图红框内组件的游戏对象,使用方式和Unity常规的事件系统触发一致,
1.选择游戏对象
2.选择方法
使用前需要在场景中准备Add有下图所以组件的游戏对象,具体操作可以是直接从assets中将一个创建好的Timeline直接拖拽到场景中准备好的空对象上去
常用轨道
如上图所示:
activation Track是控制活跃性的,在轨道的指定片段内是有效的,具体使用案例是在播放CG的时候需要将屏幕从人物中移动开,这个时候可以将原本的Playercamera拖拽到Timeline的该轨道上,在指定的片段内才是活跃的
Animation Track是常规的Animation,需要追踪一个animator,
audio Track是音效轨道
Control Track
playable Track
signal Track 事件轨道
代码控制12345678910111213using UnityEngine.Playables; // ...