自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 「代码随想录」图论之图的DFS遍历

如果把二维矩阵中的每一个位置看做一个节点,这个节点的上下左右四个位置就是相邻节点,那么整个矩阵就可以抽象成一幅网状的「图」结构,使用visited数组来记录节点的访问情况。其实就是遍历二维数组(图)的每个值(节点),如果发现岛屿“1”,就使用DFS将连通的部分全部变为“0”(淹没岛屿),最后返回发现的岛屿数即可。graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点 graph[i][j]存在一条有向边)。此处的graph为题目给出的图,root为当前搜索的根节点。

2023-08-14 00:27:23 326

原创 「代码随想录」Python刷题笔记Day16-二叉树3

注意:我们要比较的是根节点的左子树与右子树是不是相互翻转的,理解这一点就知道了其实我们要比较的是两个树(这两个树是根节点的左右子树),所以在递归遍历的过程中,也是要同时遍历两棵树。正是因为要遍历两棵树而且要比较内侧和外侧节点,所以准确的来说是一个树的遍历顺序是左右中,一个树的遍历顺序是右左中。1.比较二叉树外侧是否对称:传入的是左节点的左孩子,右节点的右孩子。1.左节点为空,右节点不为空,不对称,return false。2.比较内侧是否对称,传入左节点的右孩子,右节点的左孩子。

2023-06-12 13:24:14 85

原创 「代码随想录」Python刷题笔记Day14-二叉树1

【代码】「代码随想录」Python刷题笔记Day14-二叉树1。

2023-06-09 20:00:14 127

原创 「代码随想录」Python刷题笔记Day13-队列和栈3

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。时间复杂度O(nlogk),因为只维护了k大小的堆,只对k个元素做了排序。当n>>k时,时间复杂度明显降低。在纸上滑动了半天,总算是滑明白了……(一刷至少需要理解思路)理解思路就很困难……

2023-06-09 11:58:11 66

原创 「代码随想录」Python刷题笔记Day11-队列和栈

解释:例如,在 “abbaca” 中,我们可以删除 “bb” 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 “aaca”,其中又只有 “aa” 可以执行重复项删除操作,所以最后的字符串为 “ca”。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。有效的算符为 ‘+’、‘-’、‘*’ 和 ‘/’。返回一个表示表达式值的整数。

2023-06-08 17:47:51 51

原创 「代码随想录」Python刷题笔记Day10-队列和栈

只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。这是一个模拟题,不涉及具体的算法,考察的就是对栈和队列的掌握程度。时间复杂度: push和empty为O(1), pop和peek为O(n)时间复杂度: push为O(n),其他为O(1)int peek() 返回队列开头的元素。

2023-06-03 16:43:55 56

原创 「代码随想录」Python刷题笔记Day8-字符串

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]

2023-06-01 13:35:22 74

原创 「代码随想录」Python刷题笔记Day7-哈希表

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。注意:答案中不可以包含重复的三元组。

2023-05-31 23:51:10 109 1

原创 「代码随想录」Python刷题笔记Day6-哈希表

使用n = sum(int(i) ** 2 for i in str(n))精简版的,还是新建一个函数循环divmod(n, 10)求解。后者肯定相对更慢,容易超时。给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。没有采用数组的方式,而是得益于方便的字典,结合加1和减1用来对照s和t中的每个字母出现的次数(无序)。时间复杂度为O(n),空间上因为定义是的一个常量大小的辅助数组,所以空间复杂度为O(1)

2023-05-29 22:35:28 110 1

原创 「代码随想录」Python刷题笔记Day4-链表专题

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

2023-05-28 23:36:43 114

原创 「代码随想录」Python刷题笔记Day3-链表专题

addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。**【题目】**给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。deleteAtIndex(index):如果索引 index 有效,则删除链表中的第 index 个节点。

2023-05-28 22:37:54 117 1

原创 「代码随想录」Python刷题笔记Day2-数组专题

本题真的太让人想return sorted(x*x for x in nums)了,没想到拆解开后,双指针的想法真的是十分巧妙。早上看完题目和提示用双指针后,设想了一下,左指针用来计算平方,右指针用来判断和替换,想着想着又变成暴力求解了?时间复杂度是O(n),每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)。本质上是两层for循环,用滑动窗口进行优化。滑动窗口本身也是一个双指针,用一个for循环做了两个for循环做的事。

2023-05-25 23:06:49 91 1

原创 「代码随想录」Python刷题笔记Day1-数组专题

1.对于左闭右闭写法,mid所在的区间为[left, right],当left=right时区间还是有意义的,还不能退出循环,还需要判定是否存在mid=left=right;删除一个元素是一个O(N)的过程,需要将后面的元素逐个向前覆盖,比如erise(Python中的remove?给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。3.时间复杂度:O(log n),空间复杂度:O(1)

2023-05-24 22:18:49 185

原创 Leetcode刷题手札——MySQL

菜鸡从-1开始的刷题记录

2022-11-18 00:29:02 453

原创 Ubuntu安装了python3.8和python3.7,安装numpy时出现问题

环境:Ubuntu20.04由于目前PySpark只支持python3.7及以下的版本,而Ubuntu20.04自带的python3是python3.8.5,于是我安装了python3.7.9,且没有改动默认的python版本(千万别改,不然会出大问题!!别问我为啥知道),只是在使用PySpark的时候使用python3.7。然而,在安装numpy等包时,直接pip install 的话,安装的是python3.8对应的版本和位置。于是在打开python3.8时,可以import numpy;但是在p

2021-05-06 16:26:22 2898

原创 解决Spark读写HBase数据的相关问题

博主在学习并实践厦门大学林子雨老师的《Spark编程基础(Python版)》及配套网络教程的过程中,在使用Spark读写HBase数据时遇到了些许问题,此处进行记录。才疏学浅,欢迎指正批评~版本Parallels Desktop 16Ubuntu20.04 虚拟机Hadoop 3.1.3Spark 2.4.0 Using Python version 3.7.9HBase 2.2.2初步配置Spark时遇到的问题PySpark目前还不支持python3.8及以上的版本,且Ubuntu20.0

2021-04-28 14:27:07 515

空空如也

空空如也

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

TA关注的人

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