回文 总和 算法day
day18| 513.找树左下角的值;112.路径总和;113.路径总和II;106;105
513.找树左下角的值 深度优先搜索 class Solution: def findBottomLeftValue(self, root: Optional[TreeNode]) -> int: curVal = curHeight = 0 def dfs(node: Optional[TreeN ......
day17| 110.平衡二叉树;257.二叉树的所有路径;404.左叶子之和
110. 平衡二叉树 自顶向下递归 1. 获得计算二叉树高度的函数 2. 对于遍历到的节点,首先计算左右子树的高度,看是否平衡 3. 在分别遍历到左右子树,判断左子树和右子树是否平衡 代码如下: class Solution: def isBalanced(self, root: TreeNode) ......
day16| 222.完全二叉树的节点个数
104和111题见前一天 222.完全二叉树的节点个数 题目简述: 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层 ......
day15| 层序遍历;101. 对称二叉树;226. 翻转二叉树
102. 二叉树的层序遍历 实现思路 1. 利用队列实现 2. 先把根节点放入队列 3. 弹出根节点并读取根节点的值,存入result列表中 4. 判断根节点是否有左右孩子,按顺序存入队列中 5. 进入下一个循环 代码如下: class Solution: """二叉树层序遍历迭代解法""" def ......
day7
1、530 二叉搜索树中的最小绝对差 思路: 二叉搜索树 ==> 中序遍历 ==> 有序序列 代码 class Solution { private int res = Integer.MAX_VALUE; private TreeNode pre;//记录前一个结点 public void tra ......
Day 21 21.1 数据库之redis
Redis redis介绍 定义 Redis(Remote Dictionary Server ,远程字典服务) 是一个使用ANSIC编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,是NoSQL数据库。 redis的出现主要是为了替代早期的Memcache缓存系统的。 map内存型(数 ......
Day 21 21.3 数据库之MongoDB
MongoDB 一般爬虫使用的数据库,是根据项目来定的。 如需求方指定了使用什么数据库、如果没指定,那么决定权就在爬虫程序员手里, 如果自选的话,mysql 和mongodb 用的都是比较多的。 但不同的数据库品种有各自的优缺点,不同的场景任何一种数据库都可以用来存储,但是某种可能会更好。 比如如果 ......
Day 21 21.2 数据库之Python操作redis
Python操作redis (1)连接redis # 方式1 import redis r = redis.Redis(host='127.0.0.1', port=6379) r.set('foo', 'Bar') print(r.get('foo')) # 方式2 import redis po ......
Day 21 21.4 数据库之Python操作MongoDB
PyMongo 在这里我们来看一下Python3下MongoDB的存储操作,在本节开始之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库。 安装: pip install pymongo 添加文档 import pymongo client = pymo ......
Day 20 20.1 数据库之MySQL安装
数据库 假设现在你已经是某大型互联网公司的高级程序员,让你写一个火车票购票系统,来hold住十一期间全国的购票需求,你怎么写? 在同一时段抢票的人数如果太多,那么你的程序不可能运行在一台机器上,应该是多台机器一起分担用户的购票请求。 那么问题就来了,票务信息的数据存在哪里?存在文件里么? 如果存储在 ......
Day 20 20.2 数据库之MySQL基础
基本概念 前面的学习中我们提到,mysql是关系型数据库, 所以我们要操作mysql就需要使用SQL(结构化查询语言)。 SQL规范 1. 在数据库管理系统中,SQL语句关键字不区分大小写(但建议用大写) ,参数区分大小写。建议命令大写,数据库名、数据表名、字段名统一小写,如数据库名、数据表名、字段 ......
Day 20 20.3 数据库之Python操作MySQL
Python操作MySQL import pymysql # 打开数据库连接 db = pymysql.connect(host='localhost', user='root', passwd='...', port=3306,datebase='...') print('连接成功!') # 使用 ......
算法3
9.一维数组前缀和s[0]=0;s[i]=s[i-1]+a[i];//i>=1 初始化//l-k区间范围的和s[k]-s[l-1];10.二维数组前缀和s[x][y]=s[x-1]s[y]+s[x][y-1]-s[x-1][y-1]+a[x][y];//初始化//(x1,y1)到(x2,y2)矩阵和 ......
内存淘汰算法
内存有限,内存不够时选择一些移除内存空间。 1、先进先出FIFO ->适合缓存数据 2、最近最少使用LRU ->适合需要快速访问数据,如web服务器缓存 根据使用时间进行淘汰 3、最少使用LFU ->大规模数据存储 根据使用次数进行淘汰 4、随机Random ......
算法
1.快排排序void quick_sort(int q[],int l,int r){if(l>=r)return ;int i=l-1,j=r+1;int x=q[l+r>>1];while(i<j){do i++;while(q[i]<x);do j--;while(q[j]>x);if(i<j ......
算法2
4.二分算法(浮点数)bool check(double x).....//x满足某种性质void bsearch_3(double l,double r){const eps=1e-6;//控制精度while(i-j<eps){int mid=(l+r)/2;if(check(mid))l=mid ......
算法基础课——合并集合(并查集)
合并集合 问题描述 一共有 n 个数,编号是 1∼n,最开始每个数各自在一个集合中。 现在要进行 m 个操作,操作共有两种: M a b,将编号为 a 和 b 的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作; Q a b,询问编号为 a 和 b 的两个数是否在同一个集合中; 输 ......
算法基础课——连通块中点的数量
连通块中点的数量 问题描述 给定一个包含 n 个点(编号为 1∼n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b,在点 a 和点 b 之间连一条边,a 和 b 可能相等; Q1 a b,询问点 a 和点 b 是否在同一个连通块中,a 和 b 可能相等; Q2 a, ......
常见排序算法以及Java实现
快速排序 class Solution { //创建随机对象,便于后于选基准值 static Random random = new Random(); public int[] sortArray(int[] nums) { int n = nums.length; int left = 0; i ......
【LBLD】小而美的算法技巧:差分数组
【LBLD】差小而美的算法技巧:差分数组 差分数组 差分数组的第 i 个元素存储原数组第 i 个元素和第 i-1 个元素的差值,其中,差分数组的首元素的值 diff[0] 为原数组首元素的值 nums[0]。 1109.航班预订统计 class Solution { public: vector<i ......
flask框架---day01( )
今日内容 1 Flask 和pythonweb框架介绍 # python web框架 ,本质都一样 -django:大而全,内置的app多,第三方app也多 -Flask:小而精,没有过多的内置组件,只完成web框架最基本的功能,需要借助于第三方,完成更丰富的功能 -web.py:是一个小巧灵活的P ......
使用 MybatisPlusCore 自带的雪花算法生成不重复数字
这里不介绍雪花算法的实现原理,可以自行搜索查阅网上的资料。这里主要介绍雪花算法的使用场景,如何调用第三方类库 Mybatis Plus Core 自带的方法来使用雪花算法。 雪花算法的主要使用场景,就是生成不重复的数字,作为数据库表的主键使用。你可能会使用 uuid 作为主键,但是其占用 16 个字 ......
day14| 94.二叉树的中序遍历;144.二叉树的前序遍历;145.二叉树的后序遍历
94. 二叉树的中序遍历 思路: 1. 找出重复的子问题 这个重复的子问题是:先遍历左子树、再取根节点、最后遍历右子树 2. 确定终止条件 当节点为空是,返回 代码如下: # Definition for a binary tree node. # class TreeNode: # def __i ......
【算法学习】图论模板
注意! 并查集只适用于无向图。 DFS 特点:当前层可以获得下层状态、向下层不断遍历 处理方式:递归 模板: // dfs注意剪枝 void dfs(int u){ if(u > n) { 输出路径 return; } for(int i = 0; i < n;i ++) // 遍历点 { if(条 ......
算法中的初始化0x3f
写算法的时候,我们常常需要用到设置一个常量用来代表“无穷大”,比如对于int类型的数,有的人会采用INT_MAX,即0x7fffffff作为无穷大。 但是以INT_MAX为无穷大常常面临一个问题,即加一个其他的数会溢出。而这种情况在动态规划,或者其他一些递推的算法中常常出现,很有可能导致算法出问题。 ......
洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
#include<bits/stdc++.h> using namespace std; int a,b; bool zs(int x) { if(x%2>0) { for(int i=3;i<x;i+=2) if(x%i==0) return false; return true; }else r ......
day13| 239.滑动窗口最大值;347.前k个高频元素(一刷至少需要理解思路)
239. 滑动窗口最大值 题目简述: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 思路: 1. 构建两个空列表,一个名为queue,用来存储元素在nums ......
[原创][luogu]P1217 回文质数 真·生成回文的方法
不多说,直接看代码,都在注释里 // 中心思想: // * 1. 代入数据只想回文的一半和位数的变化 // * 例. 1001 和 101 都存的是10, 但是位数一个是4, 一个是3 // * 2. 安装只存一半的思想,进位时是从中心进位 // * 例. 1001 => 1111, 101 => ......
flask_day01
Flask和pythonweb框架介绍 python中的web框架,本质都是一样的 Django:大而全,内置的app多,第三方app也多 Flask:小而精,没有过多的内置组件,只完成web框架最基本的功能,需要借助于第三方,完成更丰富的功能 web.py:是一个小巧灵活的python框架,它简单 ......