• 算法问题五行缺数


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

    第一种:在给定的有序数组中,找到缺失的数字,只缺一个,
    思路,累加数字到给定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));
        }
    
    

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

  • 相关阅读:
    MinkowskiPooling池化(上)
    稀疏张量基础
    稀疏张量网络
    英伟达TRTTorch
    闵可夫斯基引擎Minkowski Engine
    reactive和reactor
    today search
    today news 2020-8-8
    如何去写一本精品小书?
    today news
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15623349.html
Copyright © 2020-2023  润新知