求一道算法题目

问题描述

有一个数组A{1,3,4,5,7,8,9,10......},长度为M,注意此数组按升序排列,有另一数组B{2,3,4,5,6,7,8,9,...}长度为N,注意此数组也是升序的,现在要求用一个循环统计两个数组中共有的元素的个数。注意是要求一个循环统计实现。

解决方案

把其中的一个数组放数一个集合中,然后用一个循环把另外的一个数组一个一个的进行比较.并设计一个指示器,如果后面数组中的数大于前面数组就不用比较,减少不必要的循环次数^^
解决方案二:
先放进把数组中的元素放进集合中,然后判断集合中是否有相同的元素,有的话就移除该元素,同时给一个Integer类型的标识,移除一个就对该标识加1可以参考如下代码...... List<String> tmpList = new ArrayList<String>(tmpStrIds); List<String> delList = new ArrayList<String>(); for(int i=tmpList.size()-1;i>=0;i--){ String user = tmpList.remove(i); //删除该元素 if (delList.contains(user) || //是否删除过 tmpList.contains(user)) { //是否删除后还有相同的 delList.add(user); } else { tmpList.add(user); //如果没有重复的再放回去 } }
解决方案三:
// 求两个有序数组的交集// a1,a2为源数组// len1,len2分别为源数组的长度// 返回交集的个数int intersect(int *a1,int len1,int *a2,int len2){int i=0,j=0,k=0;while (i<len1 && j<len2){if(a1[i] == a2[j]){k++;i++;++j;}else if(a1[i] > a2[j])++j;else++i;}return k;}
解决方案四:
该死的zoozooll

时间: 2024-09-29 06:37:35

求一道算法题目的相关文章

求一道算法题的实现,谢谢了

问题描述 题目如下: 一个21位的整数,它的各个位数的21次方的和加起来等于它本身.要求:程序在三分钟内完成,Java语言实现.谢谢了! 问题补充:蔡华江 写道 解决方案 http://huajiang.iteye.com/blog/763764解决方案二:总算搞完了,2秒内可以求出结果.待会贴上思路解决方案三:估计要用数学方法,我只发现了一个规律,就是一个数的21次方的个位数还是这个数,继续关注~~~

一道关于数组的算法题目,请用java实现。

问题描述 一道关于数组的算法题目,请用java实现. 在这个图片里我们有不同高度的墙.这个图片由一个整数数组所代表,数组中每个数是墙的高度.上边的图可以表示为数组[2,5,1,2,3,4,7,7,6]. 假如开始下雨了,那么墙之间的水坑能够装多少水呢? 请用java实现(任意数组求出结果) 解决方案 参考这三个贴 http://www.cnblogs.com/xiangnan/archive/2013/11/01/3402467.html http://blog.jobbole.com/5070

逻辑题-一道算法或者逻辑面试题,求思路

问题描述 一道算法或者逻辑面试题,求思路 100个面值是1-50随机分布的硬币排成一列,你和另一个人一人一个的取,只能从队列头部和尾部取.如何保证最后你取的硬币面值和比你对手多? 解决方案 保证你取倒数第二张? 还是和最大? 1-50 面值按照谁家的硬币? 美元? 美元面值: 现流通硬币有1 分.5 分.10分.1/4 元.1/2 元.1 元六种面值. 正面与背面所铸图案如下: 1 分 - 正面: Lincoln 林肯 ,背面:林肯纪念堂 5 分 - 正面:Jefferson 杰佛逊 ,背面:杰

一道算法题,看看大家的思路(续)

"一道算法题,看看大家的思路",看了众多的回复,本人愚钝,没有看明白其中的奥妙.在细细研究<编程之美>中的文章后,终于理解了这个算法的思路.现将这个算法的演算过程以及代码实现(VB2005)赋予其后,和各位交流. 现再将题目复述一遍: 题目描述:有31,-41,59,26,-53,58,97,-93,-23,84十个数.SUM(N,M)表示从第N个数到到第M个数的和.例如:SUM(2,3)=-41+59=18.问:最大的和是多少?对应的N和M是多少? 先不管N和M的计算,直

java-一道ava算法题目。。。。。

问题描述 一道ava算法题目..... 写一个函数来从数组中删除重复的对象.维持秩序.例如,如果输入的数组[ 1,5,4,2,7,2,6,5 ],结果应该是[ 1,5,4,2,7,6 ].实施时应执行速度的优化. 解决方案 其实你可以用set啊,set里的数据都是不能重复的 ps: List就是可以重复的集合.而Set是不可以重复的. 假如你输入1,2,2,4 那么在List集合中就有4个元素:1,2,2,4 但如果在Set集合中就只有3个元素了:1,2,4

一道算法基础题 uva1586

问题描述 一道算法基础题 uva1586 题目链接在这儿 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=830&page=show_problem&problem=4461 我自己做的代码如下 但是通不过 测了好多数据都没问题 #include<cstdio> #include<cstring> using namespace std; in

关于二叉树的深度算法题目及解答

求二叉树的深度算法 算法的思想: 采用二叉树的后序遍历非递归算法.由于后序遍历非递归算法使用一个栈实现,每次都会在一条路径上走到最底层才向上访问,再向右访问.因此,记录下栈在遍历中的最大值,即为二叉树的最大深度. #include <iostream> #include <stack> using namespace std; struct BinTree {     int data;     BinTree *lc;     BinTree *rc; }BTNode,*BinT

问一道acm题目,下楼梯递归的

问题描述 问一道acm题目,下楼梯递归的 下楼梯查看 提交 统计 提问总时间限制: 1000ms 内存限制: 1000kB描述从楼上走到楼下共有h个台阶,每一步有3种走法:走1个台阶,走2个台阶,走3个台阶.问可走出多少种方案,并打印出具体方案?输入台阶个数h输出各种走法方案及总方案个数样例输入5样例输出plan 1:32plan 2:311plan 3:23plan 4:221plan 5:212plan 6:2111plan 7:131plan 8:122plan 9:1211plan 10

c语言-求一道关于C语言概率计算题

问题描述 求一道关于C语言概率计算题 问题描述 生成n个∈[a,b]的随机整数,输出它们的和为x的概率. 输入格式 一行输入四个整数依次为n,a,b,x,用空格分隔. 输出格式 输出一行包含一个小数位和为x的概率,小数点后保留四位小数 样例输入 2 1 3 4 样例输出0.3333 数据规模和约定 对于50%的数据,n≤5. 对于100%的数据,n≤100,b≤100. (最好讲清一下思路) 解决方案 两个思路,一个是对n个[a,b]的数据求全组合,并且看其中和为x的数量,两者相除可以得到精确的