算法问题-五行缺数
  TEZNKK3IfmPf 2023年11月15日 20 0

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

第一种:在给定的有序数组中,找到缺失的数字,只缺一个,

思路,累加数字到给定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));
    }

还有一种情况:

/**

* 还有一种是有偶数个重复度 还有俩个 不同的 奇数

* 找出这俩个奇数

* 这个就做思考题吧

*/


不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   46   0   0 算法数组
  TEZNKK3IfmPf   2024年04月19日   36   0   0 typescript数组编译器
  TEZNKK3IfmPf   2024年05月17日   42   0   0 数组php
TEZNKK3IfmPf