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));
        }
    
    

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

  • 相关阅读:
    2020.08.02 周作业简要题解
    Codeforces Round #659【部分题解】
    2020.07.25 周作业简要题解
    我遇到的前端面试题总结(2018)
    React懒加载组件实现
    关于前端中遇到各种高度宽度的总结
    React+Redux项目实战总结
    Redux学习总结
    css学习笔记
    JS学习笔记
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/15623349.html
Copyright © 2011-2022 走看看