zoukankan      html  css  js  c++  java
  • 判断存在重复元素 断舍离

    存在重复元素
    给定一个整数数组,判断是否存在重复元素。

    如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

    示例 1:

    输入: [1,2,3,1]
    输出: true
    示例 2:

    输入: [1,2,3,4]
    输出: false
    示例 3:

    输入: [1,1,1,3,3,4,3,2,4,2]
    输出: true
    相关标签
    数组
    哈希表
    排序

    作者:力扣 (LeetCode)
    链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/x248f5/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

      

    class Solution {
        public boolean containsDuplicate(int[] nums) {
            Arrays.sort(nums);
            for (int ind = 1; ind < nums.length; ind++) {
                if (nums[ind] == nums[ind - 1]) {
                    return true;
                }
            } 
            return false;
        }
    }
     
     
    -------使用bitmap 思路实现,(假设入参最大值 <800000)
    class Solution {
        public boolean containsDuplicate(int[] nums) {
            byte[] bitmap = new byte[200000];
            for(int num : nums) {
                int arridx = num >> 3;
                if(arridx < 0) { //自定义业务逻辑:负数使用 另一半数组空间【100000-200000】
                    arridx = 100000 + arridx*-1;
                }
                int position = num & 7;
                if((bitmap[arridx] & (1 << position)) != 0) {
                    return true;
                }
                 bitmap[arridx] |= (1 << position);
            }
            return false;

        }
    }
    博客地址: https://www.cnblogs.com/java2sap/
    世界丰富多彩,知识天花乱坠。
    ---如果有帮到你,点个赞吧~
  • 相关阅读:
    现代物流系统及其输送机构
    什么是线性插值原理 什么是双线性插值?
    Windows常见窗口样式和控件风格
    CAsyncSocket
    使用CRectTracker类进行对象动态定位
    英文自我介绍
    QQ 静态截图程序模拟实现
    使用CRectTracker类进行对象动态定位
    QQ 静态截图完善实现之改造 CRectTracker 类
    [原创] 骨骼运动变换的数学计算过程详解
  • 原文地址:https://www.cnblogs.com/java2sap/p/15588510.html
Copyright © 2011-2022 走看看