- 博客(30)
- 收藏
- 关注
原创 关于ImportError: attempted relative import with no known parent package解决
这段代码的主要目的是动态地修改模块搜索路径,以确保在特定项目结构下,脚本能够正确导入需要的模块。这样做可以避免直接修改环境变量或依赖硬编码的路径,从而提高代码的可移植性和灵活性。
2024-06-13 11:38:02
419
1
原创 记录vscode ssh 的坑:cannot open shared object file: Permission denied
上午还能用vscode连服务器,下午突然就不行了。一直找不到原因,后来同学在.vscode-server目录下使用ldd node命令,查看了库链接有什么问题,发现其中一个是not found,如下图1。上网直接搜索,都是说要kill掉vscode-server,然后就重新连接;,意识到是权限问题,然后找lib的文件夹位置(在/usr/lib)并进入,输入命令。找lib的文件夹位置(在/usr/lib),输入命令。,按照网上做法没用;,发现问题解决了, 如下图2。
2023-07-14 11:52:23
1102
原创 LeetCode_贪心专题
有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。链接:https://leetcode.cn/problems/container-with-most-water。关键:高的线往内部移动一格时,容积必然不变或者减小;而矮的线往内部移动一格时,容积可能增大。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。:目标容积是由两个坐标下不同高度线决定的。,迭代到最后一步时,得到的是全局最优解。返回容器可以储存的最大水量。说明:你不能倾斜容器。
2023-05-25 19:32:17
162
原创 LeetCode_树专题
这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。(2)序列化时:按层序添加结点的数值到字符串res中,如果是空,则添加“n ”输入:root = [1,2,3,null,null,4,5]输出:[1,2,3,null,null,4,5]
2023-05-18 21:49:52
121
原创 pycharm批量给键值添加引号
上了一个老师的爬虫课,看到他上课时很快就能添加引号,就想知道怎么整的,但发现网上给我的正则表达式总是有这样那样的问题。(注意,我的添加引号仅仅适合我这样的情况)第五步:点击上图中的replace all(在上图中最上方两个箭头的中间位置), 对应的是中文的“替换全部”第四步:选中上图所指示的内容。比如你想让一下的东西。
2022-11-11 12:52:05
1187
原创 LeetCode_栈专题
接雨水一.题目二.思路三.代码一.题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == height.length1
2022-01-15 23:14:30
4188
原创 Linux下安装docker(yum方式)
正文:红帽虚拟机联网检测虚拟机版本信息cat /etc/redhat-release卸载旧版本yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine安装准备的环境yum install -y yum-utils device-mapper-persistent-dat
2022-01-10 16:37:18
588
原创 Linux下安装tomcat(tar方式)
安装tomcat步骤1.官网下载2.解压3.执行与停止4.题外话:确保能访问的防火墙和安全组问题步骤1.官网下载https://tomcat.apache.org进去官网之后是上面这样然后往下划选择tomcat左边栏选择download中which version选择第二或第三新的版本,因为最新版本一般不够稳定这里我选择了第三行的版本9,选择左侧download中的tomcat9.0此处我选择了binary document 下core下的tar.gz把下载好的文件放在/ho
2022-01-10 15:37:15
1007
原创 Linux下安装jdk环境(rpm方式)
安装jdk步骤1.检测java环境是否存在2.若存在,卸载3.安装4.配置环境变量5.输入命令使配置文件起作用6.检测步骤1.检测java环境是否存在java -version 检测java环境是否存在或者rpm -qa|grep jdk ,检测jdk版本信息jdk_(代表jdk的版本信息)显然,我这里是已经存在jdk的。注意:此处的jdk信息应复制下来,等会卸载需要用2.若存在,卸载rpm -e --nodeps jdk_ ,强制卸载java环境没报错,故卸载成功3.安装首
2022-01-09 23:18:00
979
原创 Linux常用命令整理
一.查看文件:cat 由第一行开始显示文件内容tac 从最后一行开始显示nl 显示的时候,顺道输出行号!less 可以往前往后翻页!head 只看头几行 (如head -n 10 t.txt 表示显示文件前10行)tail 只看尾巴几行...
2022-01-07 14:57:37
672
原创 51单片机实现浮点数四则运算计算器(C语言的偏软硬件实现)
题外话:由于没有学习过状态图,这次实现使用的是一种记录有效的上次输入的状态。如今记录此篇,等到将来学习了相关知识,再回来对比我的思想。(似乎状态图的容错性更高)一.要求:支持标点符号[0-9], [±*/], [(], [)], [~], [.], [=] (其中~为负号);二.设计思想:(以下只是大致框架,具体实现后,发现存在一些错误,下面并未记录细节)初始 [0-9] [+ - * /] [(] [)] [~] [.] [=] 共19个符号,8个状态0 1 2
2022-01-06 15:52:13
6478
原创 DS_图知识点汇总(持续补充)
(说明:为了整理方便,图片为王道考研视频的截图,如果算作侵权,会立即删除)三.拓扑排序1.有向无环图(描述含公共子式的表达式)2.AOV网3.AOE网(关键路径)
2021-11-14 23:22:29
482
原创 判断语句1 == x的问题(运算符的执行顺序)
之前一直觉得判断条件写成1 == x的方式实在是妙,今天发现这么写的问题如 1 == 3&1 和 3&1 == 1是不同的意思。这里按照从左往右执行的顺序,前者是false,后者是true
2021-04-05 13:44:20
171
原创 kmp__记录一个未知原因的循环异常跳出错误
重写kmp_plus,发现有个kmp_index函数里while循环异常跳出,没有达到结束条件,居然神奇的跳出了循环,原因暂时不明,记录。测试用例,主串为hehelahello,字串为hello修改之前#include<iostream>#include<string>using namespace std;int kmp_index(string s, string t);void get_next(string t, int next[]);const int
2021-04-02 13:35:28
155
原创 基础训练__剪格子(搜索)(C++)[二维数组传参问题]
二维数组传参和一维差不多,格式为f(b)和void f(b[][N]);注意,在任何函数中修改b的值,都是修改了实参的值;类比树的遍历,易知本题需要使用图的DFS搜索;注意,树的分层结构决定了下一个遍历是必定未访问过的,但图却不同,需要建立一个新的映射数组,判断是否访问过;注意,为了防止映射数组被修改,必须要在每个函数里新建一个judge数组,用映射数组赋值给judge数组,传参的时候,传judge数组。题目我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。本题的要求就是请你编
2021-03-27 14:22:02
133
原创 DS_快速排序_original(C++) 【快排基本实现+自带qsort的使用】
快排的原理暂时不写,随便上网都能查到,本身也不复杂。(理解是一回事,想出来又是一回事,向大佬致敬)先吐槽“一”句。理解快速的概念时,自以为原理很简单,随便看了两眼然后开始编程,进入死循环,通过注释发现问题在quick_sort()的函数里,然后一行一行对照着快速排序的概念看。调了两个小时,总是觉得,没问题呀,这么简单的东西,就几行代码的东西,越来越急躁,越调试越看不出问题。然后死马当做活马医,把这里的"==“改成了”>=",然后通过了。总而言之,我就是菜,还急(没考虑到该排序的各种情况,从而判
2021-03-19 02:43:26
261
原创 DS_字符串匹配KMP算法(个人版vs教科书版)C++实现
串的模式匹配(Pattern Matching)有一主串s1,一待匹配串t1。现在将s1的子串和t1匹配,若找到,则输出location;若没找到,则输出-1然后,在模式匹配中(n是s1长度,m是t1长度)(1)朴素算法就是笨方法,像我这种笨蛋想到的第一种解决方式就是它,逐一比较,复杂度是n*m;(2)有一种神奇的算法叫KMP,使得匹配速度加快(特别是n远远大于m时),降低了时间复杂度和s1长度的相关性(瞎说的,直觉是这样),因为本算法会吸取教训,让子串的匹配不重头开始逐一比较,而是退回到一定位置。
2021-02-06 21:56:15
412
原创 DS_存储 稀疏矩阵 的十字链表(C++实现)
关于稀疏矩阵,就是值为0的元素数量很多的矩阵。如果把0元素位置看成空白,非零看成黑点,稀疏矩阵就像是一张照片,广阔的天空中只有远方的几只鸟。我也不知道这么理解对不对,瞎猜的。至于矩阵的应用,书上说计算机图形学,工程技术中会用到,但现在我没整过具体的东西,所以就关于稀疏矩阵有啥用,以后碰到了再补上。那么现在如何存储稀疏矩阵呢?怎样才能做到存的空间小,修改起来方便,使用的时候能快速呢。目前我只知道两种书上提到的方法:1.三元组线性表2.十字链表OrthogonalList现在,就十字链表,使用C++实
2021-02-04 15:39:52
603
原创 DS_共享堆栈C++实现
//堆栈就像个水桶//现在咱们把两个水桶嘴对嘴//和一个水桶的时候相比,两个水桶都装满的判断条件是两个top指针相邻//还是因为懒,不说具体的了// DS_ShareStack.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;template<class T>class ShareStack{public: ShareStack(int max0
2021-01-25 22:10:16
155
原创 DS_多链表C++实现
//这是多链表,叫stack是因为写代码的时候脑子有点抽。//先是定义一个节点类LinkStackNode;//然后定义一个数组类MultiLinkStack;//数组的每个节点,相当于链表的头结点;//另外,代码写的不太严谨,y的值没有去判断是否异常。说白了就是懒。// MultiLinkStack.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;templat
2021-01-25 22:04:12
246
原创 DS_双向链表C++实现
//如题所示// DS_DoublyLinkedList.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;template<class T>class DBLNode{public: T data; DBLNode<T> *prior, *next;};template<class T>class DBLinkList
2021-01-25 21:52:58
271
1
原创 DS_C++汉诺塔实现
//经典汉诺塔,没啥好说的//递归问题的充分必要条件:1.原问题可以逐层分解成规模更小的问题2.小问题和大问题的性质相同3.问题规模小到一定程度,有个临界值,可以直接看出答案// DS_Recursion_Hanoi.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;void hanoi(int n, char a, char b, char c);int ma
2021-01-25 21:48:02
139
原创 DS_汉诺塔非递归C++实现
//因为递归的调用浪费了许多空间,所以我们处理递归问题的时候,很容易想到整一个plus版,只保留必要的信息,而省略函数返回地址,函数参数之类的东西。或者干脆不使用递归,通过找到规律,用其他方法实现。//现在,处理汉诺塔问题时,发现时间复杂度很高,2的n次方级别,以及空间很浪费,储存了函数返回地址和函数参数之类的。当然,目前本菜鸟不知道怎么降低时间复杂度,现在只知道把汉诺塔的递归转换成栈。(其实本质没变,时间复杂度不变,只是节省了一丢丢空间)//今天懒,细节先不说了。大概要注意一下入栈和出栈顺序是反着的。
2021-01-25 21:35:48
203
原创 操作系统实验3(银行家算法)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-11-17 21:16:37
820
原创 操作系统实验1实现简单的Shell(2020.10.6)
思路:首先将用户输入的命令存储到 一维指针数组 *args[]中,整个args数组存储一条完整命令,并保存到二维指针数组 *str[][]中然后通过循环数组,利用front 和rear实现记录最多十条的历史命令源代码如下:#include<stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>//the maximum length command#d
2020-10-06 23:54:02
629
原创 linux虚拟机a problem has occurred and the system can‘t recover解决方案
之前使用virtual box 的Linux系统出现“无法为虚拟机打开一个新任务”的问题,经过百度发现,是因为在bios里没将一个和vm有关的设置调成enable然后能成功打开界面了,开心的一批,却在加载中突然冒出了如下问题, 多次百度,没有发现有效的解决方案,于是我干脆把虚拟机卸载干净,把ova文件也删了重装,还是没有解决问题。就在这进退两难的时候,突然想到网上看到过与此问题有关的解决方案,说是什么显示坏了,要修复,我就再次启动虚拟机,此时我无意间注意到了上图最下面一行磁盘图标闪烁,先是红色,然后
2020-10-02 15:22:02
5794
14
原创 同时安装python2和python3时的问题
1.官网下载python2, 3 当版本号一定新时,自带安装pip2.正常安装3.设置路径4.在cmd中依次输入pip2.7(版本号在scripts看), pip3.7(版本号在scripts看)pyhon(这是python3), python2(输入前先修改python2版本中python.exe为python2.exe)此时出现了fatal error… 问题,然后百度找, 试了各种方法都解决不了,最后打开python-2.7.17.amd64,一键修复,解决。马克一下,不懂为啥python
2020-05-20 21:23:28
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人