////////////////////////////////////
//一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
//心得:开始我以为是只出现一次的一个数,题中确是有2个只出现一次的数
//数组从i=0,开始,另一个j=i+1开始,当出现一个相等的我就把它保存在我新建的数组里面b[n/2+1],
//当j==n时,说明在i位置之后没...
分类:
编程语言 时间:
2015-05-04 13:56:27
阅读次数:
155
//////////////////////////////////////////////////////////////////////////
//小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,
//他马上就写出了正确答案是100。
//但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。
//没多久,他就得到另一组连续正数和为100的序列:...
分类:
编程语言 时间:
2015-05-04 11:59:22
阅读次数:
121
分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分法查找,这样时间复杂度能降到logn 解决问题 我们通过二分法寻找k,如果中间的数小于k,那么在前半...
分类:
编程语言 时间:
2015-05-04 09:59:55
阅读次数:
160
引言 STOI是很常见的一道题,leetcode上也有,字符串转换为数字一般都会有现成的函数去实现这样的功能,但有时候需要我们理解其中的具体实现,因为虽然是个很常见的问题,但实际上需要考虑的问题还是很多的,尤其是corner case的处理,而这类问题一般要考虑两点:一点是符号,另外一点是越界 分析...
分类:
编程语言 时间:
2015-05-04 09:55:08
阅读次数:
162
///////////////////////////////////////////////////////////////////
//HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。
//今天测试组开完会后,他又发话了:在古老的一维模式识别中,
//常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。
//但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会...
分类:
编程语言 时间:
2015-05-03 23:46:39
阅读次数:
181
/////////////////////////////////////////////////////////
//数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
//例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
//由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。
#include
using namespace std;
int Gri...
分类:
编程语言 时间:
2015-05-03 23:43:57
阅读次数:
163
#include
#include
using namespace std;
int FirstNotRepeatingChar(string str) {
int n = str.length();
if(n10000)return -1;
int i = 0;
for(;i<n;i++)
{
...
分类:
编程语言 时间:
2015-05-03 22:08:45
阅读次数:
137
引言 一般这种不能用四则运算的题都只有用位运算来做,目的是加强大家对计算机计算的理解,真是有点扯淡呢 解决问题 首先我们得思考计算机是怎样做加法的呢,比如3加4,如果转换成二进制是0011和0100,加起来是7,也就是0111,相当于是两个二进制的异或运算 但是我们再举一个例子就是4加4,会发现,两...
分类:
编程语言 时间:
2015-05-03 20:32:22
阅读次数:
154
引言 常见的约瑟夫环问题有用循环链表做的,有用数组做的,这里提供一个用数学公式做的,由此可见,很多计算机的问题如果最终用到数学的知识,时间复杂度会大大的降低 分析问题 首先我们对0到n-1删除第一个数进行分析,第一个被删除的数一定是序号为m-1的数,因为0号数了1,1号数了2,m-1号数了m,那么应...
分类:
编程语言 时间:
2015-05-03 20:28:43
阅读次数:
150
分析问题 这个题目的关键点在于大小王可以看作任意的数字,那么我们就把这个任意的数字看作0也未尝不可,因为扑克牌中1-15都有数字,所以可以用0代表大小王 这样我们就将问题转换成了从0-15中抽5个数字,看是否连续的问题,由于0可以看作任意数字,所以我们可以用0去补那些空缺的数,比如0,1,3也算是连...
分类:
编程语言 时间:
2015-05-03 20:19:41
阅读次数:
150