- 博客(146)
- 资源 (1)
- 收藏
- 关注
原创 Servlet和AJAX实现不跳转页面交换数据
前言:今天写了一个简单的作业题答案搜索的网站,后端用的Servlet与mysql进行查询,然后将数据通过request.getRequestDispatcher(url).forward(request, response)实现数据交互,但是问题来了。如果我用前端jsp的话无法实现在提交表单后不跳转或者无痕迹的情况下将答案显示出来,那么怎么办呢?通过百度我找到了一个方法:用ajax实现前端...
2020-04-30 20:34:04 1490 2
原创 Scrapy爬取新浪微博#陈情令
一、起因最近几天陈情令大火,而#肖战#王一博等人也成为众人所熟知的对象,所以我想用Scrapy爬取演员的微博信息来分析下演员信息二、目标本次爬取的目标是X玖少年团肖战DAYTOY的公开基本信息,如用户昵称、头像、用户的关注、粉丝列表以及发布的微博等,这些信息抓取之后保存至Mysql,并绘制出图表三、准备工作请确保代理池、Cookies池已经实现并可以正常运行,安装Scra...
2019-08-16 07:49:25 1411 2
原创 Python爬取m3u8格式视频并解密ts文件合并转为mp4格式
一. m3u8是什么格式m3u8是苹果公司推出的视频播放标准,是m3u的一种,只是编码格式采用的是UTF-8。m3u8准确来说是一种索引文件,使用m3u8文件实际上是通过它来解析对应的放在服务器上的视频网络地址,从而实现在线播放。使用m3u8格式文件主要因为可以实现多码率视频的适配,视频网站可以根据用户的网络带宽情况,自动为客户端匹配一个合适的码率文件进行播放,从而保证视频的流畅度。...
2019-07-26 22:36:54 10873 7
原创 2023面经
在数据库中,尤其是在MySQL中,“回表”(table scan)是指当查询无法仅通过索引树(index tree)来获取所需的数据时,数据库需要回到原始的数据表(table)中去检索数据。为了减少回表操作,数据库管理员可能会考虑创建包含所有需要查询的字段的覆盖索引(covering index),这样查询就可以直接从索引中获取到所需的数据,而不需要回表。因此,当用户执行查询时,如果查询条件包含非索引列(即索引列之外的列),数据库可能需要先通过索引找到对应的主键值,然后回到主表中获取完整的行数据。
2024-01-22 17:19:16 380
原创 git推送远程仓库报错:fatal: unable to access ‘https://github.com/***.git/‘: OpenSSL SSL_read: Connection was
git推送远程仓库报错:fatal: unable to access ‘https://github.com/***.git/‘: OpenSSL SSL_read: Connection was
2023-01-29 20:35:23 695 1
原创 C# 使用Windows组件时控制台无输出解决方法
C#使用Windows组件时打印输出内容调用方法:MessageBox.Show("内容");
2022-02-22 17:26:12 887
原创 LeetCode - 二叉树的层序遍历 II
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
2021-11-29 10:36:01 206
原创 不用xftp传输工具从Windows向Linux传文件
前言正常为方便,我通常会使用xfp来从windows上拷贝文件到Linux上,但xfp总是更新,而且还收费,我很久才会使用一次文件传输功能,不值得。所以这里使用另一种方法,linux中的scp命令。1命令功能:scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。格式为:scp [可选参数] windows(linux)文件路径 linux用户名@主机地址:/目录路径.
2021-05-27 09:20:31 537
原创 Python创建二维数组
因一次笔试中忘记如何用python创建二维数组,遂记录下来.成功没有捷径,一定要脚踏实地.没有使用numpy模块,若想使用numpy模块创建二维数组请移步。一:初始化一个元素从0 - n*m的二维数组row = int(input())column = int(input())dp = [[i*column + j for j in range(column) ] for i in range(row)]#第i行第j列元素=元素所在行数*总列数+该元素所在的列数print(dp)
2021-01-22 12:54:51 4516 2
原创 python实现京东商品秒杀功能
from selenium import webdriverimport datetimeimport time# 打开Chrome浏览器driver = webdriver.Chrome()def auto_buy(username, password, purchase_list_time): print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), "打开登陆界面") driver.get("htt...
2021-01-20 14:27:49 609
转载 判断是否为素数的高效方法(Python)
算法一:针对输入的数字x,我们可以遍历从2到x-1这个区间中的数,如果x能被这个区间中任意一个数整除,那么它就不是质数。def is_prime1(x): for i in range(2, x): if num % i == 0: return False return True算法二:对算法一的优化,事实上只需要遍历从2到√x即可。def is_prime2(x): for i in range(2, int(x ** 0.
2021-01-20 10:19:33 5853 1
原创 求二叉树高度算法(递归、层次)
方法一:递归因为递归是先遍历完每棵子树再输出,所以只需要比较哪棵子树最深并返回该子树的高度并加上根结点(1)即为该二叉树的高度。代码:
2020-10-07 17:47:52 7261
原创 设树B是一棵采用链式结构存储的二叉树,编写一个把树B中所有结点的左、右子树进 行交换的函数
思路:递归,自下而上交换代码: TreeNode* mirrorTree(TreeNode* root) { if(root){ mirrorTree(root->left); mirrorTree(root->right); TreeNode* temp = root->left; root->left = root->right;
2020-08-31 08:55:10 805 2
原创 试给出二叉树的自下而上,自右而左的层次遍历算法
封装好的二叉树各种操作的代码:#include“initList/initTree.h“思路:用正常的层次遍历算法,唯一区别就是变为逆向输出,很容易联想到栈,可以将输出语句改为压栈语句,等层次遍历完之后再输出栈元素,即为结果。思考:如果要求层次遍历自上而下,自右向左输出,该如何实现?代码://层次遍历 下自上,右自左void layerR_LVisit(BiTree T){ BiTree p = T; stack<BiTree> s; queue<
2020-08-28 21:48:44 2121
原创 #include“initList/initTree.h“
#include<iostream>#include<stack>#include<queue>using namespace std;typedef char ElementTYPE;//结构体定义typedef struct Node{ ElementTYPE data; struct Node *lchild; struct Node *rchild;}BinaryTree,*BiTree;class initTree.
2020-08-28 21:43:44 292
原创 有两个循环单链表,链表头指针分别为h1和h2,编写一个函数将链表h2链接到链表 h1之后,要求链接后的链表仍保持循环链表形式。
代码:LinkList* connectList(LinkList* L1,LinkList* L2){ //L1尾接到L2头,L2尾接到L1头 LinkList* p1 = L1->next; LinkList* p2 = L2->next; while(p1->next!=L1) p1 = p1->next; p1->next = L2;//L1尾接到L2头节点 while(p2->next!=L2
2020-08-22 20:42:51 2039
原创 设有一个带头结点的循环单链表,其结点值均为正整数。试设计一个算法,反复找出单链表中结点值最小的结点,并输出之,然后将该结点从中删除,直到单链表空为止,最后再删除表头结点
代码:void circular(LinkList* L){ LinkList* head = L; while(L->next != NULL){ LinkList* p = L->next; LinkList* pre = L; LinkList* min = p; LinkList* minpre = pre; while(p != head){ if(min->da
2020-08-21 21:18:22 2258
原创 设A和B是两个单链表,其表中元素递增有序,使用一算法将A和B归并成一个案元素递减有序的单链表C
代码:LinkList* commonElem(LinkList* L1,LinkList* L2){ LinkList* L = new LinkList; LinkList* rear = L; LinkList* p1 = L1->next; LinkList* p2 = L2->next; while(p1!=NULL && p2!=NULL){ //如果相同,尾插法插入链表L if(p1-&g
2020-08-21 19:59:11 7691 5
原创 假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
代码:void mergeList(LinkList* L1,LinkList* L2){ //将L2插入到L1中 LinkList* p = L1->next;; LinkList* p2 = L2->next;; L1->next = NULL; //头插法 while(p!=NULL && p2!=NULL){ if(p->data>p2->data){ /
2020-08-20 21:13:50 5713 5
原创 设C = {a1,b1,a2,b2......,an,bn},采用头结点的hc单链表来存放, 设计一个就地算法,将其拆成 A = {a1,a2....a2} B = {bn,bn-1,...b1}
代码:void split(LinkList* L){ LinkList* L1 = L;//如果将A分成两个链表 B和C则 new LinkList;;//odd LinkList* L2 = new LinkList;//even LinkList* p; LinkList *rear1 = L1;; p = L->next;// work next pointer L2->next =NULL; int counter = 1
2020-08-19 20:51:16 1764 1
原创 设计一个算法将一个带头结点的单链表A分解成两个带头结点的单链表A和B使A中含有原链表中序号为奇数的元素而B中含有原链表中序号为偶数的元素并且保持元素原有的相对顺序
代码:void split(LinkList* L){ LinkList* L1;//odd LinkList* L2;//even LinkList* p; LinkList *rear1,*rear2; p = L->next;// work next pointer L1 = L;//如果将A分成两个链表 B和C则 new LinkList; L2 = new LinkList; rear1 = L1,rear2 = L2;
2020-08-19 20:26:13 5840
原创 给定一个带表头结点的单链表,设head为头指针, data 为整型元素, next为指针,试写出算法:按递增次序输出单链表中各结点的数据元素, 并释放结点所占的存储空间
代码:void sortDel(LinkList* L){ LinkList *p,*pre,*minp,*minpre; LinkList* temp; while(L->next!=NULL){ p = L->next; pre = L; minpre = pre; minp = p; while(p!=NULL){ if(p->data < mi
2020-08-19 19:08:42 5818 1
原创 在一个带表头结点单链表中所有元素结点数据值无序排列,删除表中所有介于给定两个值之间的元素的元素(若存在)
代码:#include"initList/initList.h"void delRandX_Y(LinkList* L,TypeData x,TypeData y){ LinkList* p; LinkList* pre; p = L->next; pre = L; LinkList* temp; if(L == NULL || L->next == NULL) return ; while(p!=NULL){
2020-08-18 18:23:31 1117
原创 试编写在带头结点的单链表1中删除一个最小值结点的高效算法(假设最小值结点是唯一的)
#include"initList/initList.h"LinkList* del_min(LinkList* L){ LinkList* pre;//前驱节点 LinkList* p;//工作节点 LinkList* minpre;//最小值前驱节点 LinkList* min;//最小值节点 pre = L,minpre = pre; p = L->next,min = p; if(p==NULL) return ...
2020-08-17 20:26:10 4873 3
原创 #include“initList/initList.h“
#include<iostream>#include<vector>#include<ctime>using namespace std;typedef int Element;typedef int TypeData;typedef int ElemType;//结构体typedef struct Node{ Element data; struct Node *next;}LinkList;//初始化链表,带头节点,尾插法Li.
2020-08-17 20:22:49 2118
原创 C++ 去重并排序
方法:用c++中的STL的std::set函数,由于set函数底层用红黑树实现的,而红黑树是一棵平衡二叉树,所以会带有自动排序的功能#include<iostream>#include<set>#include<ctime>using namespace std;std::set<TypeData> noRepeat(){ int maxSize = 10;//生成随机数的个数 srand((TypeData)time(0...
2020-08-17 19:27:15 1428
原创 设l为带头结点的单链表,编写算法实现从尾到头反向输出
思路:方法一:将链表压栈再输出,时间复杂度为O(n),空间复杂度为O(n)方法二:用头插法重新建立单链表在输出,时间复杂度为O(n),空间复杂度为O(1)方法三:用递归,本质上也用到了栈,所以空间复杂度为O(n),时间复杂度为O(n)代码:#include<iostream>#include"initList/initList.h"#include<stack>using namespace std;// 方法一:用栈void reversePrin
2020-08-06 18:31:19 7977 6
原创 王道:在带头结点的单链表L中,删除所有值为X的结点,并释放其空间,假设值为X的结点不唯一,试编写算法以实现上述操作
思路:设置两个节点pre和p,分别用来记录链表L的前驱节点和当前节点,当找到数据X时,将pre指向p的下一个节点,p移动到p的下一个节点(因为p将要被释放),如下图:代码:void del_x(LinkList* L,int x){ LinkList* p = L->next; LinkList* pre = L; while(p != NULL){ if(p->data == x){ LinkList* q = p;
2020-08-05 19:35:04 2603 1
原创 LeetCode [102] 二叉树的层序遍历
思想:二叉树层次遍历,利用队列,每次从队列中取出一行数据存放到list中,再将list添加到list中。视频演示层次遍历过程C++代码: class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; if(root == NULL) return re.
2020-07-14 16:25:32 119
原创 LeetCode-对称二叉树(相似二叉树)(101)
给定一棵二叉树,检查它是否是镜像对称的。这题也可以换一种问法:给定两棵二叉树B1、B2,问两颗二叉树是否相似?两种问法的算法一样,区别差在根节点上。class Solution {public: bool isSymmetric(TreeNode* root) { return isSym(root,root); } bool isSym(TreeNode* b1,TreeNode* b2){ if(b1 == NULL &&a
2020-07-14 14:07:49 155
原创 如何优雅的刷LeetCode
相信大家刷LeetCode一般都是用网页查看题目,然后本地编写代码然后调试,最后在粘贴到网页上测试代码,这样显然很不优雅,如何优雅的刷LeetCode呢?一、安装VsCode 二、安装LeetCode插件三、切换到LeetCode中文版需要注意leetcode有中文版(https://leetcode-cn.com)和英文版(https://leetcode.com)两个版本,并且两个版本账户是不互通的。一般我们如果不是人在国外使用leetcode,默认都是中文版,但LeetCo..
2020-07-13 08:49:49 2178
原创 二叉树的建立、三种递归遍历、四种非递归遍历
代码:#include<iostream>#include<stack>#include<queue>using namespace std;typedef char ElementTYPE;//结构体定义typedef struct Node{ ElementTYPE data; struct Node *lchild; struct Node *rchild;}BinaryTree,*BiTree;class ...
2020-07-10 20:09:22 185
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人