开发者社区> 范大脚脚> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

去除A和B数组中的交集

简介:
+关注继续查看
那位同学碰到新的算法题了。

去除A和B数组中的交集 ,即去除A和B数组中重复次数少的部分如A:111B:11,即去除B中的11

下面是我的解决方案,另希望他最后面试能过: 

复制代码
    class Program
    {
        
static void Main(string[] args)
        {
            
int[] ar = { 126345 };
            
int[] ar2 = { 100,1003261009347 };
            
try
            {
                Console.WriteLine(get2rdMax(ar).ToString());
                Console.WriteLine(get2rdMax(ar2).ToString());
            }
            
catch(Exception exc)
            {
                Console.WriteLine(exc.Message);
            }
        }

        
private static int get2rdMax(int[] ar)
        {
            
if (ar.Length < 2)
                
throw new Exception("no second max!");

            
int max=ar[0], s_max=ar[0];

            
for (int i = 1; i < ar.Length; i++)
            {
                
int index = ar[i];

                
if (index == max)
                    
continue;//重复值问题

                
if (s_max == ar[0&& max == ar[0])
                {
                    s_max 
= index;
                }
                
                
if (index > s_max)
                {
                    s_max 
= index;
                }

                
if (s_max > max)
                {
                    max 
+= s_max;
                    s_max 
= max - s_max;
                    max 
-= s_max;
                }
                
            }

            
if (max == s_max)
                
throw new Exception("no second max!");
            
else
                
return s_max;
        }
        
复制代码

    } 



本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2011/03/31/2001407.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数组
数组
30 0
26. 删除排序数组中的重复项
26. 删除排序数组中的重复项
34 0
数组
变量只能存储一个值,数组可以存储多个值 没有字符串类型:本身就没有字符串数据类型,因为字符串数据类型长度不确定,没有办法制定数据类型大小(还有一点是字符串是一个类)。 Java没有指针但却有指针的理论:C语言的字符串采用的是指针制作?  你赋值一串字符串,它会询问这个字符串有多长就申请多少个char类型连续内存?                                                   为什么需要内存连续呢,因为指针变量指向的是第一片内存地址,它要按顺序向下找 只要是数组操作都是操作的地址,数组传只用的是引用传递。
751 0
JS中数组去除重复
JS中数组去除重复
829 0
4月13日云栖精选夜读:MongoDB使用常见问题及应用场景全集
这一定是有史以来最全的MongoDB的资料了!所有关于MongoDB使用的常见问题和使用场景你都能这里找到,比如如何使用 MongoDB 存储日志数据、如何正确链接MongoDB复制集、关于MongoDB Sharding的原理等等内容。
3000 0
js去除数组重复项
原文:js去除数组重复项 第一次写,感觉不知道写啥,想了半天决定还是用以前用过的一些东西,看了看就写数组去除重复项算了^_^。 去除数组重复项有很多方法,之前因为用到,看了一下以前搜集的一些代码,进行比较,在这里总结一下,希望能给各位有所帮助,有什么问题,请各位大神不吝指导。
944 0
+关注
3656
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载