- 博客(11)
- 收藏
- 关注
原创 1.2字符串包含
判断字符串A中是否包含字符串B。 方法一:两遍for循环暴力破解。也是我天梯PAT里L1超时的算法。很渣。 方法二:建立哈希映射,开int s[200]数组 将对应的 A[i]存入S[A[i]]中 置1 。之后遍历B数组。判断S[B[i]]是否为1。若为1则是A组中字符,若为0则break跳出。 下面给出书中 时间复杂度为O(m+n) 空间复杂度为O(1)的算法。超棒。然而位运算
2016-06-25 12:37:00 285
原创 寻找主元素
数组中出现最多的元素 发布时间: 2015年10月6日 10:35 时间限制: 1000ms 内存限制: 256M 描述 给你一个数组,输出里面出现超过1/2的元素。保证有且只有一个解。 输入 第一行是一个整数,表示测试数据的组数 n,n 输出 输出出现超过1/2的那个数字。 这虽然是道简单题。算法O(n)各位都会。然而
2016-06-24 23:07:14 424
原创 1.1字符串旋转--左移,右移x位置--三步反转
给定一个字符串,对其移动,向左或者 向右移动x位置。 这类题对于我们最初学习c语言就是一个典型题。 大概思路: 1。循环x次,每次执行一步左移或右移。时间复杂度O(m*n)。 进一步优化: 三步反转法---时间复杂度O(n)。 具体思路: (1)。若左移3位,则将其分为X(1~3),Y(3~n)两部分。 (2)。将两部分分别反转。 (3)。 将整体反转
2016-06-24 14:35:25 1566
原创 已知树的先中序遍历--不建树--得到层序遍历
#include #include #include #include #include using namespace std; int Count=0; struct Node { int num; int lawyer; }; Node Floor[20]; bool cmp(struct Node a,struct Nod
2016-06-22 10:24:39 552 2
原创 天梯赛L2-010排座位---并查集
L2-010. 排座位 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,
2016-06-16 23:04:33 879
原创 最大子段和问题
思路:若暴力破解,两层循环 o n^2 暴力破解代码就不给出了,下面给出优化算法 例子: 1 -2 3 4 -5 从头开始,并记录前一个的最大值, 若前一个的值0 则当前值+=它本身; #include #include #include #include #include using namespace std; long long maxin,ans; i
2016-06-16 10:55:13 606
原创 1115. Counting Nodes in a BST (30)
1115. Counting Nodes in a BST (30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue A Binary Search Tree (BST) is recu
2016-06-16 10:37:59 328
原创 天梯赛L2-006树的遍历---已知中序后序---输出层序遍历
L2-006. 树的遍历 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。 输入格式: 输入第
2016-06-16 10:14:32 752
原创 已知中后序遍历-->建立二叉树-->层序输出
二叉树后序: 左 - > 右 - > 根 后序给出的最后一个节点为根节点 二叉树中序: 左 - > 根 - > 右 中序可以在前序的基础上将树的左孩子,右孩子,完全确定。 下面就是一个递归的过程 每次递归过程中 拿当前传入的后序遍历的尾节点 找到中序遍历的该尾节点的位置。并将其划分为左右两个子树。并链接在结构体指针上 #include
2016-06-16 10:07:02 377
原创 天梯赛L2-011玩转二叉树----已知前序中序建树---输出层序遍历
L2-011. 玩转二叉树 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。 输入格式: 输入第一行给出一个正整数
2016-06-16 09:56:21 854
原创 已知前序中序->构建二叉树
二叉树前序: 根 - > 左 - > 右 前序给出的第一个节点为根节点 二叉树中序: 左 - > 根 - > 右 中序可以在前序的基础上将树的左孩子,右孩子,完全确定。 下面就是一个递归的过程 每次递归过程中 拿当前传入的前序遍历的首节点 找到中序遍历的该首节点的位置。并将其划分为左右两个子树。并链接在结构体指针上 #include #include #
2016-06-16 09:41:34 418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人