一. 问题 给定一个含有 n 个元素的序列 A,将序列中的元素逆转。 二. 思路 在前一篇文章中,我选择用用临时变量,来进行前后元素交换。这种算法的时间复杂度是 O( n ),空间复杂度是 O( 1 )(因为用到了有限个临时变量)。现在我们考虑一种新的算法:用一个栈来读入序列中的元素,再将栈中元素弹 ...
分类:
编程语言 时间:
2020-09-11 14:14:25
阅读次数:
40
LeetCode 136 只出现一次的数字 问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 执行用时:1 ms, 在所有 Java 提交中击败了99.65%的 ...
分类:
其他好文 时间:
2020-09-10 22:58:58
阅读次数:
32
进行一次快排即可 class Solution { public: vector<int> exchange(vector<int>& nums) { int le = 0; int ri = nums.size() - 1; while(le<ri){ while (le < ri&&nums[r ...
分类:
编程语言 时间:
2020-09-10 22:36:24
阅读次数:
38
时间复杂度:执行算法需要消耗的时间长短 空间复杂度:执行当前算法需要消耗的存储空间大小 求解算法时间复杂度的具体步骤: 1.找出算法中的基本语句:算法中执行次数最多的那条语句,通常是最内层循环的循环体 2.计算基本语句的执行次数:只需保证基本语句执行次数的函数中的最高 复杂度对应的算法类型 常数阶O ...
分类:
其他好文 时间:
2020-09-09 19:15:04
阅读次数:
37
一:作用最长公共子序列的问题常用于解决字符串的相似度,是一个非常实用的算法,作为码农,此算法是我们的必备基本功。二:概念举个例子,cnblogs这个字符串中子序列有多少个呢?很显然有27个,比如其中的cb,cgs等等都是其子序列,我们可以看出子序列不见得一定是连续的,连续的那是子串。我想大家已经了解了子序列的概念,那现在可以延伸到两个字符串了,你可以看出cnblogs和belong的公共子序列吗?
分类:
编程语言 时间:
2020-09-09 18:57:09
阅读次数:
40
题目: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 题目解析: 方法一: 这个题目很明显就可以用递归来做,有关树的题目用递归来做基本上是我们需要想到的首选!如果两个树是相同的,我们只需要比较其树根是相同的,同时递归调用比较树根 ...
分类:
编程语言 时间:
2020-09-09 18:40:26
阅读次数:
32
UTF8编码转换为GB2312编码字符集时,需要明确以下两点: UTF8是编码格式,而GB2312是字符集,UTF8可以动态的表示1到6字节的编码范围,其还原后可以是双字节Unicode UTF16(USC2)字符集,也可以是四字节Unicode UTF32(USC4)字符集,四字节以上的很少用到可 ...
分类:
编程语言 时间:
2020-09-07 19:08:46
阅读次数:
94
这篇文章主要讨论了DAG上dp和树形dp DAG上dp DAG上的dp一般有记忆化搜索与拓扑排序两种方法来实现。 食物链 食物链 两者时间复杂度都是线性的 拓扑排序解法: #include <iostream> #include <queue> using namespace std; const ...
分类:
其他好文 时间:
2020-09-04 17:25:19
阅读次数:
61
FFT 1 简述 FFT是专门用来求解多项式乘法的一个高效算法。 总所周知,朴素的多项式乘法的时间复杂度是$O(n^2)$,而FFT利用复数的知识做到了$O(nlogn)$。 2 点值表达式 设$A(x)$是一个n-1次方的多项式,那么把n个不同的x代入,一定可以得到n个y,这n对(x,y)唯一确定 ...
分类:
其他好文 时间:
2020-08-27 17:11:12
阅读次数:
57
Ant Trip 分析 题意很简单,爆搜的时间复杂度比较高,不考虑。 应该使用欧拉回路的相关知识求解。 intn() 输入时将两个节点的入度都加一(无向),然后将两个节点合并在一个连通图中. for (int i = 1, u, v; i <= m; i++) { scanf ("%d %d", & ...
分类:
其他好文 时间:
2020-08-26 18:31:43
阅读次数:
51