自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

唯爱你不弃∞

如果文章对你有帮助,请帮忙点击左下角的赞。你的十分满意,我的无限动力!!!

  • 博客(75)
  • 资源 (2)
  • 收藏
  • 关注

原创 面试题知识总结

凡科mysql默认的事务隔离级别是什么?  可重复读。mysql联合索引有什么好处  “一个顶三个”。建了一个(a,b,c)的复合索引,那么实际等于建了(a),(a,b),(a,b,c)三个索引,因为每多一个索引,都会增加写操作的开销和磁盘空间的开销。对于大量数据的表,这可是不小的开销!  覆盖索引。同样的有复合索引(a,b,c),如果有如下的sql: select a,b,c from table where a=1 and b = 1。那么MySQL可以直接通过遍历索引取得数据,而无需回表,这

2020-10-19 09:49:50 330

原创 笔试题总结

1.int a=10是原子操作吗?是的。      注意点:      (1)i++(或++i)是非原子操作,i++是一个多步操作,而且是可以被中断的。i++可以被分割成3步,第一步读取i的值,第二步计算i+1;第三部将最终值赋值给i。      (2)int a = b;不是原子操作。从语法的级别来看,这是也是一条语句,

2020-10-19 09:44:37 1794

原创 122. 糖果传递(均分纸牌加强版)

有n个小朋友坐成一圈,每人有a[i]个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。求使所有人获得均等糖果的最小代价。输入格式第一行输入一个正整数n,表示小朋友的个数。接下来n行,每行一个整数a[i],表示第i个小朋友初始得到的糖果的颗数。输出格式输出一个整数,表示最小代价。数据范围1≤n≤1000000数据保证一定有解。输入样例:41254输出样例:4思路分析设糖果平均数为a,ai代表第i堆糖果的个数,xi代表第i堆糖果向第i+1堆糖果

2020-07-20 21:35:33 314

原创 1536. 均分纸牌(递推、递归)

有N堆纸牌,编号分别为 1,2,…,N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为 1 的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N−1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如 N=4,4 堆纸牌数分别为:(9,8,17,6)。移动 3 次可达到目的:从第三堆取四张牌放入第四堆,各堆纸牌数量变为:(9

2020-07-18 22:54:11 269

原创 1259. 二叉树遍历(中序和按层遍历构造二叉树)

树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。输入格式两行,每行是由大写字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。输出格式一行,表示二叉树的先序序列。数据范围输入字符串的长度均不超过26。输入样例:DBEACABCDE输出样例:ABDEC代码#include <

2020-07-18 22:27:04 1031 1

原创 104. 货仓选址(邮递员问题)

在一条数轴上有 N 家商店,它们的坐标分别为 A1 ~ AN。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。输入格式第一行输入整数N。第二行N个整数A1 ~ AN。输出格式输出一个整数,表示距离之和的最小值。数据范围1≤N≤100000输入样例:46 2 9 1输出样例:12思路分析数学里的绝对值不等式:| x | + | y | ≥ | x + y |。∵| x -

2020-07-18 17:25:17 220

原创 30. 正则表达式匹配(动态规划&DP)

请实现一个函数用来匹配包括’.‘和’*'的正则表达式。模式中的字符’.‘表示任意一个字符,而’*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但是与"aa.a"和"ab*a"均不匹配。样例输入:s=“aa”p=“a*”输出:true思路分析代码定义:f[i][j]表示长度为i的字符串与长度为j的模式串是否匹配。初始值:f[0][0]=true;//两个都是空串也是匹配的

2020-07-09 18:27:01 332

原创 1491. 圆桌座位(DFS)

N 个人围坐一圈,有 M 对朋友关系。第 i 对朋友关系是指,编号是 ai的人和编号是 bi 的人是朋友。现在要给他们安排座位,要求所有相邻的人不能是朋友。问共有多少种方案?如果两个方案只有旋转角度不同,则我们将其视为一种方案。输入格式第一行包含两个整数 N,M。接下来 M 行,每行包含一对 ai,bi。输出格式输出一个数,表示总方案数。数据范围3≤N≤10,0≤M≤N(N−1)2\frac{N(N−1) }{2}2N(N−1)​,1≤ai<bi≤N,(ai,bi)≠(aj

2020-07-08 23:13:03 284

原创 19. 二叉树的下一个节点

给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。注意:如果给定的节点是中序遍历序列的最后一个,则返回空节点;二叉树一定不为空,且给定的节点一定不是空节点;样例假定二叉树是:[2, 1, 3, null, null, null, null], 给出的是值等于2的节点。则应返回值等于3的节点。解释:该二叉树的结构如下,2的后继节点是3。   2  /  \1   3思路分析当二叉树有右子树的时候,其

2020-07-08 16:40:10 136

原创 18. 重建二叉树

输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。注意:二叉树中每个节点的值都互不相同;输入的前序遍历和中序遍历一定合法;样例给定:前序遍历是:[3, 9, 20, 15, 7]中序遍历是:[9, 3, 15, 20, 7]返回:[3, 9, 20, null, null, 15, 7, null, null, null, null]返回的二叉树如下所示:  3 / \9 20   / \15  7代

2020-06-08 22:48:37 112

原创 1490. 最长上升子串(前后缀分解)

给出一个长度为 n 的由正整数构成的序列,你需要从中删除一个正整数,很显然你有很多种删除方式,你需要对删除这个正整数以后的序列求其最长上升子串,请问在所有删除方案中,最长的上升子串长度是多少。这里给出最长上升子串的定义:即对于序列中连续的若干个正整数,满足 ai+1>ai,则称这连续的若干个整数构成的子串为上升子串,在所有的上升子串中,长度最长的称为最长上升子串。输入格式输入第一行仅包含一个正整数 n,表示给出的序列的长度。接下来一行有 n 个正整数,即这个序列,中间用空格隔开。输出格式输

2020-06-08 21:32:28 335

原创 1489. 田忌赛马(贪心)

这是中国历史上的一个著名故事。大约 2300 年前,田忌是齐国的一位将军,他喜欢与国王等人赛马。田忌和国王都有三匹不同等级的马----下马、中马、上马。规则是一场比赛要进行三个回合,每匹马进行一回合的较量,单回合的获胜者可以从失败者那里得到 200 银元。比赛的时候,国王总是用自己的上马对田忌的上马,中马对中马,下马对下马。由于国王每个等级的马都比田忌的马强一些,所以比赛了几次,田忌都失败了,每次国王都能从田忌那里拿走 600 银元。田忌对此深感不满,直到他遇到了著名的军事家孙膑,利用孙膑给他出

2020-06-07 18:04:14 2755 1

原创 P1605 迷宫

展开题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式给定起点坐标和终点坐标,问每个方格最多经过1次,从起点坐标到终点坐标的方案总数。输入输出样例输入 #1

2020-06-06 17:20:53 133

原创 P1706 全排列问题

题目描述输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入格式一个整数 n。输出格式由 1∼n 组成的所有不重复的数字序列,每行一个序列。每个数字保留 5 个场宽。输入输出样例输入 #1 复制3输出 #1 复制1 2 31 3 22 1 32 3 13 1 23 2 1说明/提示1≤n≤9代码#include <iostr

2020-06-06 17:12:54 125

原创 1488. 最短距离(单源点最短路问题)

有 N 个村庄,编号 1 到 N。村庄之间有 M 条无向道路,第 i 条道路连接村庄 ai 和村庄 bi,长度是 ci。所有村庄都是连通的。共有 K 个村庄有商店,第 j 个有商店的村庄编号是 xj。然后给出 Q 个询问,第 k 个询问给出一个村庄的编号 yk,问该村庄距离最近的商店有多远?输入格式第一行包含两个整数 N,M。接下来 M 行,每行包含三个整数 ai,bi,ci,表示第 i 条道路连接村庄 ai 和村庄 bi,长度是 ci。再一行包含整数 K。接下来 K 行,每行包含一个整数

2020-06-06 16:26:44 638 1

原创 851. spfa求最短路

给定一个n个点m条边的有向图,图中可能存在重边和自环, 边权可能为负数。请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出impossible。数据保证不存在负权回路。输入格式第一行包含整数n和m。接下来m行每行包含三个整数x,y,z,表示存在一条从点x到点y的有向边,边长为z。输出格式输出一个整数,表示1号点到n号点的最短距离。如果路径不存在,则输出”impossible”。数据范围1≤n,m≤105,图中涉及边长绝对值均不超过10000。输入样例:3 31

2020-06-05 22:15:03 139

原创 797. 差分

输入一个长度为n的整数序列。接下来输入m个操作,每个操作包含三个整数l, r, c,表示将序列中[l, r]之间的每个数加上c。请你输出进行完所有操作后的序列。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数序列。接下来m行,每行包含三个整数l,r,c,表示一个操作。输出格式共一行,包含n个整数,表示最终序列。数据范围1≤n,m≤100000,1≤l≤r≤n,−1000≤c≤1000,−1000≤整数序列中元素的值≤1000输入样例:6 31 2 2 1 2

2020-05-26 20:05:03 232

原创 1487. 取硬币(组合背包问题)

现在有 n1+n2种面值的硬币,其中前 n1 种为普通币,可以取任意枚,后 n2 种为纪念币,每种最多只能取 1 枚,每种硬币有一个面值,问能用多少种方法拼出 m 的面值?输入格式第一行包含三个整数 n1,n2,m,分别表示普通币种类数,纪念币种类数和目标面值;第二行 n1 个整数,第 i 种普通币的面值 a[i]。保证 a[i] 为严格升序;第三行 n2 个整数,第 i 中纪念币的面试 b[i]。保证 b[i] 为严格升序。输出格式共一行,包含一个整数 x,表示方法总数对 109+7 取模后的

2020-05-25 17:01:55 267

原创 1056. 股票买卖 III

给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成两笔交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入格式第一行包含整数 N,表示数组长度。第二行包含 N 个不大于 109 的正整数,表示完整的数组。输出格式输出一个整数,表示最大利润。数据范围1≤N≤105输入样例1:83 3 5 0 0 3 1 4输出样例1:6输入样例2:51 2 3 4

2020-05-25 15:11:54 316

原创 77. 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student.",则输出"student. a am I"。样例输入:“I am a student.”输出:“student. a am I”示例源字符串:I am a student.步骤一的结果:.tneduts a ma I步骤二的结果:student. a am I代码class Solution {public:

2020-05-24 19:31:22 140

原创 173. 矩阵距离(多源点的最短路径问题)

给定一个N行M列的01矩阵A,A[i][j] 与 A[k][l] 之间的曼哈顿距离定义为:dist(A[i][j],A[k][l])=|i−k|+|j−l|输出一个N行M列的整数矩阵B,其中:B[i][j]=min1≤x≤N,1≤y≤M,A[x][y]=1dist(A[i][j],A[x][y])输入格式第一行两个整数n,m。接下来一个N行M列的01矩阵,数字之间没有空格。输出格式一个N行M列的矩阵B,相邻两个整数之间用一个空格隔开。数据范围1≤N,M≤1000输入样例:3 40

2020-05-24 16:48:16 937

原创 1455. 招聘(约瑟夫环升级版问题)

某公司招聘,有 n 个人入围,HR在黑板上依次写下 m 个正整数 A1,A2,…Am,然后这 n 个人围成一个圈,并按照顺时针顺序为他们编号 0,1,2,…n−1。录取规则是:第一轮从 0 号的人开始,取用黑板上的第 1 个数字,也就是 A1。黑板上的数字按次序循环使用,即如果某轮用了第 k 个,如果 k<m,则下一轮需要用第 k+1 个;如果 k=m,则下一轮用第 1 个。每一轮按...

2020-05-07 13:31:22 443

原创 1454. 异或和是质数的子集数(背包问题求方案数)

给出 n 个互不相同的正整数。问存在多少个子集,使得子集中所有数的异或和是质数。由于答案可能很大,请你输出对 109+7 取模后的结果。输入格式第一行包含整数 n。第二行包含 n 个正整数。输出格式输出一个整数,表示满足条件的子集数量对 109+7 取模后的结果。数据范围1≤n≤5000,1≤ 给定正整数 ≤5000。输入样例:31 2 3输出样例:4思路分...

2020-05-05 22:55:21 909

原创 1453. 移掉K位数字

给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:空字符串被视为0。如果结果中包含前导零,则需要将前导零删除,最后删除的前导零不用包含在移除的 k 个数字中。输入格式第一行输入一个字符串,用来表示非负整数 num。第二行输入一个整数,表示 k。输出格式输出一个字符串,表示移除 k 位数字后所能得到的最小数字。数据范围0≤k≤ 字符串长...

2020-05-04 19:36:33 203

原创 35. 反转链表

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思考题:请同时实现迭代版本和递归版本。样例输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL代码迭代,O(n)/** * Definition for singly-linked list. * struc...

2020-05-03 20:53:41 110

原创 34. 链表中环的入口结点

给定一个链表,若其中包含环,则输出环的入口节点。若其中不包含环,则输出null。样例给定如上所示的链表:[1, 2, 3, 4, 5, 6]2注意,这里的2表示编号是2的节点,节点编号从0开始。所以编号是2的节点就是val等于3的节点。则输出环的入口节点3.思路分析用两个指针 f,s 分别从起点开始走,f每次走一步,s每次走两步。如果过程中 s 走到链表尾(NULL),则...

2020-05-03 16:58:39 127

原创 41. 包含min函数的栈

设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。push(x)–将元素x插入栈中pop()–移除栈顶元素top()–得到栈顶元素getMin()–得到栈中最小元素样例MinStack minStack = new MinStack();minStack.push(-1);minStack.push(3);minStack.push(-4)...

2020-05-01 23:22:08 99

原创 1048. 鸡蛋的硬度

最近XX公司举办了一个奇怪的比赛:鸡蛋硬度之王争霸赛。参赛者是来自世界各地的母鸡,比赛的内容是看谁下的蛋最硬,更奇怪的是XX公司并不使用什么精密仪器来测量蛋的硬度,他们采用了一种最老土的办法–从高度扔鸡蛋–来测试鸡蛋的硬度,如果一次母鸡下的蛋从高楼的第a层摔下来没摔破,但是从a+1层摔下来时摔破了,那么就说这只母鸡的鸡蛋的硬度是a。你当然可以找出各种理由说明这种方法不科学,比如同一只母鸡下的蛋...

2020-04-25 17:48:45 440

原创 1452. 寻找矩阵的极小值

给定一个 n×n 的矩阵,矩阵中包含 n×n 个 互不相同 的整数。定义极小值:如果一个数的值比与它相邻的所有数字的值都小,则这个数值就被称为极小值。一个数的相邻数字是指其上下左右四个方向相邻的四个数字,另外注意,处于边界或角落的数的相邻数字可能少于四个。要求在 O(nlogn) 的时间复杂度之内找出任意一个极小值的位置,并输出它在第几行第几列。本题中矩阵是隐藏的,你可以通过我们预设的 i...

2020-04-24 23:45:35 421

原创 1451. 单链表快速排序

给定一个单链表,请使用快速排序算法对其排序。要求:期望平均时间复杂度为 O(nlogn),期望额外空间复杂度为 O(logn)。思考题: 如果只能改变链表结构,不能修改每个节点的val值该如何做呢?数据范围链表中的所有数大小均在 int 范围内,链表长度在 [0,10000]。输入样例:[5, 3, 2]输出样例:[2, 3, 5]代码#include <iost...

2020-04-23 22:20:49 172

原创 756. 蛇形矩阵

输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5代码#include <iostream&gt...

2020-04-22 23:22:07 538

原创 背包九讲之有依赖的背包问题

有 N 个物品和一个容量是 V 的背包。物品之间具有依赖关系,且依赖关系组成一棵树的形状。如果选择一个物品,则必须选择它的父节点。如下图所示:如果选择物品5,则必须选择物品1和2。这是因为2是5的父节点,1是2的父节点。每件物品的编号是 i,体积是 vi,价值是 wi,依赖的父节点编号是 pi。物品的下标范围是 1…N。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大...

2020-04-21 22:43:33 249

原创 背包九讲之背包问题求具体方案

有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是 1…N。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,w...

2020-04-20 22:37:32 142

原创 背包九讲之背包问题求方案数

有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出 最优选法的方案数。注意答案可能很大,请输出答案模 109+7 的结果。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别...

2020-04-19 23:49:52 262

原创 背包九讲之分组背包问题

有 N 组物品和一个容量是 V 的背包。每组物品有若干个,同一组内的物品最多只能选一个。每件物品的体积是 vij,价值是 wij,其中 i 是组号,j 是组内编号。求解将哪些物品装入背包,可使物品总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行有两个整数 N,V,用空格隔开,分别表示物品组数和背包容量。接下来有 N 组数据:每组数据第一行有一个整数 Si,表示第 i...

2020-04-15 22:59:27 176

原创 背包九讲之二维费用的背包问题

有 N 件物品和一个容量是 V 的背包,背包能承受的最大重量是 M。每件物品只能用一次。体积是 vi,重量是 mi,价值是 wi。求解将哪些物品装入背包,可使物品总体积不超过背包容量,总重量不超过背包可承受的最大重量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,M,用空格隔开,分别表示物品件数、背包容积和背包可承受的最大重量。接下来有 N 行,每行三个整数 vi,mi...

2020-04-15 22:06:36 178

原创 背包九讲之混合背包问题

有 N 种物品和一个容量是 V 的背包。物品一共有三类:第一类物品只能用1次(01背包);第二类物品可以用无限次(完全背包);第三类物品最多只能用 si 次(多重背包);每种体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每...

2020-04-15 00:04:20 124

原创 背包九讲之多重背包问题 II(二进制优化)

有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。输出格式输出一个整...

2020-04-14 23:15:40 283

原创 背包九讲之多重背包问题 I

有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件,每件体积是 vi,价值是 wi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行三个整数 vi,wi,si,用空格隔开,分别表示第 i 种物品的体积、价值和数量。输出格式输出一个整...

2020-04-14 23:11:37 151

原创 背包九讲之完全背包问题

视频讲解有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品种数和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 种物品的体积和价值。输出格式输出一...

2020-04-12 22:24:54 222

连连看.zip

可以切换游戏图标,并且具有不同关卡的Java小游戏。

2019-08-21

推箱子游戏.c

C语言初学者的练手项目符号版推箱子游戏。

2019-08-21

空空如也

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

TA关注的人

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