自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

潭溪的专栏

面向未知编程

  • 博客(96)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Vite+Vue3+Vant4+TypeScript安装流程

Vite+Vue+Vant4+TypeScript+Eslint 安装使用

2023-03-09 10:57:12 953

翻译 每个软件工程师必知的unicode和字符集知识(翻译)

原文链接:(https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/)原文作者:Joel Spolsky​ 上网多了,就必然...

2019-01-23 16:20:53 1296

原创 神魔圣域的赛马游戏下注问题

题目:神魔圣域的一个小游戏,通过分析不同队伍赛马的状态,给出不同的赔率。玩家对自己看好的马队下注,获得金币,如图。游戏中允许多次下注,通过什么策略可以保证自己稳赢不赔?解答其实,是一个线性规划的题目,四支队伍,拥有不同的赔率,可以通过线性组合,分析得出最佳的下注比例,保证下注后的稳定收益。假设总金额投入为100,那么分配给四支队伍的金额分别为:x1+x2+x3+x4=100x_1 ...

2019-01-18 18:40:22 679

原创 926. Flip String to Monotone Increasing

题目:解答:统计字符串中有多少个1,多少个0,然后遍历每个位置,计算如果间隔点在这个位置,左边需要改变几个1->0, 右边需要改变几个0->1,获得其中最小的改变点。代码:class Solution {public: int minFlipsMonoIncr(string S) { int len = S.size(); int l...

2018-12-06 18:10:18 195

原创 密码学读书笔记小结

密码学是保证消息的私密性和完整性以及消息认证的基础。加密算法的选择和密钥的管理是安全机制的效率、性能和可用性的关键。公钥加密算法: 分发密钥比较容易,但是对大数据量的加密性能较差密钥加密算法: 更适合大批的加密任务混合型加密协议: 例如TLS,先用公钥加密建立一个安全通道,然后使用通道交换密钥,并将此密钥用于后续数据交换。对分布式系统攻击的分类:窃听: 未经授权获得消息副本伪装:...

2018-11-21 12:54:20 1543

原创 74. Search a 2D Matrix

题目:解答:使用二分查找,首先查找每行首数字,然后确定到行,在该行使用二分查找确定最后元素位置,如果找到则返回true。最终时间复杂度为 O(lg⁡row)+O(lg⁡col)O(\lg row) + O(\lg col)O(lgrow)+O(lgcol)代码:class Solution {public: bool searchMatrix(vector<vector&...

2018-11-18 21:39:36 146

原创 73. Set Matrix Zeros

题目:解答:提供了两种解题思路:第一种,使用两个数组,分别标记每一行、每一列是否有0的存在,然后再去更新二维数组。第二种,使用两个变量brow,bcol分别标记第0行,第0列是否存在0,然后使用每一行、每一列的第一个单元存储是否该行、该列存在0.代码:class Solution {public: // 方法一 void setZeroes(vector<ve...

2018-11-18 21:38:55 328

原创 71. Simplify Path

题目:解答:很合理的想法,是用一个栈来记录整个path路径的每个节点,如果遇到"…“就回退一个位置,遇到”."就忽略,退到空栈了就不处理。但是后来发现用栈的话,最后取出数据麻烦,所以还是使用了一个vector来记录所有的path路径节点。代码:class Solution {public: string simplifyPath(string path) { ...

2018-11-18 21:38:14 150

原创 70. Climbing Stairs

题目:解答:典型的斐波那契数列,每一个位置的次数等于从前一个位置跳跃过来,或者前两个位置跳跃过来。两种可能的叠加。代码:class Solution {public: int climbStairs(int n) { if(n < 2) return 1; vector<int> vec(n, 0); vec...

2018-11-18 21:37:24 88

原创 Unity 2018 Shading读书笔记(一)

1. Post Processing Stack必须是在Unity 2018才能使用的一个内置功能。如果没有安装,需要首先在Unity编辑器的Package Manager内安装,如下图:通过界面菜单的Windows -> Package Manager打开Packages界面,在All里面选择Post-processing后在右边install。因为Post-processing这...

2018-11-17 19:52:32 462

原创 69. Sqrt(x)

题目:解答:自己设计了两种方案,一种是使用牛顿逼近法,原理是:​ ai+xaia_i + \dfrac{x}{a_i}ai​+ai​x​ 不断迭代,最终会趋近极限为 ai=xa_i = \sqrt xai​=x​一种是使用二分查找法。下面给出了两种方法的实现,第二种方法给出了递归和迭代两种实现方式。这里magic数等于 INT_MAX\sqrt{INT\_MAX}INT_MAX​ 取整。...

2018-11-16 14:33:27 220

原创 68. Text Justification

题目:解答:题目标注为hard,但是其实难度不高,没有什么复杂的算法。主要是情况区分处理。每读取x个单词,直到 ∑x=beginx=endx.size≤maxWidth\sum_{x=begin}^{x=end} x.size \le maxWidthx=begin∑x=end​x.size≤maxWidth如果x 取到了最后一个单词,则使用自然布局,每个单词分隔一个空格否则,...

2018-11-16 14:32:58 268

原创 67. Add Binary

题目:解题:实现二进制的加法,使用预先开辟数组记录。代码:class Solution {public: string addBinary(string a, string b) { int lena = a.size(), lenb = b.size(); int maxlen = max(lena + 1, lenb + 1); ...

2018-11-16 14:32:29 92

原创 66. Plus One

题目:解答:简单的求和,需要处理一下进位即可。代码:class Solution {public: vector<int> plusOne(vector<int> &digits) { int flag = 1; int len = digits.size(), index = 0; vector&...

2018-11-16 14:32:02 118

原创 65. Valid Number

题目:解答:判定是否数字是合法数字,主要是区分几点数字前后可以有空格,中间不可以有空格符号+/-只可以存在数字之前数字如果不包含科学计数法e,则只可以存在一个+ - .符号不允许只有+ - . e 符号没有数字科学计数法e 后面的数字可以有+/-符号,不可以有小数点科学计数法前后必须包含数字去除空格后为空串,不合法这样设定几个标记位,然后遍历字符串,即可判定出来。代码:...

2018-11-16 14:31:05 181

原创 64. Minimum Path Sum

题目:解答:依然是类似动态规划的思想,LeetCode最佳答案使用自己开数组存储,运行速度会更快。我的解法使用vector内原地存储记录,速度好像是要慢一些,但是不需要使用额外空间,也算比较满意了。代码:class Solution {public: int minPathSum(vector<vector<int>>& grid) { ...

2018-11-16 14:30:38 112

原创 63. Unique Paths II

题目:解答:仍然是动态规划,但是,如果有阻挡,那么当前位置不可达,标记path总数为0代码:class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int row = obstacleGrid.size(),...

2018-11-16 14:30:12 90

原创 62. Unique Paths

题目:解答:一个标准的动态规划问题,在任一点 (i,j) 处的路径,分别来自(i-1,j)和(i,j-1)处,于是有:​ table(i,j)={1i=0 or j=0table(i−1,j)+table(i,j−1)elsetable(i,j) = \begin{cases} 1\quad i = 0\ or\ j = 0 \\ table(i-1,j) + tabl...

2018-11-16 14:29:42 125

原创 61. Rotate List

题目:解答:标记截断的位置,重新连接链表即可。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solu...

2018-11-16 14:29:16 123

原创 60. Permutation Sequence

题目:解答:初始数列为 ai=1,2,3,…,ni∈[1,n]a_i = {1,2,3,\ldots,n}\quad i\in [1,n]ai​=1,2,3,…,ni∈[1,n]这样第一个数为1,剩余数列的排列可能为 (n−1)!(n-1)!(n−1)!第k个序列的第一个数需要满足 a1⋅(n−1)!≤k≤(a1+1)⋅(n−1)!a_1 \cdot (n-1)! \le k \le (...

2018-11-16 14:28:34 105

原创 59. Spiral Matrix II

题目:解答:按照要求遍历即可。代码:class Solution {public: vector<vector<int>> generateMatrix(int n) { if( n == 0 ) { vector<vector<int> > ans;

2018-11-14 15:44:43 122

原创 58. Length of Last Word

题目:解答:从后往前遍历,很容易判定出来。代码:class Solution {public: int lengthOfLastWord(string s) { if(s.empty()) return 0; int index = s.size() - 1; while(index >= 0 && s[...

2018-11-14 15:44:17 92

原创 57. Insert Interval

题目:解答:最开始看以为是会有坑比较复杂,所以用了一个很暴利的区分各种情况分析的做法,将新插入newInterval的start,end的位置各种可能分别标记出来,最后根据各种情况分别计算。见方法一。做完后,看了LeetCode里面别人的代码,才感觉自己的做法比较傻,两种方法都列不出来了。代码:/** * Definition for an interval. * struct I...

2018-11-14 15:43:53 208

原创 56. Merge Interval

题目:解答:常规的合并,根据前后interval是否有交集判定。代码:/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) ...

2018-11-14 15:43:21 332

原创 55. Jump Game

题目:解答:一次遍历,寻找最大值,如果最大跳跃值小于index,则证明不能跳跃到当前位置,返回false代码:class Solution {public: bool canJump(vector<int>& nums) { int len = nums.size(); int maxjump = 0; for...

2018-11-14 15:42:54 82

原创 54. Spiral Matrix

题目:解答:使用四个变量记录left, right, top, bottom值,然后在之间遍历即可。代码:class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { if(matrix.size() == 0 || mat

2018-11-14 15:42:27 92

原创 53. Maximum SubArray

题目:解答:分两种情况分别考虑,第一种情况,全是非正数,直接遍历取最大值,第二种情况,有正数,使用标记数值,取范围值之和。代码:class Solution {public: int maxSubArray(vector<int>& A) { int temp = 0,max = 0; int flag = 1; int ...

2018-11-14 15:41:59 123

原创 52. N-Queens II

题目:解答:使用题51的解法,但是不需要保存记录了。代码:class Solution {public: bool CheckOK(vector<string>& panel, int row, int col,int n){ for(int i = 0;i < row; ++i) if(panel[i][col...

2018-11-14 15:41:34 89

原创 51. N-Queens

题目:解答:使用深度搜索寻找出所有符合要求的皇后排序位置。代码如下:CheckOK: 用于判定在第row行col列放置皇后,是否会与之前的有冲突(之前的会维护为合法的皇后布局)while(row != n):这层循环用于获取在当前布局和当前row,col下的计算下一个合法的n皇后布局最后面的for循环:前面已经将合法的一个n皇后布局存入,然后将最后一行的皇后位置右移一个单位,重新进...

2018-11-14 15:41:03 228

原创 50. Pow(x,n)

题目:解答:主要是求 n>0n > 0n>0 的情况的计算,其他时候,可以通过转换得到。而 n>0n > 0n>0 的情况下,​ n=a020+a121+a222…am2mn = a_0 2^0 + a_1 2^1 + a_2 2^2 \ldots a_m 2^mn=a0​20+a1​21+a2​22…am​2m​ x...

2018-11-14 15:40:29 98

原创 49. Group Anagrams

题目:解答:设置一个map,将每个字符重排后,与序号存入一个map<int, list>的字典中,然后遍历该字典的序号即可。代码:class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs

2018-11-13 12:57:20 100

原创 48. Rotate Image

题目:解答:外圈向内圈逐步旋转代码:class Solution {public: void rotate(vector<vector<int> > &matrix) { int len = matrix.size(); if( len == 1 || len == 0 ) return; for...

2018-11-13 12:56:52 118

原创 47. Permutations II

题目:解答:题46的解法在这里依然适用,不需要做修改代码:class Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { int len = nums.size(); vector<vec

2018-11-13 12:55:57 128

原创 46. Permutations

题目:解答:使用迭代形式、依次取出下一次序列。代码:class Solution {public: vector<vector<int>> permute(vector<int>& nums) { int len = nums.size(); vector<vector&a

2018-11-13 12:55:32 129

原创 45. Jump Game II

题目:解答:方法一:使用一个数组,用于记录在没一个index处所需要跳跃的最少次数。如果当前位置i+num[i] > len -1,则说明已经可以从当前位置次数+1跳跃到终点。否则,将i+1->i+num[i]之间的所有数据,如果最少跳跃次数大于当前位置+1,将最少跳跃次数更新为当前位置+1.方法二:不使用缓存数组,通过一个标记位,标记第几轮能跳跃的距离范围。例如:​ 2 5...

2018-11-13 12:55:05 324

原创 43. Multiply Strings

题目:解答:将乘法展开为分布乘法之和即可。代码:class Solution {public: void reverse(string& s){ for(int i = 0;i < s.size() / 2; ++i){ swap(s[i], s[s.size()-1-i]); } } str...

2018-11-13 12:54:37 109

原创 42. Trapping Rain Water

题目:解答:使用两次遍历,记录从1->i的maxheight值,如果有低于的,则差值存入temp中,如果当前height大于maxheight,则将temp值存入sum中,因为此时可以确认之前temp的保留值会留存下来。然后反向遍历一次,完成。代码:class Solution {public: int trap(vector<int>& A) { ...

2018-11-13 12:54:09 102

原创 41. First Missing Positive

题目:解答:这个涉及到一个排序算法,基数排序,在有序空间内,排序复杂度为 O(m)\Omicron(m)O(m) , m不是数列的个数,而是数列的值的范围。方式是空间换时间,遍历数列,将每个数拍到自己在数组的正确序号位置上。本题也是类似解法,处理方式是首先将数值为小雨等于零或者大于len的值置为-1,然后基数排序处理其余数,最后即可找出排序中缺失的数,如果没有,则为len + 1;代码...

2018-11-13 12:53:33 105

原创 40.Combination Sum II

题目:解答:借用39题的解法,将while改为if做循环,并对第一个递归式做去重即可。代码:class Solution {public: void findCompare(vector<int>& candidates, vector<vector<int>>& r

2018-11-13 12:52:59 107

原创 39. Combination Sum

题目:解答:思路是递归求解,首先序列排序,然后依次对第一个数 a0a_0a0​ 取 0→⌊targeta0⌋0\to\left\lfloor\dfrac{target}{a_0}\right\rfloor0→⌊a0​target​⌋ ,递归处理1-len的序列,这样递归处理对第i个数,取 0→⌊target−sumpreai⌋0\to\left\lfloor\dfrac{target-su...

2018-11-12 16:18:24 249

unity shader book(5.x cookbook + 2018 shader effect)

Book Description Since their introduction to Unity, Shaders have been notoriously difficult to understand and implement in games: complex mathematics have always stood in the way of creating your own Shaders and attaining that level of realism you crave. With Shaders, you can transform your game into a highly polished, refined product with Unity’s post-processing effects. Unity Shaders and Effects Cookbook is the first of its kind to bring you the secrets of creating Shaders for Unity3D—guiding you through the process of understanding vectors, how lighting is constructed with them, and also how textures are used to create complex effects without the heavy math. We’ll start with essential lighting and finishing up by creating stunning screen Effects just like those in high quality 3D and mobile games. You’ll discover techniques including normal mapping, image-based lighting, and how to animate your models inside a Shader. We’ll explore the secrets behind some of the most powerful techniques, such as physically based rendering! With Unity Shaders and Effects Cookbook, what seems like a dark art today will be second nature by tomorrow.

2018-12-10

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

TA关注的人

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