ACM&CCF
玉米味土豆片
在路上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
201609-3炉石传说——CCF试题2016年9月第三题
问题描述 《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下: * 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。 * 玩家各控制一个英雄...原创 2018-05-04 16:39:50 · 573 阅读 · 0 评论 -
leetcode岛屿的个数:广度优先搜索(BFS)
题目: 岛屿的个数给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。解体思路:这是一道标准的广度优先搜索题,可以尝试用递归的方法或者非递归的方法。比较重要的一点就是要进行边界检查:因为网格是给定的,所以在BFS过程中要保证每个节点都是有效没有越界的。...原创 2018-12-31 23:01:07 · 2697 阅读 · 0 评论 -
leetcode验证二叉搜索树
题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。这是leetcode里面我遇到的一道比较有意思的题目,题目的意思非常清楚:输入一棵树,判断它是不是二叉搜索树。大家对二叉搜索树的概念应该非常熟悉,题目中也非常清楚地给出了判...原创 2018-12-15 00:07:31 · 1254 阅读 · 1 评论 -
筛法快速求素数——leetcode计数质数
在算法竞赛中经常会遇到求质数的问题,这种题目一般都是要求出一定范围内[0,n]所有的质数或者质数的个数。最直接的思路就是根据质数的定义来判定一个数是不是质数(即一个数不能被除1和它本身外的任何数整除),如果我们需要对所有的数都这样进行判断,那么当n非常非常大的时候,这种算法的时间开销就会非常大,大概为O(n^2)。这个时候就可以使用筛法来快速地求出素数,筛法求素数的基本思路就是:除了0、1之外,所...原创 2018-11-17 20:04:16 · 1131 阅读 · 1 评论 -
模式串匹配:KMP算法和AC自动机(二)
博客《模式串匹配:KMP算法和AC自动机(二)》中讲了KMP原理和实现,KMP算法针对的是单模式串的匹配问题,而AC自动机是能够解决多模式穿匹配问题的算法,曾尝试自己实现一个AC自动机,但是发现还是挺有难度的,于是在网上看了一些大神的模板,在这里转发学习一下~下面的博客转自:KMP 大多 是用来解决 单串单串匹配 的 问题的~AC自动机 则是在 KMP 的 基础上 用来解决一大串里面的...转载 2018-11-05 21:14:53 · 440 阅读 · 0 评论 -
leetcode打家劫舍:动态规划(三)
博客《leetcode——动态规划(一):最大子序和》已经结合题目把动态规划的思想原理大概讲了一下,那么这篇博客主要针对更多典型的动态规划的题目,来对动态规划思想的应用进行更进一步的探讨。《leetcode——动态规划(二):爬楼梯》讨论了一道非常简单的题,这篇博客又要讲leetcode上另一道非常简单的题目:打家劫舍。打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现...原创 2018-11-05 20:57:21 · 349 阅读 · 0 评论 -
leetcode爬楼梯:动态规划(二)
博客《leetcode——动态规划(一):最大子序和》已经结合题目把动态规划的思想原理大概讲了一下,那么这篇博客主要针对更多典型的动态规划的题目,来对动态规划思想的应用进行更进一步的探讨。这篇博客主要讲leetcode上一道非常简单的题目:爬楼梯。爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n...原创 2018-11-05 20:46:10 · 174 阅读 · 0 评论 -
leetcode最大子序和:动态规划(一)
动态规划是一种非常重要的算法思想,毕竟是一种思想,所以在逻辑层面的体现并没有一个固定的形式,但是处理问题的方式却都是本着一个原则:将一个问题递归分解为它的子问题进行求解,也许有人会问:这不是分治的思想嘛?因为问题分解的过程中往往会产生很多重复的子问题,这个时候动态规划和分支的区别就会体现出来,动态规划会将需要重复解决的子问题的结果在第一次计算之后就保存起来,之后碰到重复的子问题都可以直接得到结果,...原创 2018-11-05 20:20:19 · 215 阅读 · 0 评论 -
模式串匹配:KMP算法和AC自动机(一)
模式串匹配也称字符串匹配,是在计算机中用得非常多的一种操作。这篇博客主要记录两种常见的字符串匹配算法的学习历程,它们分别是KMP算法和AC自动机。其中KMP是迄今为止用得最为广泛并且算法效率极高的一种单模式串匹配的算法,相比朴素字符串匹配算法O(n*m)的时间复杂度(其中n为主串的长度,m为模式串的长度),KMP的时间复杂度只有O(n+m),在主串长度远大于模式串的长度时,KMP的效率是相当优秀的...原创 2018-10-05 23:17:45 · 859 阅读 · 0 评论 -
leetcode相交链表:O(n)时间复杂度,O(1)空间复杂度解法
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 ...原创 2019-05-27 11:26:52 · 1220 阅读 · 0 评论
分享