zoukankan      html  css  js  c++  java
  • 算法问题五行缺数

    在给定的数据中,找出缺失的数字

    第一种:在给定的有序数组中,找到缺失的数字,只缺一个,
    思路,累加数字到给定n,然后减去有序数组累加的和,然后就找到了

     /**
         * 第一种,1-100中缺失一个数字,找出他是谁,数组 无需不重复
         * 方法 1-100相加减去给定数字的结果
         *
         * num是给定数字,n是代表 1-n的结果集
         */
        public static int findLostNum(int[] num,int n){
            //比如给 num=3,res = 5 那么结果是 5-3 = 2,就是缺失的
            int sum = 0;
            for (int i = 1; i <=n ; i++) {
                sum+=i;
            }
            for (int i = 0; i < num.length; i++) {
                sum-=num[i];
            }
            return sum;
        }
    
    测试
    
        public static void main(String[] args) {
            // 1-3 ,5 = 1+2+3-5
    //        System.out.println(findLostNum(3,5));
    
          
        }
    

    第二种:第二种,99个数字,有偶数个重复的,一个奇数不重复的,找出这个数字
    思路 异或

     /**
         * 第二种,99个数字,有偶数个重复的,一个奇数不重复的,找出这个数字
         * 可以考虑xor(异或)
         * * num是给定数字
         */
        public static int findLostNum1(int[] num){
            //比如给 num=3,res = 5 那么结果是 5-3 = 2,就是缺失的
            int sum = 0;
            for (int i = 0; i <num.length ; i++) {
                sum^=num[i];
            }
            return sum;
        }
    
    
    
        /**
         *
         * @param args
         */
        public static void main(String[] args) {
            // 1-3 ,5 = 1+2+3-5
    //        System.out.println(findLostNum(3,5));
    
            // 2 2 3
            int[] num1 = {2,2,3};
            System.out.println(findLostNum1(num1));
        }
    
    

    还有一种情况:
    /**
    * 还有一种是有偶数个重复度 还有俩个 不同的 奇数
    * 找出这俩个奇数
    * 这个就做思考题吧
    */

  • 相关阅读:
    .NET 世界中的远程脚本
    操作Active Directory C#
    三层体系结构总结(四)
    C#+Asp.net系列教程
    勿重复检测浏览器
    事件模块的演变(8)
    读jQuery之三(构建选择器)
    读jQuery之二(两种扩展)
    新API解析JSONAjax之七
    JS Queue LazyLoad 之二
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15623349.html
Copyright © 2011-2022 走看看