自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Python:selenium+request+BeautifulSoup库,实现自动看课

实现分析1、通过selenium实现账号登录,下一个视频点击,弹窗点击。使用2、requests+BeautifulSoup爬取每一节视频的长度,弹窗时间,然后通过pyhton中time库设置延迟视频(长度+10S)的,达到看课的效果。3、对应第二次刷课,即课程非第一节,需要从上一次未看完的最后一节课程重新开始刷。(例如,上次刷到第7节课7分30秒,还没看完,然后关闭程序,下次打开程序,需要从第7节课0分开始重新看);弹窗问题:1、将爬取的弹窗出现时间,可能存在多个弹窗时间,并将时间格式转换为数字

2020-11-04 21:14:23 872 4

原创 Python爬虫练手项目-------- 12306抢票小程序(selenium+requests+BeautifulSoup)

前言学习完pyhton基本语法,selenium,requests和BeautifulSoup三个库之后,做了一个简单的12306抢票小程序,功能实现的有些粗糙,结构也不是很清晰。。附上源码:from selenium import webdriverfrom twilio.rest import Clientfrom selenium.webdriver import ActionChainsimport requestsfrom bs4 import BeautifulSoupimpor

2020-09-11 12:57:36 627

原创 基础算法----图的深度搜索和广度搜索

一、图的深度搜索:思路:首先根据图构造连接表,使用字典来表示与某个节点的相连的节点。例如:public List<List<Integer>> dic = new ArrayList<List<Integer>>();{{2,3},{4,5,6}} 表示与第一个节点相连的节点有2,3,与第二个节点相连的节点有4,5,6;构造之后需要创建一个所有节点数量长度的集合了记录每一个节点的状态:0表示没有搜索过,1表示正在搜索(可选),2表示搜索过。从第0个

2021-03-23 17:36:02 324

原创 基础算法--------二叉树的广度搜索

一、二叉树的广度搜索:实现方法:通过维护一个队列,首先将根节点放入队列中,循环该队列,在遍历一个节点后,将该节点弹出队列,然后将该节点的左、右子节点压入队列中,直至队列为空结束;二、LeetCode–199二叉树的右视图思路:使用二叉树广度搜索,在遍历的过程中,记录每一层的最后一个节点;需要使用Map来绑定节点与节点所在层数;在遍历过程中,相同层数的节点一直put进map中覆盖之前的节点,最终留下每一层最后一个节点。在维护层数时,需要使用队列,首先压入根节点的层数0,在遍历过程中,取当前队列中最大层

2021-03-22 20:45:44 225

原创 基础算法----二叉排序树的实现

一、二叉排序树的实现排序算法:1构造一个二叉排序树:class SortTree{ public static void main(String[] args) { int a[] = new int[]{4,5,1,7,3,9,6,2}; Node[] nodes = new Node[a.length]; Node root = new Node(a[0]); for (int i = 1; i < a.length;

2021-03-18 14:28:44 163

原创 LeetCode--螺旋矩阵

一、(54)螺旋矩阵题目: 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]思路: 使用left,right,up,down四个边界值来顺时针遍历矩阵,每循环一次边界值往内缩1,即left++,up++;right–,down–。该题难点在于边界值的处理。首先考虑的循环条件:①对于每一层矩阵来说,即使只有1行或1列也需要进行一次遍历

2021-03-15 12:22:09 249

原创 SpringBoot学习--------01SpringBoot启动与自动配置

一、SpringBoot自动配置原理1.maven配置:(1)父依赖:SpringBoot项目需要添加父依赖进行项目管理,用来控制后续所需框架,场景的版本<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>.

2021-03-11 22:47:10 331

原创 leetcode------贪心算法2

一、(55)跳跃游戏**题目:**给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/jump-game思路:1、如果处于i位置的时候,最远可以跳到j

2020-11-30 23:27:10 115

原创 LeetCode---贪心算法1

一、(376)摆动序列**题目:**如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原

2020-11-30 16:39:41 97

原创 leetcode------链表4

一、合并两个升序链表:思路:1、定义一个head头指针,用来指向合并后的链表;2、同时遍历l1, l2 并且比较两个链表的第一个节点,将head指向其中最小节点,同时将较小链表的指针下移一位;(例如:l1<l2 ,head.next = l1 , l1 = l2.next);3、如果l1或者l2有一个遍历完,则将没遍历完的链表接在最终的链表后面;public class ListNode { int val; ListNode next; ListNod

2020-11-29 22:52:42 76

原创 leetcode----链表3

一、复制带随机指针的链表:难点:复制链表的及链表的下一节点不难实现,但是链表中的随机指针由于不知道指向的节点的地址,所以在用HashMap来实现对应拷贝;思路:1、定义一个HashMap,其中key保存原链表的每一个节点,value则保存一个新的节点,使其值等于原链表的节点的值(相当于拷贝了一个节点,但是只拷贝val属性,不拷贝next,random属性);2、通过while循环来遍历原链表的每一个节点,并同时使用map.get方法取出对应的拷贝节点,并且设置拷贝节点的next值为map.get(h

2020-11-29 19:37:51 66

原创 leetcode-----链表2

一、两链表的交点:思路一: 通过set集合来判断,将链表一放入set集合中,遍历链表二,如果存在相同的值,则为交点,return结束遍历返回该交点; public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { Set<ListNode> set = new HashSet<ListNode>(); while(he

2020-11-29 10:06:32 97 1

原创 leetcode----链表1

一、逆序链表:思路:1、定义一个节点new_head来存放需要逆序的当前节点逆序后的下一个节点。例如:1->2->3->4->null,此时head节点是1,逆序后1的下一个节点应该是null,new_head存放的就是null;2、通过while循环来逆序每一个节点。其中包括这几步:2.1、临时变量temp保存当前节点逆序前的下一个节点,即1->2中节点2;2.2、将当前节点的next改为new_head;2.3、将head的值赋给new_head节点。2.4、

2020-11-28 18:01:06 76

原创 算法----堆排序

一、建堆。实现思路:1、首先将需要实现排序的数组建堆。即将数据放在堆中。2、然后对堆进行调整,使其成为大根堆或小根堆(本次实现大根堆):取k/2位置的节点为初始值,向上便利每一个节点,并判断该节点是否大于子节点中的最大值(左子节点的索引为2k),右子节点的索引为(2k+1);如果大于,则交换该节点和最大子节点的位置。并继续向下判断交换后的节点的位置是否正确(是否满足大于最大子节点);3、遍历完后,i–继续向上便利,直到根节点。二、堆排序实现思路:1、首先将堆的根节点和最后一个子节点交换,取出

2020-11-28 16:54:57 78

原创 leetcode--栈2

一、给出一个栈的入栈顺序,判断一个出栈顺序是否正确:思路:使用栈stack和数组(队列)实现,首先将需要出栈的顺序放入数组data(或者将出栈顺序放入队列queue),然后按照入栈顺序入栈,入栈后判断栈顶的元素是否等于数组的第一个索引值,即data[0]的值(如果是队列则判断是否等于队列的head元素),如果相等,则将次元素弹出,数组索引+1,(queue队列弹出head元素),然后继续判断。如果不相等,则继续按照顺序往stack中push元素:class Solution { public b

2020-11-27 17:33:08 126

原创 LeetCode---栈1

一、两个队列实现栈:思路:使用一个辅助的队列(h_queue)实现,在往原队列(data)中push时,先将原队列的数据写入h_queue,然后push新数据到data的队列头部,最后再讲辅助队列的元素写入原队列: class MyStack { Queue<Integer> r_queue = new LinkedList<Integer>(); Queue<Integer> h_queue = new LinkedList<Integer&

2020-11-27 09:01:05 76

原创 Spring自动装配(xml配置/annotation配置)

Spirng自动装配?1.准备类:Apple类:public class Apple { public void eat(){ System.out.println("吃苹果。。"); }}Orange类:public class Orange { public void eat(){ System.out.println("吃橘子。。"); }}Fruit类:public class Fruit { private Apple apple; private Or

2020-11-04 22:35:10 342

原创 JavaScript中表单代码模型-----验证提交的密码

前言一、验证密码的代码模型1.HTML部分的代码<body> 请输入密码:<input type="password" name="password" id="password" class="init" onblur="valiPasswordDate()" ><span id=passwordMsg></span><br> 再输入密码:<input type="password" name="confirm" id="co

2020-10-13 14:37:05 113

原创 JavaScript中表单代码模型-----验证提交的用户名

前言一、验证用户名的代码模型1.HTML部分的代码<body> <form action="../html/test.html" method="post" onsubmit=" return validate()"> <span>请输入邮箱账号:</span> <input type="text" name="email" id="email" value ="" class="init" οnblur="valiEmaildate()

2020-10-13 10:14:18 112

原创 关于迭代器中使用next()方法的问题。

问题:在学习Iterator迭代器时候,发现学习的一个知识盲点。代码如下(示例):public static void main(String[] args) { Map<String,String> all = new HashMap<String,String>(); all.put("one", "1"); all.put("two", "2"); all.put("three", "3"); all.put("four", "4"); Set ke

2020-09-22 17:19:01 802

原创 求助。。java中关于内部类中使用this的一些问题

问题class Outer{ private int num = 10; class Inner{ public void fun(){ System.out.println(Outer.this.num); } }}class Outer{ private int num = 10; class Inner{ public void fun(){ System.out.println(num); } }}上述两段代码中,内部类需要访问外部类的私有属性n

2020-09-08 17:12:04 214

原创 初学Java基础学习——抽象类和接口的区别

初学Java基础学习——抽象类和接口的区别一、关键字1)抽象类的关键字abstract class A{ //定义一个抽象类;}class Test extends A{ //子类使用extends继承抽象类}2)接口的关键字interface IMessage{ /定义一个接口}class Test2 implements IMessage{ //子类使用implements实现接口}二、成员组成1)抽象类的成员包括:抽象方法、普通方法、构造方法、全局常量、全局变量、

2020-09-06 14:59:05 151

空空如也

空空如也

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

TA关注的人

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