- 博客(32)
- 收藏
- 关注
原创 LeetCode(二):栈与队列
(三) 栈与队列相关练习题20. 有效的括号155. 最小栈225. 用队列实现栈232. 用栈实现队列496. 下一个更大元素 I682. 棒球比赛844. 比较含退格的字符串641. 设计循环双端队列150. 逆波兰表达式求值32. 最长有效括号224. 基本计算器239. 滑动窗口最大值(四) LeetCode练习题Python3代码20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号
2020-10-18 19:31:09
293
1
原创 数据结构与算法——栈与队列(二)
(二) 队列定义和栈相似,队列也是一种特殊的线性表,跟数组的不同之处也体现在增删等操作上。队列的插入操作只能在队列的末尾进行,队列的删除操作只能在队头进行,队列是一种先进先出的线性表。用数组实现的队列叫链式队列,用链表实现的队列叫链式队列。队列的基本操作和栈相似,对于队列,插入数据只能在队尾进行,删除数据只能在队头进行,在队列中插入数据我们叫入队enqueue,删除队列中的数据我们叫出队dequeue。同样的我们分别基于顺序队列和链式队列对他们的增加删除操作进行讨论。链式队列对于链式队列,在初
2020-10-16 11:41:53
681
原创 数据结构与算法——栈与队列(一)
1 栈定义栈是一种特殊的线性表,与数组和链表的不同之处体现在增加和删除操作。具体表现在栈的读取插入和删除操作只能在栈的末尾进行。栈是一种先进后出的线性表结构,用数组存储数据的栈叫顺序栈,用链表的形式存储数据的栈我们叫链栈。栈的基本操作对于栈来说,插入数据以及删除数据都只能在栈尾进行,在栈中增加数据我们叫压栈push,删除栈中的数据我们叫出栈pop。接下来对于栈的基本操作,我们分别基于顺序栈和链栈来进行讨论。顺序栈class ArrayStack(): """顺序栈""" de
2020-10-16 11:33:31
398
原创 LeetCode(一):数组与链表
15 三数之和链接: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]
2020-10-02 22:57:07
330
原创 数据结构与算法——数组与链表(三)
3 数组与链表对比数组与链表同为线性表结构,那么数组与链表在使用上的区别在哪里呢?数组适合查找,数组支持随机访问,根据下标随机访问的时间复杂度为O(1);链表则适合插入以及删除操作,插入与删除本身的时间复杂度为O(1)。数组与链表基础操作的时间复杂度对比数组与链表在内存中的优缺点数组在内存中是一块连续的内存空间,简单易用,访问效率更高;但是由于数组的大小固定,一经声明,便在内存中占用了一块空间,如果声明的空间过大,会造成大量的内存浪费,反之声明空间太小会导致频繁需要搬移数据造成更多耗时。链表将
2020-10-02 22:55:59
148
原创 数据结构与算法——数组与链表(二)
2 链表定义链表是一种线性表结构,相比较数组,链表稍微复杂一点,链表不需要一组连续的内存空间,它通过指针将一组零散的内存空间连起来使用。因此一组数据存储在链表中消耗的内存要比数组多,因为需要指针存储下一个数据的地址,会产生额外的空间。# 创建存储int类型数据的链表节点类class Node(): '''链表结构的Node节点''' def __init__(self, val, next = None): '''Node节点的初始化方法. 参数:
2020-10-01 12:25:03
179
原创 数据结构与算法——数组与链表(一)
1 数组定义数组是一种用一片连续的内存空间来存储一组相同类型的数据的线性表结构。“连续的内存空间”这个特点,决定了数组支持随机访问的特性。计算机通过地址来访问内存中的数据,数组在内存中存放的是它的首地址,一维数组的寻址公式为a[i]address=baseaddress+i∗sizeof(datatype)a[i]_{address} = base_{address} + i * sizeof(datatype)a[i]address=baseaddress+i∗sizeof(datatype)。
2020-09-30 22:47:29
198
原创 数据结构与算法——时间复杂度
复杂度用于衡量程序的运行效率,复杂度是一个关于数据量n的函数,一般用大O表示法来表示运行的量级,常见的时间复杂度有O(1)、O(logn)、O(n)、O(n2)、O(n3)、O(2n)、O(n!)。大O表示法表示的复杂度与常系数无关,比如计算后复杂度为O(n)和O(2n)的代码,他们的时间复杂度都是O(n);如果计算后的时间复杂度是多项式级的时间复杂度,那么代码的时间复杂度则以最高次幂为准,比如计算后复杂度为O(n2+n)与O(n2)的两段代码,他们的时间复杂度都是O(n2);对于O(1)的时间复杂度,O
2020-09-30 22:46:09
2473
原创 简单爬取豆瓣电影花木兰热门短评
1 准备主要做三件事:抓取网页数据清理数据用词云进行展示使用到time、jieba、re、wordcloud、numpy、matplotlib、selenium、PIL 库2 过程思路一、登录豆瓣import timeimport jiebaimport reimport wordcloudimport numpy as npimport matplotlib.pyplot as pltfrom selenium import webdriverfrom PIL impor
2020-09-22 18:15:22
587
原创 爬取菜鸟教程Python100例
爬取解析菜鸟教程Python100例页面,得到所有例子的题目、程序分析和代码,并存入txt文件。#_*_ coding:utf8 _*_import requestsfrom bs4 import BeautifulSoup# 1、获取链接,解析链接url = 'https://www.runoob.com/python/python-100-examples.html'heade...
2019-11-11 15:40:51
7753
原创 通过Logistic Regression预测Titanic乘客能否在事故中生还
导入工具库和数据缺失数据处理2.1. age2.2. cabin2.3. embarked2.4. fare2.5. 其他调整2.5.1 其它特征的处理数据分析Logistic Regression1. 导入工具库和数据import numpy as np import pandas as pd from sklearn import preproce...
2019-09-13 00:15:24
940
原创 LeetCode刷题(五)
141. Linked List CycleDescriptionGiven a linked list, determine if it has a cycle in it.To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed...
2019-06-01 10:22:25
146
原创 LeetCode刷题(六)
641. Design Circular DequeDescriptionDesign your implementation of the circular double-ended queue (deque).Your implementation should support following operations:MyCircularDeque(k): Constructor,...
2019-05-31 23:03:22
228
原创 LeetCode刷题(四)
15. 3SumDescriptionGiven an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:The solutio...
2019-05-31 21:41:08
147
原创 LeetCode刷题(三)
102. Binary Tree Level Order TraversalDescriptionGiven a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).For example:ExampleGiven bina...
2019-04-21 14:06:55
145
原创 LeetCode刷题(二)
26. Remove Duplicates from Sorted ArrayDescriptionGiven a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra s...
2019-04-18 20:08:11
195
原创 LeetCode刷题(一)
1. Two SumDescriptionGiven an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you...
2019-04-18 16:06:21
230
原创 《机器学习实战》——FP-growth算法
FP-growth算法是基于Apriori算法构建的,Apriori算法是发现频繁项集的一种方法,但是Apriori算法是通过多次扫描数据集找到所有满足最小支持度的频繁项集,而FP-growth算法只扫描原始数据集两次,它发现频繁项集的基本过程分为两步:构建FP树。需要对原始数据集扫描两遍,第一遍对所有元素项出现的次数进行统计,第二遍只考虑频繁元素。挖掘频繁项集。FP-growth算法只...
2019-01-29 20:00:33
651
原创 吴恩达机器学习笔记(一)
1 Introduction什么是机器学习1、Arthur Samuel的定义:在没有明确设置的情况下,使计算机具有学习能力的研究领域。2、Tom Mitchell的定义:计算机程序从经验E中学习,解决某一任务T进行某一性能度量P,通过P测定在T上的变现因经验E而提高。2 Linear Regression with One Variable(单变量线性回归)2.1 model rep...
2019-01-16 16:35:45
228
原创 数学基础——线性代数(一)
一、线性系统一个线性系统满足两个条件:叠加性和齐次性。假设有两个输入x1(t),x2(t)x_1(t),x_2(t)x1(t),x2(t)及其对应的输出y1(t)=H{x1(t)},y2(t)=H{x1(t)}y_1(t)=H\{x_1(t)\},y_2(t)=H\{x_1(t)\}y1(t)=H{x1(t)},y2(t)=H{x1(t)},其中H代表线性系统,那么可以得到αy1(...
2019-01-09 19:45:51
1488
原创 Python基础(三)——一些小练习
7 小练习7.1 计算能被3或5整除的1000以内的数字的和print(sum(i for i in range(1,1000) if i%3==0 or i%5==0))2331687.2 移除列表中指定的数字def removeNum(origin_list,num): newlist=list(filter(lambda n:n!=num,origin_list)) ...
2018-11-26 23:32:35
144
原创 Python基础(二)——字典、集合的常用方法
接上篇Python基础(一)4 字典常用的方法:del:删除字典中指定键clear:清空整个字典items:获得字典的项的列表keys:获得字典的键的列表values:获得字典的值的列表setdefault:设置键的默认值update:更新字典get:获取键的值,如果键不存在则返回备用值dictionary={'China':'Beijing','US':'NewYork',...
2018-11-26 23:30:18
180
原创 Python基础(一)——字符串、列表和元组的常用方法
1 字符串find:从左边开始找第一个字符出现的下标位,找不到返回-1rfind:从右边开始找index:与find相似,不同点在找不到时会报错rindex:从右边开始找count:统计某个字符在字符串中出现的次数replace:替换指定的字符,默认为全局替换split:以某个字符或字符串为分隔符进行切片,分隔符被忽略掉partition:以某个字符或字符串为分隔符进行切片,分...
2018-11-26 23:28:49
252
原创 Linux(CentOS)学习笔记(五)——软件安装和软件包管理
一、软件包Linux中的软件包有以下几种:bin文件:后缀是.bin,作为可执行文件,适合所有的Linux发行版rpm包、yum:适合Redhat系列,当然包括CentOS源码压缩包:适合所有Linux发行版,自行编译安装官方已经编译好的,下载软件包就可以使用的,在Windows中常被称为绿色软件二、rpm命令<1>rpm包来源:阿里云的开源镜像: https:...
2018-10-31 15:41:26
551
原创 Linux(CentOS)使用xshell建立ssh连接并且进行文件传输
1. ssh介绍SSH为Secure Shell的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。常用于远程登录,以及用户之间进行资料拷贝。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是 UNIX 系统上的一个程序,...
2018-10-31 14:04:00
3967
原创 Linux(CentOS)学习笔记(四)——Linux命令
vi和vim命令vi是一个文本编辑程序,不是排版工具,不过命令繁多而且功能强大,在简单版的Linux系统中是没有预装vim的,vim跟vi相比,多了特殊字符的颜色区分。Vi有三种基本工作模式: - 命令模式 - 文本输入模式 - 末行模式命令行模式任何时候,不管用户处于何种模式,只要按下esc键,即可使vi进入命令模式;我们在shell环境(提示符为$)下输入启动vi命令,进入编...
2018-10-29 20:36:52
216
原创 Linux(CentOS)学习笔记(三)——Linux命令
一、用户权限管理<1>添加用户账号:useradduseradd命令的使用格式如下: useradd [参数] 新建用户账号<2>设置用户密码:passwd在Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户密码。用户也可以直接使用该命令来修改自己的密码,而无需在命令后面使用用户名。例:echo “123123” | passwd --stdi...
2018-10-27 16:58:39
231
原创 Linux(CentOS)学习笔记(一)——Linux命令
一、Linux基本原则一切皆文件配置文件保存为纯文本格式二、用户接口(shell):应用程序GUI接口(Graphic User Interface图形用户接口)- Windows:explorer.exe- centos:KDECLI接口(Command Line Interface命令行用户接口):- Windows:cmd- centos:bash- csh、sh、...
2018-10-27 16:25:00
247
原创 Linux(CentOS)学习笔记(二)——Linux命令
一、基本原则一切皆文件配置文件保存为纯文本格式二、用户接口(shell):应用程序GUI接口(Graphic User Interface图形用户接口):Windows:explorer.exeCentOS:KDECLI接口(Command Line Interface命令行用户接口):Windows:cmdCentOS:bashcsh、sh、ksh、zsh、...
2018-10-27 15:05:07
251
原创 JDK-10.0.2-Windows下载安装
一、下载 在https://www.oracle.com/technetwork/java/javase/downloads/jdk10-downloads-4416644.html下载,点击接受许可协议后下载对应版本。二、安装1、双击打开exe文件,点击下一步2、点击更改可以改变安装路径 ,由于这里我已经有安装JRE所以安装页面源代码后面没有公共JRE的选项,...
2018-09-23 15:53:06
24824
2
原创 C++_信息论维吉尼亚编码
要点:1、输入密钥及明文文本,对明文文本进行预处理(将所有字母改为大写并去除文本中的标点符号和空格)后再加密; 2、将加密后的密文保存为txt文本文档。#include <iostream>#include <fstream>#include <string>#include <vector>using name...
2018-03-10 15:35:45
380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人