自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 组合总和 Ⅳ---leetcode练习

好久没做题了,更菜了5555题目描述给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。实例 输入:nums = [1,2,3], target = 4 输出:7 解释: 所有可能的组合为: (1, 1, 1, 1) (1, 1, 2) (1, 2, 1) (1, 3) (2, 1, 1) (2, 2) (3, 1) 请注意,顺序不同的序列被

2021-04-24 18:04:57 64

原创 石子游戏---Leetcode练习

动态规划 yyds问题描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 false 。 示例: 输入:[5,3,4,5] 输出:tr

2021-04-09 10:21:29 135

原创 交换数字(不使用临时变量)

挺有意思的,虽然意义科能不大,但图一乐题目描述编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。思路方法一 加 a=x b=y a=a+b=x+y b=a-b=x+y-y=x a=a-b=x+y-x=y方法二 差 a=x b=y a=a-b=x-y b=a+b=x-y+y=x a=b-a=x-x+y=y方法三 异或 a!=b a^=b b^=a a^=b有一点启发性,毕竟两个相同的数异或等于0,0和任何数字异或都等于数字

2021-04-08 21:19:49 89

原创 字符串排序次数---冒泡排序变形

找规律的题,想通很简单,没想通就难搞问题描述小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则所有可能的排序方案中,冒泡排序的总交换次数是最少的。例如,对于字符串lan排序,只需要1次交换。对于字符串qiao排序,总共需要4次交换。小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要100次交换,可是他忘记了把这个字符串记下来,现在找不到了。请帮助小蓝找一个包含小写英文字母且没

2021-04-08 17:31:09 271

原创 最大值最小化

挺有意思的小题目题目描述把一个包含n个正整数的序列划分成m个连续的子序列(每个正整数恰好属于一个序列)。设第i个序列的各个数之和为S(i),你的任务是让所有S(i)的最大值尽量小。例如序列1 2 3 2 5 4 划分成3个序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1)、S(2)、S(3)分别为6、7、4,最大值是7;如果划分成1 2 | 3 2 | 5 4,则最大值为9,不如刚才的好。n<=10^6,所有数之和不超过10 ^ 9。思路“最大值尽量小”是一种很常见的优化目标。

2021-04-07 20:33:46 268

原创 算法基础之归并排序

复习复习,温故而知新什么是归并排序归并排序是建立在归并操作上的稳定、有效的排序方法,速度仅次于快速排序。该排序法采用的分治法的思想,将对于一组数据的排序分成三步:分解、解决、合并。怎么实现1、先将数组分解,直到无法分解为止(长度为1)。2、排序,然后合并。3、排序,然后合并。。。。。n、OK,输出附上Python的代码代码numbers=[4,5,1,21,66,6,7,9,15,44,60,16,3,77,51,13,99,52]def con(left,right):

2021-04-07 18:39:33 70 1

原创 算法基础之快速排序

没办法,快排永远滴神什么是快速排序快速排序是优化过的冒泡排序,是处理大量数据排序的最优解。如果你体会过二分法查找妙处,相信你一定能很快上手快速排序,因为快速排序与二分法查找有着异曲同工之妙。原理选择一个基数,一般选择数组头,然后新建两个指针,left,right。right指针下的是2比left指针下的5小,那么两个交换位置,接着left指针向右移动由于1、3都比5小,直接忽略此时left指针下的8比right指针下的5大,交换位置接着right指针向左移动注意:指向基数

2021-04-07 15:48:19 87 1

原创 三个容器倒水问题---BFS

问题描述有装满水的6升的杯子,空的3升杯子和1升杯子,3个杯子中都没有刻度。在不使用其他道具的情况下,是否可以量出4升的水呢?注意:由于没有刻度,用杯子x给杯子y倒水时必须一直持续到把杯子y倒满或者把杯子x倒空,而不能中途停止。你的任务是解决一般性的问题:设大、中、小3个杯子的容量分别为a,b,c,最初只有大杯子装满水,其他两个杯子为空。最少需要多少步才能让某一个杯子中的水有x升呢?你需要打印出每步操作后各个杯子中的水量(0<c<b<a<1000)。思路把每次操作的结果看

2021-04-07 13:08:45 5775 3

原创 贪心算法解埃及分数

题目描述在古埃及,人们使用单位分数的和表示一切有理数。例如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为在加数中不允许有相同的。对于一个分数a/b,表示方法有很多种,其中加数少的比加数多的好,如果加数个数相同,则最小的分数越大越好,例如:19/45=1/5+1/6+1/18是最优解。思路利用贪心算法,枚举出所有可能的解。假设给的分数是 19/45,那么第一个分数我们可以从 1/3开始枚举(1/2>19/45舍去)19/45-1/3=4/45利用贪心算法的思想下一个分数选择

2021-04-07 10:52:15 1877 2

原创 巧解八皇后

开阔思路了,从没想过用一维数组代替二维数组解八皇后问题题目描述在棋盘上放置8个皇后,使她们互不攻击,此时每个皇后的攻击范围为同行同列和对角线,要求找出所有解。思路1、最简单的思路是把问题转化为“从64个格子中选一个子集”,使得“子集中恰好有8个格子,且任意两个选出的格子都不在同一行、同一列、同一对角线“。然而64个格子有2的64次方个子集,很明显这会导致运行时间过长。2、稍微会简便一点的想法是”从64个格子中选8个格子“,这就是组合生成的问题,但是依旧有4.426 x 10^9种方案,比第一种好

2021-04-06 17:11:56 103

原创 铁轨---栈

记录一下,比较经典的关于栈的算法题题目描述某城市有一个火车站,铁轨铺设如图所示。有n节车厢从A方向驶入车站,按进站顺序编号1~n。你的任务是让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢,你可以借助中转站C。这是一个可以停放任意多节车厢的车站,但由于末端封顶,驶入C的车厢必须按照相反的顺序驶出C。对于每个车厢,一旦从A移入C,就不能再回到A了;一旦从C移入B,就不能回到C了。换句话说,在任何时刻,只有两种选择:A->C 和 C->B。样例输入:51 2 3 4 5

2021-04-06 15:00:53 99

原创 果园里的树---算法练习

今天在图书馆翻算法书,看到一道挺好的计算三角形面积的技巧,记录下下题目描述果园里的树排列成矩阵。它们的x和y坐标均是1~99的整数。输入若干个三角形,依次统计每一个三角形内部和边界上共有多少课树,如下图所示。思路逐一判断,对于每个点(x,y)是否在三角形内,为此看一个函数def area2(x0,y0,x1,y1,x2,y2): return x0*y1+x2*y0+x1*y2-x2*y1-x0*y2-x1*y0它给出了三角形(x0,y0)-(x1,y1)-(x2,y2)的有向面积的两倍。

2021-04-06 11:17:01 124

原创 乐团站位---Leetcode练习

这道题理解了就不难题目描述某乐团的演出场地可视作 num * num 的二维矩阵 grid(左上角坐标为 [0,0]),每个位置站有一位成员。乐团共有 9 种乐器,乐器编号为 1~9,每位成员持有 1 个乐器。为保证声乐混合效果,成员站位规则为:自 grid 左上角开始顺时针螺旋形向内循环以 1,2,…,9 循环重复排列。例如当 num = 5 时,站位如图所示请返回位于场地坐标 [Xpos,Ypos] 的成员所持乐器编号。思路这道题卡人的地方就是时间复杂度,当矩形的边长比较小时我们甚至可以

2021-04-05 20:19:36 574 1

原创 平面切分---蓝桥杯练习

终于做对了一道困难题,开心题目描述平面上有 N 条直线,其中第 i 条直线是y=Ai*x+Bi。请计算这些直线将平面分成了几个部分。输入描述第一行包含一个整数 N。以下 N 行,每行包含两个整数 Ai, Bi。其中,1≤N≤1000,−10^ 5 ≤ Ai,Bi ≤ 10 ^5。输出描述一个整数代表答案。输入输出样例输入 3 1 1 2 2 3 3输出 6思路好在前段时间做了一道不简单的平面分割题,n个圆和n条直线分割平面。三条线最多在两条线的前提下,交前两

2021-04-05 10:26:38 1312 4

原创 森林中的兔子---Leetcode练习

思路很重要题目描述森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。思路建立一个字典,保存每次相同回答的次数,比如answers=[1,0,1,1,0,0],新建字典为dt=[1:3,0:3],因为回答“1”表示还有一只兔子与自己颜色相同,那么该颜色的兔子应该是两只,然而字典中“1”对应的值是3,说明有三只兔子表示还有一只兔子颜色与自己相同,那么最少的情况是有四只兔子,最多的情况是六

2021-04-04 22:39:33 75 1

原创 统计一个数组中好对子的数目---LeetCode练习

这次leetcode的周赛好多坑啊,还是我太菜了题目描述给你一个数组 nums ,数组中只包含非负整数。定义 rev(x) 的值为将整数 x 各个数字位反转得到的结果。比方说 rev(123) = 321 , rev(120) = 21 。我们称满足下面条件的下标对 (i, j) 是 好的 : 0 <= i < j < nums.length nums[i] + rev(nums[j]) == nums[j] + rev(nums[i])请你返回好下标对的数目。由于结果可能会很

2021-04-04 00:47:46 238 2

原创 生成格雷码---蓝桥杯练习

果然大早上就该做点简单题,一做难题大脑就宕机题目描述通常,人们习惯将所有 n 位二进制串按照字典序排列,例如所有 2 位二进制串按字典序从小到大排列为:00,01,10,11。格雷码(Gray Code)是一种特殊的 n 位二进制串排列法,它要求相邻的两个二进制串间恰好有一位不同,特别地,第一个串与最后一个串也算作相邻。所有 2 位二进制串按格雷码排列的一个例子为:00,01,11,10。n 位格雷码不止一种,下面给出其中一种格雷码的生成算法:1、1 位格雷码由两个 1 位二进制串组成,顺序为:

2021-04-03 12:45:01 357 1

原创 迷宫与陷阱---蓝桥杯练习

控制时间复杂度太难了,呜呜呜题目描述小明在玩一款迷宫游戏,在游戏中他要控制自己的角色离开一间由N×N 个格子组成的 2D 迷宫。小明的起始位置在左上角,他需要到达右下角的格子才能离开迷宫。每一步,他可以移动到上下左右相邻的格子中(前提是目标格子可以经过)。迷宫中有些格子小明可以经过,我们用 ‘.’ 表示。有些格子是墙壁,小明不能经过,我们用 ‘#’ 表示。此外,有些格子上有陷阱,我们用 ‘X’ 表示。除非小明处于无敌状态,否则不能经过。有些格子上有无敌道具,我们用 ‘%’ 表示。当小明第一

2021-04-02 20:04:30 419

原创 解谜游戏---蓝桥杯练习

哈哈哈,看起来很难其实很简单啦题目描述小明正在玩一款解谜游戏。谜题由 24 根塑料棒组成,其中黄色塑料棒 4 根,红色 8 根,绿色 12 根 (后面用 Y 表示黄色、R 表示红色、G 表示绿色)。初始时这些塑料棒排成三圈,如上图所示,外圈 12 根,中圈 8 根,内圈 4 根。小明可以进行三种操作:1、将三圈塑料棒都顺时针旋转一个单位。例如当前外圈从 0 点位置开始顺时针依次是 YRYGRYGRGGGG,中圈是 RGRGGRRY,内圈是 GGGR。那么顺时针旋转一次之后,外圈、中圈、内圈依次变为

2021-04-02 14:13:17 426 2

原创 Playfair密码---蓝桥杯练习

好久没用过ASCII码和整型的转换了题目描述一种 Playfair 密码变种加密方法如下:首先选择一个密钥单词(称为 pair )(字母不重复,且都为小写字母),然后与字母表中其他字母一起填入至一个 5x5 的方阵中,填入方法如下:首先按行填入密钥串。紧接其后,按字母序按行填入不在密钥串中的字母。由于方阵中只有 25 个位置,最后剩下的那个字母则不需变换。如果密钥为 youandme,则该方阵如下: y o u a n d m e b c f g h i j k l p q

2021-04-02 12:12:32 1021 1

原创 网络寻路---蓝桥杯练习

又没有注意时间复杂度,哎题目描述X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地址可以相同,但中间节点必须不同。如下图所示的网络。1 -> 2 -> 3 -> 1 是允许的; 1 -> 2 -> 1-> 2 或者 1->2->3->2 都是非法的。输入描述输入数据的第一行为

2021-04-02 10:38:14 331

原创 格子刷油漆---蓝桥杯练习

啊啊啊啊,动态规划永远滴神题目描述X 国的一段古城墙的顶端可以看成 2×N 个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆。你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!)比如:a d b c e f 就是合格的刷漆顺序。c e f d a b 是另一种合适的方案。当已知 N 时,求总的方案数。当 N 较大时,结果会迅速增大,请把结果对 10^9+7 取模。输入描述输入数据为一个正整数(不大于 1000

2021-04-01 23:29:29 270

原创 n阶乘末尾0的个数

分享一下无意间在牛客网上碰到的题问题描述6!=6x5x4x3x2x1=720末尾有一个零那么10000!代表的数的末尾有多少个0呢?只算末尾的思路任何数乘以10,相等于数的末尾加了一个0。而2x5=10,那么在1~10000中我们要算出有多少个5,就以为这末尾有多少个0。注意:55算贡献两个010000/5=2000有两千个数能被5整除,他们至少贡献了一个52000/5=400有四百个数能被25整除,他们至少贡献了两个5400/5=80有八十个数能被125整除,他们至少贡献了三

2021-04-01 17:55:18 139

原创 数正方形---蓝桥杯练习

我的思路是用深度搜索,找到所有的四边形然后判断是否为正方形题目描述在一个 N×N 的点阵上,取其中 4 个点恰好组成一个正方形的 4 个顶点,一共有多少种不同的取法?由于结果可能非常大,你只需要输出模 10^9 + 7 的余数。如上图所示的正方形都是合法的。加粗样式输入描述输入包含一个整数N (2≤N≤10^6)。输出描述输出一个整数代表答案。输入输出样例输入 4输出 20思路用两层for循环确定一个点的x,y坐标,深度搜索找到所有四个点组成的四边形,然后判断是否为正方形

2021-04-01 14:09:50 1144

旧词新意,网红APP,自动生成网红词语解释

旧词新意,网红APP,自动生成网红词语解释

2021-07-31

疫情大数据报告.rar

使用selenium爬取国内疫情实时数据,需要自己配置chrome驱动

2021-04-04

豆瓣TOP250.rar

Python脚本,爬取数据并存入数据库,建立表格

2021-04-04

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

TA关注的人

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