搜索
loading。。。
这个作者很懒,什么都没留下…
展开
-
leetcode 33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。 ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。 搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。 你可以假设数组中不存在重复的元素。 你的算法时间复杂度必须是 O(log n) 级别。 示例 1: 输入: nums = [4,5,6,7,0,1,2], target = 0 输出: 4 示例 2: 输入: nums = [4,5,6,7,0,1,2], target =原创 2020-08-17 17:19:36 · 88 阅读 · 0 评论 -
括号生成,LeetCode #22
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ “((()))”, “(()())”, “(())()”, “()(())”, “()()()” ] 题解: 已用的左括号数一定不小于已用的右括号数, 这样可以剪枝很多, 而且这样得到的序列是满足要求的, 故dfs即可 还有一种方式是递推, 动态规划, 合法序列...原创 2020-04-09 10:09:23 · 87 阅读 · 0 评论 -
机器人的运动范围,LeetCode 面试#13, vector 形参前加&, 未加是传值
地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少...原创 2020-04-08 09:11:03 · 108 阅读 · 0 评论 -
岛屿的最大面积,LeetCode #695
岛屿的最大面积 给定一个包含了一些 0 和 1 的非空二维数组 grid 。 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。) 示例 1: [[0,0,1,0,0,0,0,1,0,0,0,0,0],...原创 2020-04-07 11:09:12 · 192 阅读 · 0 评论 -
晾衣服,西北大学集训队选拔赛(重现赛)
西北大学集训队选拔赛(重现赛) 鸡尾酒从杭州回来,囤积了许多衣服,洗好之后,他发现晾衣服是一件麻烦的事。 晾衣绳的长度只有L,而鸡尾酒有N件衣服,每件衣服挂在衣架上之后可以横着晾或者竖着晾,横着晾比较占晾衣绳的地方,但是受光面积大,干得也快,竖着晾反之。 鸡尾酒每天都要专心卖萌,没时间管这些衣服,所以在挂好每件衣服之后就不会再调整,他只希望能最快的看到所有衣服全部被晾干。 请你帮鸡尾酒算算,假如他以最优决策挂衣服,最早经过多长时间,所有衣服都能被晾干。 如果他永远无法一次性晾干所有衣服,输出-1。原创 2019-05-12 13:46:15 · 189 阅读 · 0 评论 -
借教室
NOIP 2012 借教室 在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。 面对海量租借教室的信息,我们自然希望编程解决这个问题。 我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj,sj,tj,表示某租借者需要从第sj天到第tj天租借教室(包括第sj天和第tj天),每天需要租借dj个教室。 我们假定,租借者对教室的大小、原创 2019-05-07 13:44:51 · 220 阅读 · 0 评论 -
跳过去, 二分
跳过去, 二分 “跳过去”比赛将在一条河中进行,河中分布着一些大石头。组委会选择了两块石头作为比赛起点和终点。在起点和终点之间, 有 N 块石头(不含起点和终 点的岩石)。比赛时选手们将从起点出发,每一步跳向下一块石头,直到终点。 为了提高比赛难度,组委会计划移走一些石头,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多 从起点和终点之间移走 M 块石头(不能移走起点和终点的石头)。原创 2019-05-07 13:03:47 · 111 阅读 · 0 评论 -
洛谷P1379 八数码难题, Eight, A*启发式搜索
洛谷P1379 八数码难题, Eight 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。原创 2019-05-05 19:15:23 · 279 阅读 · 0 评论 -
韩信走马分油,A*启发式搜索
韩信走马分油,A*启发式 第一行表示初始状态,第二行表示把12升倒入8升容器后的状态,第三行是8升倒入5升,... 当然,同一个题目可能有多种不同的正确操作步骤。 本题目的要求是,请你编写程序,由用户输入:各个容器的容量,开始的 状态,和要求的目标油量,程序则通过计算输出是否可能分成功-“Y”,“N”。 的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。 有3个容器,容量分别为12升,8升,5升。其中12升中装 满油,另外两个空着。要求你只用3个容器操作,最后使得某个容器中正好原创 2019-05-08 12:46:30 · 1095 阅读 · 1 评论 -
线数目
bfs 现有画有黑线(直线或曲线)的白底图片一张,计算出有多少条黑线、并依次输出每条黑线所占的点数。图片我们用0、1图表示, 1代表黑点 0 代表白点,某点周围8个方向都算连通,如下图所示,共有3条黑线,长度分别是5、3、5:原创 2019-04-24 15:03:48 · 136 阅读 · 0 评论 -
滑雪问题, 记忆化搜索
题目:Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12...原创 2019-04-02 18:14:04 · 192 阅读 · 0 评论 -
二分搜索,POJ2456,NYOJ 914, 区间移位-蓝桥杯-历届试题
二分搜索是不断缩减可能解的范围来得到最优解, 因为每次是折半, 所以指数爆炸有多快,这个效率就有多高 POJ2456为例, 传送门 简而言之, 就是将牛之间的距离的最小值最大化。 #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int n, m...原创 2019-03-10 20:00:21 · 1031 阅读 · 0 评论 -
蓝桥杯-历届试题 大臣的旅费 DFS
传送门 问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。 J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成...原创 2019-03-04 20:58:30 · 647 阅读 · 0 评论 -
蓝桥杯-历届试题-剪格子
传送门 问题描述 如下图所示,3 x 3 的格子中填写了一些整数。 ±-–±-+ |10 1|52| ±-***–+ |20|30 1| *******–+ | 1| 2| 3| ±-±-±-+ 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。 本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。 如果存在多种解答,...原创 2019-03-04 14:17:09 · 489 阅读 · 0 评论 -
BFS迷宫问题,模拟 + BFS
链接:https://ac.nowcoder.com/acm/contest/330/C 来源:牛客网 精通程序设计的 Applese 双写了一个游戏。 在这个游戏中,它被困在了一个 n × m n×m 的迷宫中,它想要逃出这个迷宫。 在迷宫中,有一些方格是水池,只有当 Applese 处于水属性的时候才可以通过;有一些方格是岩浆,只有当 Applese 是火属性的时候可以通过;有一些方格...原创 2019-02-26 20:05:41 · 214 阅读 · 0 评论 -
BFS, D.最小相似度,牛客练习赛41,
传送门 由于M只有20,所以我们知道状态数一共只有2^20,我们如果能算出每个状态和给定n个字符串相似度的最大值,这道题就解决了。首先我们知道所有n个串最初的dp值为m,通过bfs,把每个串丢进队列一次,每个串改变每一位得到新的字符串,相同位减一,更新那些没出现过的串的dp值再丢进队列,就可以保证当前步数为最大相似度。而且保证每个串只进一次队列 #include&amp;amp;lt;iostream&amp;amp;gt; ...原创 2019-03-02 18:26:51 · 201 阅读 · 0 评论