09 2013 档案
摘要:题目:3个字符串a,b,c。判断c是否是a和b的interleave,也就是c中应该有a,b中所有字 符,并且c中字符顺序和a,b中一样。比如,a = "ef" b = "gh" c = "egfh" return true;a = "ef" b = "gh" c = "ehgf" return false。分析:看到题目首先我们知道需要遍历比较,这是最简单和最基础的做法。但问题接着来了:怎么判断a,b中的字符的顺序和C中的一样呢?恩,我自己想到一个方法就是开辟一个与a和b大
阅读全文
摘要:最近在学习C#网络编程,遇到的问题解决后,和大家分享下。本人在用的课本是《Visual C#网络编程》郑阿奇主编电子工业出本社。由于书里有用的是IPV4协议所以在IPV6的电脑上会出现问题。在UDP编程通信那章,便会出现“使用了与请求的协议不兼容的地址。”这里由于sendUdpClient = new UdpClient(0);是IPV4的方法,所以会出错。改正办法:sendUdpClient = new UdpClient(0, AddressFamily.InterNetworkV6);
阅读全文
摘要:题目:指定一个无序的整数数组,怎么找到第一个大于0.并且不在此数组的整数。比如:[1,2,0],返回3;[3,4,-1,1],返回2.最好能0(1)空间和O(n)时间。分析:借助微博上给的思路:给数组处理后,如果遍历的时候,出现a[i]!=i,则i为所求的值。解决思路详见陈利人的新浪微博。代码:#includeusing namespace std;#includebool f(int a[],int n){ bool flag=false; if(a[0]>=1)//为什么写这步,可思考下面所列的第三个数组 for(int i=0;i<n;i++) { if(a[i]!=i+1)
阅读全文
摘要:题目:给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。 例如: 原数组是3,2,1, 我们只需要交换1和3就行了,交换次数为1,所以输出1。 原数组是2,3,1,我们需要交换2和1,变成1,3,2,再交换3和2,变为1,2,3,总共需要的交换次数为2,所以输出2。分析:这题只要理解了,数字与数组下标关系的话应该是没什么问题的,很简单的一道题。例如:{2,3,1}对应0,1,2。则应有:a[0]=1,a[1]=2,a[2]=3;所有不符合条件的时候,则会有a[i]!=i+1;然后找到原位置的数字并
阅读全文

浙公网安备 33010602011771号