自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (1)
  • 收藏
  • 关注

原创 python算法与数据结构(搜索算法和拓扑排序算法)---广度优先搜索和拓扑排序

广度优先是按照层次由近及远的进行搜索,在当前层次所有可及节点都搜索完毕后才会继续往下搜索,其本质就是寻找从起点到终点的最短路程。

2024-02-03 15:41:24 589

原创 python算法与数据结构---动态规划

对于一个模型为n的问题,将其分解为k个规模较小的子问题(阶段),按顺序求解子问题,前一子问题的解,为后一子问题提供有用的信息。在求解任一子问题时,通过决策求得局部最优解,依次解决各子问题。最后通过简单的判断,得到原问题的解。

2024-02-03 11:18:37 948

原创 python算法与数据结构---滑动窗口&双指针

目标是找子数组,暴力遍历所有的子数组。

2024-01-28 17:03:26 227

原创 python算法与数据结构---单调栈与实践

单调栈是一个栈,里面的元素的大小按照它们所在栈的位置,满足一定的单调性;应用场景。

2024-01-21 15:06:31 270

原创 python算法与数据结构---排序和归并排序

专栏是基于python的基础知识,是很好的入门学习资料。帮助大家快速理解这些数据结构和常见算法的概念,同时结合力扣题目,也能更好的掌握这些知识,达到在面试中游刃有余的效果。本专栏主要针对python基础语法,帮助学习者快速接触并掌握python大部分最重要的语法特征。而且在面试过程中这些是必考,必问的内容。temp数组用于存储合并结果,合并后拷贝回原数组;通过本专栏可以快速掌握python的基础语法。平均时间复杂度:O(N。最坏时间复杂度:O(N。1、基本数据类型和变量。2、分支结构与循环结构。

2024-01-21 13:36:19 157

原创 python算法与数据结构(搜索算法和拓扑排序算法)---深度优先搜索

深度优先搜索属于图算法的一种(Depth First Search)。其过程简要来说就是对每一个可能的分支路径深入到不能深入为止,而且每一个节点只能访问一次。深度优先搜索是每一次按照一个方向进行穷尽式的搜索,当该方向上的搜索无法继续往前的时候,这时候就退回到上一步,换一个方向继续搜索。

2024-01-19 00:30:10 207

原创 python基础知识

本专栏主要针对python基础语法,帮助学习者快速接触并掌握python大部分最重要的语法特征。1、基本数据类型和变量2、分支结构与循环结构3、函数与异常处理4、类与模块5、文件读写通过本专栏可以快速掌握python的基础语法。

2024-01-17 22:53:00 1093 1

原创 python进程池的使用

apply()方法用于向进程池提交一个任务,并等待任务完成并返回结果。

2023-08-04 20:36:31 480

原创 如何入门python爬虫

网络爬虫,其实叫作网络数据采集更容易理解。就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自己想要的数据。根据url获取HTML数据解析HTML,获取目标信息存储数据重复第一步,直到拿到所有想要的数据这会涉及到数据库、网络服务器、HTTP协议、HTML、数据科学、网络安全、图像处理等非常多的内容。但对于初学者而言,并不需要掌握这么多。

2023-07-30 14:10:39 1051

原创 python多进程编程(模式与锁)

Lock类与RLock类的区别:无论是Lock还是RLock,提供的方法都非常简单,acquire和release。注意:如果使用RLock,那么acquire和release必须成对出现,即调用了n次acquire,必须调用n次的release才能真正释放所占用的锁。工作函数被调用了 5 次,正如所期望的那样,它计数正确,没有损失任何数据。Lock类与RLock类相同:由于进程之间随机调度:某进程可能执行n条后,CPU接着执行其他进程。为了多个进程同时操作一个内存中的资源时不产生混乱,我们使用锁。

2023-07-27 23:03:41 412

原创 python多进程编程

**multiprocessing**是Python的一个标准模块,它提供了一组用于处理进程的工具。这个模块可以很方便地创建和管理进程。

2023-07-26 22:57:02 388

原创 Chapter05 修炼python基本功:条件语句和循环

在前面我们学习的是python的基本数据类型:列表、元组、字典、集合和字符串等。那么我们如何去很好的使用这些基本的数据类型呢?这就需要用到条件、循环。很多人把这个叫做python基本功,因为它控制着代码的逻辑,是程序的中枢系统。所有的东西都是在条件和循环上建立起来的。可以这么说优美的代码绝对有条件和循环。

2022-09-24 19:43:54 381 1

原创 Chapter04 python输入输出-文件读取

在互联网上,没人知道你是狗。现在的我们其实都是通过网线与这个世界交互连接,你通过键盘与网线另一头的“人”互通消息。程序也一样,我们可以通过输入输出流将处理后的数据送出。

2022-09-17 14:28:48 281

原创 Chapter 03 你真的理解字典、集合吗?

今天我们来学习python的字典和集合,也是非常常见的数据结构。字典和集合在python中被广泛使用,并且性能进行了高度优化,十分重要。

2022-09-10 14:25:31 312

原创 Chapter 02 列表和元组,你该怎么用

对于编程语言来说,数据结构肯定是根基了。那么我们学习python,肯定也要学习python的数据结构。今天我们来学习python中的两种常见的数据结构:列表和元组。

2022-09-07 22:09:48 127

原创 chapter 01 字符串的那些事

程序中随处都可见字符串,随便看断代码应该都是有的。同样,作为python的一种数据类型,比如工程代码中的打印日志,注释函数,数据的操作等等,都会用到字符串。我相信看到这个词,你就知道它大概是什么。在本章内容中,我们再详细的学习字符串的一些常用操作,并深入解释一下其中的细节。从实用的角度来看,字符串可以用来表示能够编码为文本或字节的任何事物。在python中,字符串被划分为不可变序列这一类型,意味着这些字符串所包含的字符存在从左至右的位置顺序,并且它们不可以在原位置修改。

2022-09-03 19:51:15 213

原创 python核心编程技术与工程实践---专栏介绍

很多人一听到编程,第一反应就是很难,觉得会编程的人好厉害。确实编程很难,从刚开始大学接触编程就觉得这个学起来确实很复杂,因为那时初入大学的我编程基础几乎为零。但是我还是学习了编程,因为我喜欢计算机,计算机很吸引我。所以上学的时候,只要老师站在讲台上,我都会认真听讲,即使可能什么也没听懂。后来我成为了程序员,也接触到了很多大型的项目。可我依旧觉得编程挺难,因为我需要的不再是简单完成一个程序,通过一个考试,而是不断的去优化我的代码,完成高质量的交付。

2022-09-03 11:50:34 197

原创 NumPy数组与矩阵(三)

numpy函数

2022-07-10 21:22:53 445

原创 NumPy数组与矩阵(二)

NumPy中包含了一些函数用于处理数组,大概可以分为以下几类;数组排序;在数据分析的过程中,我们时常要对数据进行排序,NumPy库提供了sort函数、argsort函数和lexsort函数,每个函数的排序功能不同。...

2022-06-26 18:45:16 460

原创 NumPy数组与矩阵(一)

NumPy是python语言的一个扩展程序库,支持大量的维度数组和矩阵运算,此外也针对数组运算提供了大量的的数学函数库。NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:一、ndarray对象ndarray内部由以下内容组成:NumPy支持的数据类型比Python内置的类型要多很多,其中部分类型对应为Python内置的类型。...

2022-06-22 23:07:08 393

原创 python数据分析工具

文章目录python数据分析工具NumPyScipyMatplotlibpandaspython数据分析工具python本身的数据分析功能并不强,需要安装一些第三方扩展库来增强其相应的功能。python数据分析与挖掘相关的扩展库;扩展库简介NumPy提供数组支持以及相应的高效的处理函数SciPy提供矩阵支持以及矩阵相关的数值计算模块Matplotlib强大的数据可视化工具、作图库pandas强大、灵活的数据分析和探索工具StatsModels

2022-03-07 19:18:59 2517 2

原创 LeetCode 31. 下一个排列

LeetCode 31. 下一个排列整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元

2022-02-15 19:49:26 128

原创 LeetCode 22.括号生成

LeetCode 22.括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。解题思路;DFS深度优先搜索树形结构(满二叉树)表示所有的结果括号可能;这是一个n=2的括号满足题目要求的结果是:["(())","()()"]观察所有的可能,可以发现 “)” 的个数 小于 "("的个数时,不满足条件;l , r 表示左括号和右括号的个数,每生成一个就减少一个;当l, r都变成0时,就把生成的括号添加到答案列表中;class Solutio

2022-02-15 00:52:18 170

原创 LeetCode56. 合并区间

LeetCode56. 合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。第一种解法:class Solution: def merge(self, intervals: List[List[int]]) -> List[List[int]]: intervals.sort() pri

2022-01-21 19:45:34 352

原创 LeetCode15. 三数之和 & 16. 最接近的三数之和

LeetCode15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。排序+双指针思路:首先对列表进行排序;然后遍历列表;如果num[i] >=0, 那后面将不再存在三数之和等于0了;对于重复元素则跳过(题目要求不重复);左指针l = i +1 ,右指针r = n - 1 ,l < r : loop;

2022-01-21 19:00:27 591

原创 LeetCode12. 整数转罗马数字

LeetCode12. 整数转罗马数字贪心算法贪心法则:我们每次尽量使用最大的数来表示。字典:class Solution: def intToRoman(self, num: int) -> str: # 使用字典,从大到小记录所有的整数-罗马数字的键值对 dic = { 1000:'M', 900:'CM', 500:'D', 400:'CD', 100:'C'

2022-01-21 14:54:32 192

原创 2021年华为OD面试总结

文章目录写在前面面试总体流程简历筛选线上机考综合评测业务面试背景调查和HR面试主管面试写在前面笔者211重点大学本科,毕业近5年;因为之前不是学python的,是近两年入了编程教培行业,所以慢慢接触到的python。然后21年下半年10月后,准备重回技术岗,就开始了漫长的求职面试之旅。项目经验:主要来自学校比赛和校园项目(而且也是偏向硬件);所以大家看到的我的博客专栏;python编程基础(精讲)数据结构与算法(python)算是笔者在学习python,准备面试的过程中,慢慢积累的学习笔记

2022-01-21 00:41:20 8565 6

原创 LeetCode11. 盛最多水的容器

LeetCode11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。算法思路:我们设置两个指针,一个指向起始位子,一个指向末尾柱子。那么面积s=min( h[i] , h[j] ) * ( j - i );指针向内移动,移动高板,面积肯定减少;指针向内移动

2022-01-17 01:30:50 171

原创 LeetCode 5. 最长回文子串

LeetCode 5. 最长回文子串题目难度:中等给你一个字符串 s,找到 s 中最长的回文子串。动态规划以示例1为例:s=‘babad’;i/j012340Tbababbabababad1Tababaabad2Tbabad3Tad4T思路:dp[i][j]表示s[ i : j+1 ]是否为回文子串;初始化dp[i][j]二维数组都初始化为false;s[i] != s[j] ,

2022-01-15 23:42:03 134

原创 LeetCode3.无重复字符的最长子串

LeetCode3.无重复字符的最长子串难度:中等给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。双指针思路;第一种情况,s只有一个元素或者空子串;设置双指针left、right,一个指向最左端,一个指向下一个元素;right向右移动cnt记录不重复字串长度;right向右移动,直到right指向的元素在s[left:right]中存在,找到改元素在窗口中的位置,并将left指向该元素的下一个元素;然后比较cnt 与 right - left的大小;如果下一个元

2022-01-15 00:30:25 194

原创 树--- python实现

文章目录树嵌套列表法实现节点连接法树的应用树树是一种非线性数据结构。在树中,每个节点都含有自己的数值,以及与之相连的子节点,连接节点的线叫做相连线(edge)。如下图所示,A是根节点(root),也是B和C的父节点(parent node),也就是说B、C都是A的子节点(child node)。同理,B是D和E的父节点,以此类推。要注意H、I、J、F、G都是尾节点(leaf node),因为它们位于树的最底部,没有任何子节点。树的特点:每个节点都只有有限个子节点或无子节点;没有父节点的节

2022-01-14 01:35:23 2354

原创 LeetCode-两数相加

LeetCode 2. 两数相加题目难度:中等题目分析:链表反向存储数据,也就是第一位是个位;1、l1为空或l2为空,返回另一个链表即可;2、做加法运算时需要考虑进位,创建变量carry保存进位;3、对链表进行遍历,直到其中一个链表遍历完全;4、遍历结束,考虑进位;—直接和不为空的链表的后一项相加;—两个链表都遍历完成,则需要将进位添加到后面;# Definition for singly-linked list.# class ListNode:# def __ini

2022-01-13 13:40:03 227

原创 哈希表(hash table)---python实现

文章目录哈希表(基本概念)冲突解决:数据项链和线性探测数据项链线性探测实现Hash_Map哈希表(基本概念)哈希表(hash table,又称散列表)是一种数据集,其中数据项的存储方式尤其是有利于将来快速的查找定位。散列表的每一个存储位置,成为槽,可以用来保存数据项,每个槽有一个唯一的名称。实现从数据项到存储名称的转换的,称为散列函数(哈希函数)。有一种常见的散列方法是‘求余数’,将数据项厨艺散列表的大小,得到的余数作为槽号。不过这很明显会存在一个问题,要保存的数据需要存到同一个槽中,会产

2022-01-09 00:29:32 2411

原创 Java-对象数组及其排序、查找算法

文章目录数组用数组存储对象一、pandas是什么?二、使用步骤1.引入库2.读入数据总结数组用数组存储对象在前面我们已经对数组的创建和引用进行了介绍。接下来主要介绍数组存储对象、查找对象、删除对象及常用的排序算法。数组元素可以是任何类型(只要所有元素具有相同的类型),除了基本数据类型,数组的元素也可以是类的对象,这样的数组称之为对象数组。对数组的初始化分为静态初始化和动态初始化两种。静态初始化:在声明和定义数组的同时对数组元素进行初始化;BankAccount[] accounts={

2022-01-08 01:17:56 1561

原创 Java---输入输出、异常处理、文件读写

文章目录异常处理捕获异常:try、catch 和 finally语句一、pandas是什么?二、使用步骤1.引入库2.读入数据总结异常处理异常又称为例外,是特殊的运行错误对象。Java通过面向对象的方法来处理程序错误,为可能发生非致命性错误设计错误处理模块,将错误作为预定义好的“异常”捕获,然后传递给专门的错误处理模块进行处理。运行时系统在方法的调用栈中查找,从生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止,这一过程称为捕获(catch)一个异常。捕获异常:try、catch 和

2021-12-25 00:36:25 1054 1

原创 Java接口和多态

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport

2021-12-22 16:00:43 761

原创 Java类的继承与包的应用

文章目录类的重用类的继承公有(及保护)属性及行为的继承私有属性及方法的继承二、使用步骤1.引入库2.读入数据总结类的重用软件重用是提高软件质量及开发效率的有效途径,面向对象的分析和编程技术为软件重用提供了新的手段。面向对象开发方法得以流行的原因之一就是基于类和对象的重用比传统程序的重用更容易。类的继承继承是一种由已有的类创建新类的机制,是面向对象程序设计的基石之一。一个新类可以从现有的类中派生,这个过程称为类继承。通过继承,一个类可以拥有自己已有类的所有功能。Java要求声明的每个类都有父类,

2021-12-18 23:51:58 549

原创 Java类与对象的基本概念(二)

文章目录枚举类型应用举例声明toString()方法格式化字符串输出声明类方法生成特殊的实例枚举类型当需要一个有限集合,而有限集合中的数据为特定的值时,可以使用枚举类型。枚举类型的定义使用关键字enum,其语法格式如下:[public] enum 枚举类型名称 [implements接口名称列表]{ 枚举值; 变量成员声明及初始化; 方法声明及方法体;}enum Score{ EXCELLENT, QUAILFIED, FAILED;};public cl

2021-12-16 23:26:20 308

原创 Java类与对象的基本概念(一)

文章目录面向对象编程类的声明和引用数据成员方法类的组织---包的概念面向对象编程Java是一门面向对象的编程,面向对象程序设计的主要概念有抽象、封装、继承、多态。抽象:就是忽略问题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面;封装:一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起;继承:指新的类可以获得已有类(称为基类或父类)的属性和行为,称新类为已有类的派生类(或子类);多态:指一个程序中同名的不同方法共存的情况。类的声明和引用每个类都有自

2021-12-16 01:51:42 770

原创 Java条件判断与循环

文章目录类的方法及控制流程if选择结构switch选择结构for循环结构while语句do-while语句break语句continue语句类的方法及控制流程类的方法是对一类对象的共同行为的抽象,对一种行为的描述往往需要比较复杂的流程控制,例如判断和选择,以及对同一代码段的多次重复执行。与其他编程语言相同,Java中的流程控制结构主要有顺序结构、选择结构及循环结构三种。顺序结构是按照从上到下的顺序执行语句,没有转移及重复。选择结构是根据给定的条件成立与否,执行不同的语句或语句组。Java的选择

2021-12-13 19:01:10 726

mySpider.zip

具体爬虫实现参考这两篇博客,本资源是博客项目。 https://blog.csdn.net/suwuzs/article/details/118091474 https://blog.csdn.net/suwuzs/article/details/118094467

2021-06-23

空空如也

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

TA关注的人

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