牛客网答题运行时间改善

原创 2017年10月31日 12:14:24

剑指offer中字符串的排列为例:
1. 题目描述如下:
输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。
2. 输入描述如下:
输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。

思路:
1. 将每个字符串第i(i从1开始)位依次与后面每一位包括自身(假设为k)交换。
2. 每交换一次,从i+1位开始重复1过程。
3. 直到i大于等于字符串的长度时,不再重复,并放入存放排列的数组中。

下面是编码运行结果:
图1-返回值为void-1ms-496k

图1-返回值为void-1ms-496k

图2-返回值void-vectors形参-3ms-496k
图2-返回值void-vectors形参-3ms-496k

图3-返回值为vector-8ms-500k
图3-返回值为vector-8ms-500k

图4-返回值vector-vector形参-14ms-512k
图4-返回值vector-vector形参-14ms-512k

总结:
1. 如图1所示。当迭代返回值为void,并且不使用vector形参时。时间:1ms 空间:496k
2. 如图2所示。当迭代返回值为void,并且使用vector形参时。时间:3ms 空间:496k
3. 如图3所示。当迭代返回值为vector,并且不使用vector形参时。时间:8ms 空间:500k
4. 如图4所示。当迭代返回值为vector,并且使用vector形参时。时间:14ms 空间:512k(经过多次运行发现基本是>=8ms)

由此,我建议:
1. 可以使用void作为返回值的函数,就尽量使用void
2. 迭代尽量使用成员变量作为参数而不使用变量引用

版权声明:本文为博主原创文章,未经博主允许不得转载。

牛客网刷面试题遇到的一些问题的总结

牛客网刷面试题遇到的一些问题的总结
  • WSYW126
  • WSYW126
  • 2016年05月13日 17:01
  • 2049

牛客网答题笔记---数字游戏

题目描述小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果...
  • tingyun_say
  • tingyun_say
  • 2016年09月03日 21:32
  • 599

牛客网答题笔记--构造队列

这篇文章接上一篇,在牛客上关于一道约瑟夫环问题的解题笔记:题目描述:小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:while(!Q.empty()) ...
  • tingyun_say
  • tingyun_say
  • 2016年08月28日 15:08
  • 597

牛客网答题笔记---字符串变型

题目描述:对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。 首先这个字符串中包含着一些空格,就像”Hello World”一样,然后我们要做的是把着个字符串中由空格隔开...
  • tingyun_say
  • tingyun_say
  • 2016年09月04日 12:57
  • 321

牛客网答题笔记---构造回文

题目描述:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。分析在一个长的串中找到最长的那个回文串,也就是最长回文串序列。 ...
  • tingyun_say
  • tingyun_say
  • 2016年08月30日 22:39
  • 815

牛客网答题笔记-java网络编程

1.动态链接库的优点:共享,开发模式好,减少页面交换。2.n个数值选出最大的n个数的最小算法复杂度是O(nlogn),将n个·数排序,排序后的前k个数就是最大数值,3.在读取磁盘多个数据块时,通道方式...
  • luoaijun12
  • luoaijun12
  • 2016年11月28日 18:36
  • 192

牛客网答题笔记---地域划分

题目描述 现在有一块长条形的土地,这个土地我们可以看成是由n块小方格连接而成的(这些小方格我们可以将之编号为1到n)。 而我们需要将其划分成两个部分,分别种上不同的作物(即作物A和B),划分必须在...
  • tingyun_say
  • tingyun_say
  • 2016年09月04日 12:25
  • 222

牛客网答题笔记---字符移位

题目描述:小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗?分析这题的给出的一个提醒点是不要申请额外的空间,那么我们在m...
  • tingyun_say
  • tingyun_say
  • 2016年08月30日 23:14
  • 412

工作环境的改善---提高工作效率和工作质量

author:skatetime:2010-03-02  工作环境的改善 这里说的工作环境不包括人事斗争,通过个人能力改善人际关系不容易,而且很容易牺牲掉;在人事斗争中”你“一般都是被动的卷入其中,作...
  • wyzxg
  • wyzxg
  • 2010年03月02日 07:34
  • 3764

在线答题系统的技术原理介绍

对于在线答题系统有很多种不同的定义。 一种是人工对计算机的题目解答,另外一种就是答案库的自动解答。我们现在介绍的就是利用自身的答案库进行自动答题的在线答题系统的技术原理介绍。       在...
  • baidu_36955986
  • baidu_36955986
  • 2016年12月07日 11:33
  • 789
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:牛客网答题运行时间改善
举报原因:
原因补充:

(最多只允许输入30个字)