自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【leetcode】27. 移除元素

1、本题使用快慢指针,将fast读取的符合要求数值放入slow位置即可。2、改进原因:如果要移除的元素恰好在数组的开头,例如序列[1,2,3,4,5],当val == 1时,我们需要把每一个元素都左移一位。  注意到题目中说:“元素的顺序可以改变”。所以,实际上我们直接将最后一个元素 5 移动到序列开头,取代元素 1,得到序列 [5,2,3,4],同样满足题目要求。这个优化在序列中 val 元素的数量较少时非常有效。  实现方面,我们依然使用双指针,两个指针初始时分别位于数组的首尾,向中间移动遍历该序

2022-08-13 21:58:25 140 1

原创 【leetcode】26. 删除有序数组中的重复项

1、方法一思路是顺序读取列表内容,每次删除重复元素后,将后续元素前移一位,然后继续顺序读取。由于python特性所以代码简洁,但是由于嵌套循环,时间效率很低。2、方法二使用双指针,快指针用于判断新元素和结束条件,慢指针用来更改列表内容。由于原题要求,只需要更改列表值,不要求删除后续重复元素,所以只需要将前n项更改为不重复元素即可。...

2022-08-08 23:33:45 1332

原创 【leetcode】24. 两两交换链表中的节点

1、本题虽然难度中等,但并不难,可用迭代和递归两种方法解答。

2022-08-07 19:32:28 134

原创 【leetcode】7. 整数反转

1、本题较为简单,输出首尾反转之后的输入x即可,因此第一时间想到的是将其转化为字符串,利用字符串的切片将其首尾反转,再转化为int型数值。这是方法一的思路,另外要注意的两个细节是①根据正负号分类处理;②判断转化为int型之后是否越界。2、方法二没有将其转化为字符串,思路为处理输入整数x,通过"%10"or"%-10"得到尾数,将尾数加到输出整数y上,最后将x整除"10"or"-10";每次遍历判断x是否为0,y*10后是否越界。3、注意:负数整除要"除以(-10)"。...

2022-07-31 12:04:20 60

原创 【leetcode】22. 括号生成

1、暴力法是将全部2*n个的字符组合罗列出来(不一定左右括号各为n个),然后判断删除不符合要求的。判断方法:依次读取字符串,num=0,左括号num+=1、右括号num-=1,若其中出现小于0的情况、或最后num!=0,则该字符串不符合要求。2、递归是一种算法结构,而回溯是一种算法思想,它是用递归实现的,回溯的过程类似于穷举法,但回溯有“剪枝”功能,即自我判断过程。3、回溯法在运行的过程中进行判断,只有符合要求的情况才添加括号,并进行递归。判断方法:①当len(总长) == 2 * n时停止;...

2022-07-31 11:55:23 1321

原创 【leetcode】21. 合并两个有序链表

1、本题较简单,使用归并排序即可。2、学习通过递归排序的方法。3、在递归调用自身时,self.mergeTwoLists(list1, list2.next);self.mergeTwoLists(list1.next, list2),使用“self.xx”。

2022-07-31 11:53:56 73

原创 【leetcode】20. 有效的括号

1、判断括号的有效性可以使用「栈」这一数据结构来解决。2、由于需要三组不同的括号进行匹配,所以使用字典记录匹配对象。3、输出列表是否为空:return not stack,同return stack == []

2022-07-31 11:52:25 1334

原创 【leetcode】19. 删除链表的倒数第 N 个结点

1、双指针思路:后指针先移动n次,然后前后两指针一起移动,当后指针移动至末尾,则前指针在倒数第n个位置。2、栈:将ListNode对象依次放入列表中,从后往前删除n次,则得到倒数第n+1个位置。3、为了便于实现①找到倒数第n+1个对象;②返回值为第一个对象;③考虑返回值为空的情况。创建第一个对象时,采用start = ListNode(0, head)的方法。......

2022-07-31 03:00:01 84

原创 【leetcode】18. 四数之和

1、该题目为15、16题的结合,只需在“三数之和”外层再添加一层循环即可。但是,我们发现该方法的运行时间很长,时长达到“840ms”,需要优化。2、在循环体内,添加判断语句,以此减少循环的次数。经过优化,时长减少至“44ms”。...

2022-07-27 14:24:54 249

原创 【leetcode】17. 电话号码的字母组合

总结1、题目描述,根据数字字符串,输出对应字符的组合,n个数字对应组合的字符个数为n,最后将全部组合置于列表中。2、面对寻找所有的可行解的题目,可以选择回溯算法(深度优先遍历、广度优先遍历),代码通过函数递归实现回溯算法。3、代码中,在执行完成backtracking()的内容后,使用path.pop()删除path列表的最后一个元素,目的是完成剩余的深度优先遍历过程。...

2022-07-26 10:23:02 54

原创 【leetcode】16. 最接近的三数之和

1、思路同15题,但是由于只需输出最接近target的元素和,所以可以不进行重复数组判断。2、暴力破解的三重循环,不出所料依旧超时。3、python中的无穷大表示方法。

2022-07-25 13:56:28 352

原创 【leetcode】15. 三数之和

1、方法一通过三重循环获取数组,但是题目要求最终结果不能存在重复,因此需要先记录列表重复元素位置,再将不重复数组,复制至新列表中。但是由于时间复杂度为O(n³),结果超时了。2、方法二该题重点是如何去除列表中的重复数组,为此的解决方法首先先对列表元素排序,然后再进行遍历,在第i次循环中,若该元素与(i-1)的元素相同,则跳过第i个元素,以此去除重复的数组。双指针我们在第二层循环内,寻找第2,3个元素的过程中,两个指针分别指向两侧,通过,判断是否要将三个元素放入列表中,以及是否移动指针。...

2022-07-24 19:21:11 40

原创 【leetcode】14. 最长公共前缀

1、思路先找到列表中最短的字符串Minstr,然后遍历列表中的全部字符串是否与Minstr有相同子字符串,最后输出最长子字符串。

2022-07-21 16:12:26 115

原创 【leetcode】13. 罗马数字转整数

1、顺序读取字符串,若字符对应数值小于右侧对应数值,则该数值取反。

2022-07-21 15:16:49 122

原创 【leetcode】12. 整数转罗马数字

1、方法一列出所有出现的罗马字符,通过循环计算输出字符顺序。注意所有字符中包括“IV=4,IX=9”这样的字符。2、硬编码数字方法:将各个十进制的数字位,用罗马字符分别表示出来,直接输出即可。由于输出的是字符,可以输出**return A+B+C**为返回值,使代码更简洁。...

2022-07-21 14:22:52 182

原创 【leetcode】11. 盛最多水的容器

1、通过“双指针”解决盛水问题非常典型。指针从两侧开始向中间移动,每次比较盛水量,最终得到输出结果。问题的关键在于移动哪一侧,由于盛水量为“两个指针指向的数字中较小值∗指针之间的距离”,所以我们每次移动指针对应高度较小的一侧。重视学习该类题目的双指针思路。...

2022-07-20 17:08:57 98

原创 【leetcode】9. 回文数

总结1、方法一思路:将整数转化为字符串,利用切片从两端进行读取比较。2、方法二思路:x每次%10加至(10*y)上,且x/10,当!(x>y)时结束while循环。这样便只需比较整数x的后半部分与前半部分是否相等即可,避免了整体反转可能产生的溢出问题。同时考虑到整数x的位数可能是奇数或偶数,返回值为return x == y or y // 10 == x。3、方法三图一乐即可,效率并不高。...

2022-07-19 15:39:15 63

原创 【leetcode】8. 字符串转换整数 (atoi)

1、本题重点学习DFA算法,通过“有穷自动机”避免了冗杂的情况,使代码整体逻辑性更强。我们也可以用下面的表格来表示这个自动机2、一般方法详见方法一。

2022-07-18 21:11:13 109

原创 【leetcode】6. Z 字形变换

1、方法一是纯粹找规律的,画出矩阵能够观察得出,n行的矩阵可分为两类,第一行与最后一行一类,中间行一类;通过找规律依次输出每一行即可。2、方法二的压缩矩阵很巧妙,通过观察得出,每一个字符都可以视为添加到了所在矩阵行的正右边第一个。尤其是这里的上下波动添加字符,这里的逻辑循环值得认真学习。同时循环外使用x,循环内使用enumerate函数的i,v,也值得学习并在今后使用。3、字典与哈希表的关系在python中,哈希表是实现字典的其中一种方式,除了哈希表,实现字典的另一种常见方式是红黑树。...

2022-07-17 20:48:44 114

原创 【leetcode】5. 最长回文子串

1、方法思路:我们要寻找回文序列,由回文序列的性质可知,其分为两种①“xxxAxxx”最中间为一个字符;②“xxxAAxxx”最中间为多个相同的字符。因此,我们从最中间字符入手,遍历字符串的每一个字符,首先判断当前位置的字符是否能成为中间字符,若为中间字符,则通过指针指向其中间字符的两端,在移动的同时判断两端的字符是否相等,若不等则结束本轮循环,输出当前字符作为中间字符的最长回文子串。考虑到当前字符对应的回文子串有可能是上述的②情况,所以当我们发现当前字符与其右侧字符相同时。......

2022-07-15 09:57:31 220

原创 【leetcode】3. 无重复字符的最长子串

1、方法一思路遍历字符串一遍。每次循环时判断当前字符是否在新建的字典中,若存在,则计算该子字符串长度,重新记录当前字符所在位置;若不存在,则将字符和所在位置放入字典中。最后输出最长子字符串长度。字典在遍历过程中是无法修改或删除字典内数据的。因此方法一中,将需要删除的变量写入列表中,在遍历列表的过程中,逐个删除字典中的数据。字典删除a.pop(key)3、方法二中使用了滑动窗口的方法,两个指针分别指向字符串的两端,判断两指针中间的内容是否符合需要,然后再进行指针移动。列表添加、删除注意。...

2022-07-14 10:08:21 178

原创 【leetcode】2. 两数相加

总结1、这里需要了解Python模拟指针的方法。本题中,实例化对象内的参数指向下一块内存中的实例化对象,以此模拟了C++中指针操作。2、此处模拟了指针不断串联的过程,做题中耽误了很多时间,需要学会。3、此处的返回值不是对象r本身,而是使用了”返回re->r”的操作,需要学习。.........

2022-07-14 09:39:52 327

原创 【leetcode】1. 两数之和

总结1、使用字典便于查找和添加。哈希查找复杂度为O(1),相较于暴力破解效率更高。2、题目关键在于,能否意识到将两数相减添加到字典中,便于以后查找的操作。

2022-07-14 09:16:53 229

原创 Encoder和Decoder

encoder记忆和理解信息,并进行信息提炼。相对于输入,通常会形成一个低秩的向量。decoder回忆与运用这些信息,将低秩的加工后的信息抽取出来,这时也可以混合其它信息,解码成需要用的形式。...

2022-04-18 20:26:41 608

原创 Softmax-with-Loss层反向传播的值除以批的大小

  在学习《深度学习入门:基于 Python 的理论与实现》153页的代码时,我对SoftmaxWithLoss层的反向传播实现产生了疑问,class SoftmaxWithLoss: def __init__(self): self.loss = None # 损失 self.y = None # softmax的输出 self.t = None # 监督数据(one-hot vector) def forward(self, x, t): self.t = t self.

2021-09-18 20:16:18 1161 10

原创 unity项目小tips

2021.5.9场景中新建空物体或者导入模型后,快速重置transform。(持续记录中…)

2021-05-09 22:19:26 63

原创 unity中Time.delaTime简单解释

unity中Time.delaTime简单解释在项目中控制物体移动,物体的运动速度忽快忽慢。这是由于物体的位置变化是按照帧率刷新的。 /// <summary> /// 每帧刷新 /// </summary> void Update() { transform.Translate(0, 0, 10); //物体沿着自身Z轴方向,每帧物体移动10米 }有时会因为Update()的刷新频率不一样,而导致有的单位时间Update刷新帧率60

2021-05-09 20:55:42 650 3

原创 unity导入经3dMax转换的FPX模型,场景运行没有画面

unity导入经3dMax转换的FPX模型,场景运行没有画面在3dMax转换格式时,本来的文件里附带了摄像机,该摄像机一同转变为.FPX导入至unity中,若unity又创建了一个摄像机,则会出现场景运行却没有画面的情况。...

2021-04-18 01:16:43 868

原创 unity添加第一人称控制器后,运行时第一人称下坠解决方案

unity添加第一人称控制器后,运行时第一人称下坠解决方案原因在unity导入场景时,地形、建筑模型都是没有添加碰撞组件的。因此,添加第一人称后,会由于地面没有碰撞组件造成下坠。解决方案1、在场景中添加新地形,观察地形组件包含情况(这一张是新添加的地形)(这一张是导入模型后的地面)2、经过对比,导入的场景地面相对与Plane缺少了Mesh Collider组件,因此添加该组件即可解决(如图)3、运行后第一人称控制器将不会下落...

2021-03-12 20:47:47 7114 1

原创 Maya如何切换中英文

Maya切换中英文打开Maya安装路径,打开resources-ln-,当前文件夹中存在文件en_US或者zh_CN,通过更改文件夹的名字,重新启动Maya即可切换中英文。

2021-03-07 11:18:58 4344

空空如也

空空如也

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

TA关注的人

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