力扣hot100-python
python刷题R5-未知
我明天再来学Web渗透
Try to learn more things.
展开
-
【hot100篇-python刷题记录】【最大子数组和】
4.cross函数中,计算跨过mid元素的数组的最大值,就可以从mid元素像左右两边扩展,由于可能出现一边倒的情况(左边/右边为0),则左右两边分别计算最大值,最后s1+mid+s2即可。2.将从left到right的计算简化为为left-mid,mid+1-right 以及left-mid-right 3者的最大值(因为有负数)3.上面左右两边的计算可以递归调用本身函数,left-mid-right的计算另起函数。当数组只有一个元素,这一条件需要放在递归计算那个函数,因为这是递归边界。原创 2024-08-19 06:13:05 · 275 阅读 · 0 评论 -
【hot100篇-python刷题记录】【矩阵置零】
使用thex和they将该元素的i和y存储起来,再分别遍历thex,将所有y的位置置0。遍历they,将所有x 置0。无非就是行和列都置0。原创 2024-08-19 06:23:53 · 127 阅读 · 0 评论 -
【hot100篇-python刷题记录】【无重复字符的最长子串】
遍历左指针,对于右指针也是遍历(分两种情况,情况1:没存在过,直接right+1;情况2:存在过,必须跳出去)原理好像是,两个相同的字母之间的就是最大非重复子串。你要检验是否出现过一个字母,用哈希表能做到O(1)这还是个不定长的滑动窗口。原创 2024-08-18 07:28:58 · 591 阅读 · 0 评论 -
【hot100篇-python刷题记录】【相交链表】
【代码】【hot100篇-python刷题记录】【相交链表】原创 2024-08-19 06:33:29 · 112 阅读 · 0 评论 -
【hot100篇-python刷题记录】【两数之和】
之所以不会出现上面的案例不通过的情况是,他没有初始化哈希表,所以避免了两个相同值记录下标的问题,由于题目给出对于每个输入只能有一个答案,所以不会出现3个相同的值。在第一次遍历记录的时候,如果数组存在相等的两个数,就只会记录最后一个数的下标,这显然不是我们想要的。由于哈希表查找为O(1)复杂度,简化两层循环在于找到i和j之间的关联,关联点在于target是和。我得专注于思考一些优化的方法以及优化的原理了,而不是仅仅在于解决问题。所以我们可以遍历一层哈希表,key是值,value是下标。这个版本没有优化成功。原创 2024-08-18 06:20:00 · 579 阅读 · 0 评论 -
【hot100篇-python刷题记录】【二叉树的中序遍历】
顺序:递归调用左子树,打印当前结点,递归调用右子树。ps:昨天被refused了,sad。原创 2024-08-20 05:49:45 · 160 阅读 · 0 评论 -
【hot100篇-python刷题记录】【移动零】
要用双指针来实现,想到一个办法,左右两边双指针,当左边指针找到0就和右指针交换值,要减少操作次数的话,就顺便判断一下右指针是否为0即可,最后肯定是双指针碰撞的。那就让两个指针相邻从数组头出发,遇到0就交换值,right的值应该不为0才对。不对,不能交换值,因为不能移动非零元素的相对位置。原创 2024-08-18 06:42:35 · 192 阅读 · 0 评论 -
【hot100篇-python刷题记录】【和为 K 的子数组】
R5-子串篇滑动,应该可以使用滑动窗口来解题。貌似前缀和也可以,left,right两个指针,right的前缀和-left的前缀和表示的就是从left到right数组的和。这题之前做过,有点印象,先入为主。要利用前缀和计算某个连续数组的值。先使用哈希表记录每个前缀和出现的次数。当计算到某个前缀和为s的时候,我们判断s-k这个前缀和是否存在。如果这个前缀和是存在的,那么说明从s-k的位置到s的位置这一段连续的数组是符合题意的。原创 2024-08-19 05:43:54 · 276 阅读 · 0 评论