自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 LeetCode每日打卡2021

class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: n = len(nums) tempmax = -10001 ans = [] for i in range(k): if nums[i] >= tempmax: tempmax = nums[i]

2021-01-02 00:30:17 152 1

原创 Leetcode学习笔记 N叉树&前缀树

N叉树LeetCode中N叉树的子节点用一个列表 node.children 来储存遍历-3N叉树的前序遍历,简单递归:class Solution: def preorder(self, root: 'Node') -> List[int]: ans = [] def order(root,ans): if not root: return ans.append(root

2020-12-11 18:45:21 154

原创 Leetcode学习笔记 二叉搜索树BST

二叉搜索树-简介-2验证二叉搜索树,中等注意:不是左子节点和右子节点需要符合,而是左子树和右子树需要符合,所以递归函数需要引入上下界方法一,递归:class Solution: def isValidBST(self, root: TreeNode) -> bool: if not root: return True def fct(node, low, high): if not node:

2020-12-08 11:06:34 133 1

原创 Leetcode学习笔记 二叉树

二叉树-树的遍历-4二叉树的前序遍历,中等官解:二叉树的前序遍历递归:class Solution: def __init__(self): self.ans = [] def preorder(self,node): if not node: return self.ans.append(node.val) self.preorder(node.left) self.preor

2020-11-30 18:20:56 119

原创 Leetcode学习笔记 哈希表

哈希表设计哈希表-2设计哈希集合设计哈希映射哈希集合应用-4存在重复元素,简单用set秒杀只出现一次的数字,简单用set秒杀,单空间复杂度是O(n)方法二:异或运算空间复杂度O(1),相同的数异或得0,所有数异或得答案class Solution: def singleNumber(self, nums: List[int]) -> int: ans = 0 for item in nums: ans ^= item

2020-11-27 17:30:28 116

原创 Leetcode学习笔记 队列和栈

设计循环队列,中等

2020-11-20 21:03:56 129

原创 Leetcode学习笔记 链表

链表简介-1设计列表,中等#报错了一定是代码有问题#不一定是报错的那一行有问题,代码都要重新看单链表:class Node: def __init__(self, x): self.val = x self.next = Noneclass MyLinkedList: def __init__(self): self.size = 0 self.head = Node(0) #生成一个哨兵节点作为头结点,随意赋值

2020-11-17 12:25:34 121

原创 Leetcode学习笔记 数组和字符串

对区间列表根据左端点排序:intervals.sort(key=lambda x: x[0])intervals = sorted(intervals, key=lambda x:x[0])对二维列表 lst 根据第 i 列进行排序:lst.sort(key=lambda x: x[i])lst = sorted(lst,key=lambda x:x[0])注意:lst.sort() 是在原列表上进行排序,不需要返回sorted(lst)是返回排序后的列表,需要重新赋值旋转矩阵两

2020-11-13 14:04:08 151

原创 Python学习笔记 天池龙珠 task3

函数函数文档:def MyFirstFunction(name): "函数定义过程中name是形参" # 因为Ta只是一个形式,表示占据一个参数位置 print('传递进来的{0}叫做实参,因为Ta是具体的参数值!'.format(name))MyFirstFunction('老马的程序人生')# 传递进来的老马的程序人生叫做实参,因为Ta是具体的参数值!print(MyFirstFunction.__doc__)# 函数定义过程中name是形参help(MyFirstFunction)

2020-11-11 22:00:58 112

原创 Python学习笔记 天池龙珠 task2

1. 列表 <class ‘list’>推导式创建列表:x = [i ** 2 for i in range(1, 10)]print(x, type(x))# [1, 4, 9, 16, 25, 36, 49, 64, 81] <class 'list'>x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]print(x, type(x))# [3, 9, 15, 21, 27, 33, 39, 45

2020-11-10 17:38:10 558

原创 C++ STL stack 使用笔记

定义stack<typename> name;访问:只能访问栈顶元素,O(1)a=st.top(); //将栈顶元素赋值给a 压栈弹栈,O(1)st.push(x); //将x压栈st.pop(); //删除栈顶元素检查空栈,O(1)if(st.empty()); //如果栈为空 检查元素个数,O(1)st.size(); //...

2020-04-18 18:11:09 104

原创 C++ STL queue 使用笔记

定义queue<typename> name; 访问,只能访问队首和队尾的数据a=q.front(); //将队首元素赋值给a b=q.back(); //将队尾元素赋值给b常用函数入队,O(1)q.push(x);出队,O(1) 令队首元素出队q.pop();检查是否为空,O(1) 使用pop()、front()前需要检查空则返回true,非空返...

2020-04-18 17:39:27 86

原创 C++ STL vector 使用笔记

定义用来当长度可变的数组使用vector<typename> name;//定义一个名为name的typename类型vector容器vector<vector<typename> > name; //定义一个名为name的typename类型vector容器的容器 //类似于二维数组,> >之间要加一个空格访问(1)...

2020-04-18 13:08:07 103

原创 POJ 4123 马走日 简单的DFS

POJ 4123 马走日思路用一个二维int horse[8][2]来存8种走法用二维bool pan[13][13]来存棋盘每次只将正中间的9×9里的 n×m 个棋盘设为1,其余都清零然后dfs遍历即可DFS函数1.出口,已经走的步数=棋盘点的总数-12.递归,for循环8种走法:修改->递归->重置代码:void dfs(int x,int y){ i...

2020-04-14 22:30:21 466 2

原创 POJ 1321 棋盘问题(八皇后升级版)

POJ 1321 棋盘问题(八皇后升级版)思路跟八皇后一样的做法,八皇后问题解法:POJ 2754八皇后问题 DFSDFS函数有一些区别:八皇后:棋子数=棋盘行数棋盘问题:棋子数<=棋盘行数所以棋盘问题在以第a行为起点搜索完以后,需要再以第a+1行为起点搜索另外要注意:两种边界条件的先后顺序(1)得到解 ;要先于(2)越界;否则会造成最后一行搜到的解没有被计数DFS函数...

2020-04-14 21:07:46 179

原创 POJ 2754八皇后问题 DFS

POJ 2754八皇后问题思路递归,每次从1到8(用0-7方便)选符合题意的数填进去,再递归填下一个用 bool used[8] 存当前解的数字使用情况用 int ans[8] 来存当前的解用 int allans[92][8] 来存每一个解用 int allnum 来存当前解的序号递归函数由于题设,dfs的参数只需要一个,即行号dfs的内容:1.出口:要包括存好当前解的功能...

2020-04-13 22:38:46 159

原创 POJ 4103 踩方格 (简单的DFS问题)

POJ 4103 踩方格 思路1:DFS用二维数组存储走路信息(初试为0)用变量step记录走了几个格子(起点算1,与0区分开)DFS函数分4部分:1.返回2.修改3.递归4.复原由于本题需要复原,需要注意两点:1.如果递归访问下一个格子,已经塌了,则不需要复原。2.注意step–的操作,step++的操作以及step==?的返回操作的相对位置。DFS代码void dfs...

2020-04-13 16:40:47 366

原创 POJ 2815城堡问题(DFS)

POJ 2815 城堡问题(DFS)思路全部设为全局变量,用void写DFS函数,参数为i,jDFS函数void类型,参数为坐标,所有内容均为全局变量分成三部分1.判断是否已经访问过,若是,直接返回2.访问操作3.递归操作void DFS(int i,int j){ //1 if(room[i][j])//如果room!=0,直接返回 retur...

2020-04-12 23:21:54 218

原创 POJ 4119 复杂的整数划分问题 动归

#include<bits/stdc++.h>using namespace std;int main(){ int N,K,i,j,k; while(scanf("%d%d",&N,&K)!=EOF){ //第一问,划分成K个正整数之和 //dp[i][j][k]用前i个数中的j个组成k int d...

2020-04-11 23:57:35 358

原创 POJ 1745 Divisibility 01背包变式

POJ 1745 Divisibility题目大意N个整数的序列(顺序固定),通过加或减的运算,结果能否被K整除思路用二维bool数组存余数情况 dp[N][K]变量i :考察到第 i个数变量j :第 j个余数的情况dp[ i ][ j ]:前 i个数是否能运算出余数 jAC代码#include <bits/stdc++.h>using namespace std;...

2020-04-10 22:49:36 138 1

原创 POJ 4118 开餐馆 01背包问题变式

POJ 4118 开餐馆 题目连接思路01背包问题的变式遍历: i为考虑第 i 个店开不开遍历: j为只考虑前 j 个店对开第 i 个店的影响数组dp[ a ]:从前a个店挑选时的最大收益两种情况:mi 和mj 的距离1.不大于k:dp[ i ](j)=dp[ i ](j-1)2.大于k:比较下面两种选更大的(不考虑 j 与 i 之间的店)(1)不开店 i :dp[ i ](j)...

2020-04-10 13:28:56 354

原创 POJ 4131 01背包问题

思路遍历: i为一共考虑到第i个物体遍历: j为当前剩余的空间数组dp[ j ]:在考虑到当前的物体 i 时,还用 j 个空间的情况下能装的最大值两种情况:1.装不下:dp[ j ](i)=dp[ j ](i-1)2.装得下:比较下面两种选更大的(1)不装物体 i :dp[ j ](i)=dp[ j ](i-1)(2)装物体 i :dp[ j ](i)=dp[ j - w[ i ]...

2020-04-09 22:16:23 253

原创 POJ 1661 help Jimmy 动态规划

总时间限制: 1000ms 内存限制: 65536kB描述“Help Jimmy” 是在下图所示的场景上完成的游戏。场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开...

2020-04-07 22:12:40 183

原创 C++ STL string 使用笔记

拼接:直接用+/+=1 str = str1 + str2;2 str = str1 + "abc";3 str += "abc";4 str = "abc"+"abc";前三种都合法,第四种不合法,即等号右边最多只能出现一个“abc”。比较:直接符号比较,字典序se返回长度:str.size()或str.length(),O(1)插入:str.insert(),O(N...

2020-04-04 17:42:24 82

原创 OJBailian2790:迷宫

描述一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。输入第...

2020-03-13 21:58:34 124

原创 OJBailian 2749:分解因数

描述给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * … * an,并且1 < a1 <= a2 <= a3 <= … <= an,问这样的分解的种数有多少。注意到a = a也是一种分解。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)输出n...

2020-03-10 22:17:37 92

原创 OJBailian 2816:红与黑

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都不超过20。在接下来的H行中,每行包括W个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:白色的...

2020-03-10 13:25:00 102

原创 OJBailian 2748:全排列

总时间限制: 1000ms 内存限制: 65536kB描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个字符串的所有排列...

2020-03-09 22:29:55 221

原创 OJBailian 1664:放苹果

描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出对输入的每组数据M和N,用一行输出相应的K。样例输入17 3样例输出8解法:所有...

2020-03-09 22:29:20 92

空空如也

空空如也

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

TA关注的人

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