- 博客(16)
- 收藏
- 关注
原创 Scrapy-简单应用实例
1. 安装python 官网安装即可2. 安装mysql或者其他数据库3. 安装scrapy cmd->pip install scrapy4. 安装社区版的Pycharm,然后新创一个项目空间(pycharm_workspace)5. Pycharm建立编译环境:打开Pycharm,执行File->Settings,添加解释器Project Interpreter例:爬 取博客园新闻网首页标题:① cmd终端cd到刚才新创的文件夹(pycharm_workspa
2022-01-24 07:09:56
794
原创 Scrapy 基础知识笔记(三)---爬虫常用的Python语法
1. requests方法 说明 requests.request() 构造一个请求,支持以下方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET requests.post() 向HTML提交POST请求的方法,对应于HTTP的POST requests.put() 向HTML提交PUT请求的方法,对应于HTTP的PUT...
2022-01-24 02:21:38
726
原创 LeetCode-209-长度最小的子数组
给定一个含有n个正整数的数组和一个正整数 target 。 找出该数组中满足其和 >= target 的长度最小的 连续子数组[numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度。 如果不存在符合条件的子数组,返回 0 。目前只能完善的写出暴力解法,其他解法还在探索中...#include<iostream>#include<vector>#include<algorithm>...
2022-01-23 21:49:04
549
原创 LeetCode-977-有序数组的平方
第一种:暴力解法:直接用平方后的数据更新数组内容,然后一个快速排序即可。第二种:双指针法:因为数组本来就是有序的,因此平方之后最大的数据只能在原数组的头和尾出现,因此设置两个指针分别指向数组头和尾,每次分别比较两个平方后的数据即可,将较大的数存放入一个新数组中即可。class Solution_1 { vector<int> sortedSquares(vector<int> &nums) { // 暴力解法,对每个元素平方之后进行排序 for (int
2022-01-20 22:10:59
397
转载 C++ Vector的各种用法
vector是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include<vector>;一、vector 的初始化:可以有五种方式,举例说明如下: (1) vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。 (2)vector<int> a(10.
2022-01-20 22:03:49
233
原创 Scrapy 基础知识笔记(二)
6. Ajax和JSONAjax(Asynchronous JavaScript And XML,异步JavaScript和XML),是一种用于创建快速动态网页的技术。它可以在不重新加载整个网页的情况下,对网页的某些部分进行更新。 AJAX工作原理JSON是大多数使用Ajax时服务器返回的数据类型。JSON时 是JavaScript对象...
2022-01-20 02:36:52
859
原创 LeetCode-844-比较含退格的字符串
给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,请你判断二者是否相等。# 代表退格字符。 如果相等,返回 true ;否则,返回 false 。 注意:如果对空文本输入退格字符,文本继续为空。 进阶:尝试用空间复杂度为O(1)的算法解决。第一种方法为用栈重构字符串,空间复杂度为O(N+M)第二种方法为双指针法,关键解析写在注释上面,空间复杂度为O(1)#include<string>#include<stack>...
2022-01-19 22:43:41
627
原创 LeetCode-283-移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。class Solution {public: void moveZeroes(vector<int> &nums) { int n = nums.size(), left = 0, right = 0; while (right < n) { if (nums[right]) { swap(nums[left], nums[right]); l.
2022-01-19 18:39:15
193
原创 LeetCode-26-删除所有重复的值
给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。class Solution {public: int removeDuplicates(vector<int>& nums) { int size = nums.size(); if (size <= 1) { return 0; } in...
2022-01-19 17:41:22
229
原创 LeetCode-27-删除数组中某一个重复的值
class Solution {public: int removeElement_1(vector<int>& nums, int val) { // 双指针法 int slowIndex = 0; for (int fastIndex = 0; fastIndex < nums.size(); fastIndex++) { if (val != nums[fastIndex]) { nums[slowIndex++] = nums[fastInd.
2022-01-19 17:38:35
119
原创 LeetCode-34-在排序数组中查找元素的第一个和最后一个位置
leetcode-34 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回[-1, -1]。 进阶:设计并实现时间复杂度为 O(log n) 的算法方法一:暴力解法 时间复杂度O(n),根据题意(升序排列)分别遍历找到左右边界即可。class Solustion_1 {public: int findTargetLeftLocation(vector<...
2022-01-18 16:46:56
4375
1
原创 Scrapy 基础知识笔记(一)
(参考书籍Python 网络爬虫框架Scrapy从入门到精通,张颖,北京大学出版社)一、Scrapy1. Scrapy用途广泛,可以用于数据采集、数据挖掘、网络异常用户检测、存储数据、检测和自动化测试。2. Scrapy使用了Twisted异步网络框架来处理网络通信,可以加快下载速度,不用自己去实现异步框架,并且包含了各种中间件窗口,可以灵活完成各种需求。3. Scrapy可以在网站上并行执行16个请求。二、爬虫1. 爬虫的概念:爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页
2022-01-18 01:40:20
527
原创 leetcode-35 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。给出的三种算法: 第一种的时空复杂度分别为:O(n),O(1)。 第二和第三种的时空复杂度分别为:O(logn),O(1)。class Solution_1 {public: int searchInsert_1(vector<int>& nums, int target) { //暴力解法 //target比数...
2022-01-17 23:24:11
201
原创 LeetCode-704-实现二分查找
题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。#include<iostream>#include<vector>using namespace std;class Solution {public: int search(vector<int>& nums, int target) { int l...
2022-01-17 19:59:18
161
原创 递归求fibonacci的两种方法
int fibonacci_1 (int i) { if (i <= 0) return 0; if (i == 1) return 1; return fibonacci_1(i - 1) + fibonacci_1(i - 2);}int fibonacci_2(int first, int second, int n) { if (n <= 0) return 0; if (n < 3) return 1; else if (n == 3) { return.
2022-01-17 17:01:23
5853
1
原创 求x的n次方,算法复杂度为O(n)和O(logn)的做法
int function1 (int x, int n) { // 复杂度为 O(n) int result = 1; for (int i = 0; i < n; i++) { result = result * x; } return result;}int function2 (int x, int n) { // 复杂度为 O(n) if (n == 0) { return 1; } return function2(x, n - 1) * x;}int.
2022-01-17 15:51:36
1976
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人