zoukankan      html  css  js  c++  java
  • 1346. 检查整数及其两倍数是否存在

    给你一个整数数组 arr,请你检查是否存在两个整数 N 和 M,满足 N 是 M 的两倍(即,N = 2 * M)。

    更正式地,检查是否存在两个下标 i 和 j 满足:

    i != j
    0 <= i, j < arr.length
    arr[i] == 2 * arr[j]

    class Solution {
        public boolean checkIfExist(int[] arr) {
            int len = arr.length;
            List<Integer> Flist = new ArrayList<Integer>();
            List<Integer> Zlist = new ArrayList<Integer>();
            int i = 0;
            while(i < len)
            {
                if(arr[i] < 0)
                {
                    Flist.add(-arr[i]);
                }
                else
                {
                    Zlist.add(arr[i]);
                }
                i++;
            }
            int[] FArr = new int [Flist.size()];   //存储小于零的数组;
            int[] ZArr = new int [Zlist.size()]; //存储大于零的数组;
            for(int a = 0; a < Flist.size(); a++)
            {
                FArr[a] = Flist.get(a);
            }
            for(int b = 0; b < Zlist.size(); b++)
            {
                ZArr[b] = Zlist.get(b);
            }
            Arrays.sort(FArr);
            Arrays.sort(ZArr);
            // return Panduan(FArr);         
            if(!Panduan(ZArr) && !Panduan(FArr))
                return false;
            else
                return true;
     
        }
        public boolean Panduan(int[] arr)
        {
            boolean flag = true, returnFlag = false;
            int i = 0 , len = arr.length;
            if(arr.length > 1)
            {
                while(flag)
                {
                    int tmpNum = arr[i] * 2;
                    if(tmpNum > arr[len-1])
                    {
                        flag = false;
                    }
                    for(int j = len-1; j > i; j--)
                    {
                        if(tmpNum > arr[j])
                        {
                            break;
                        }
                        if(tmpNum == arr[j])
                        {
                            returnFlag = true;
                            flag = false;
                            break;
                        }
                    }
                    i++;
    
                }
                return returnFlag;
            }
            else
                return false;
        }
    }
    

      我就是记录一下自己写的,不过方法不好,有更好的方法可以去借鉴。

  • 相关阅读:
    Linux上传下载文件(rz/sz)
    注册页面(函数调用,数组,对象,for,innerHTML)
    课程表(点击事件,for)
    winform中固定界面大小的方法
    VS常用快捷键
    Python的标准输出
    Spring注解驱动第二讲--@ComponentScan扫描介绍
    Spring注解驱动第一讲--Spring环境搭建
    通用目标检测
    通用目标检测-发展趋势
  • 原文地址:https://www.cnblogs.com/Duancf/p/12405223.html
Copyright © 2011-2022 走看看