LeetCode 217. Contains Duplicate
2016-05-01 23:55
447 查看
package com.gloomy.leetcode; /** * Given an array of integers, find if the array contains any duplicates. Your * function should return true if any value appears at least twice in the array, * and it should return false if every element is distinct. * * @author 过路的守望 * */ public class ContainsDuplicate { /** * nums中是否含重复值 利用bitmap 来检测 * 时间复杂度O(N) * @param nums * @return */ public boolean containsDuplicate(int[] nums) { int len = nums.length; if (nums == null || len == 0) { return false; } int max = 0; /* * 找出数组中的最大值,以便确定bitmap大小 */ for(int k:nums){ if(k>max){ max = k; } } int size = max / 32 + 1; System.out.println(size); /* * bitmap空间大小 */ int[] bitmap = new int[size]; for (int k : nums) { int index = k / 32; int padding = k % 32; /* * 如果k所在为已经为1直接返回true */ if ((bitmap[index] & (1 << padding)) != 0) { return true; } else { bitmap[index] = bitmap[index] ^ (1 << padding); } } return false; } }
相关文章推荐
- codeforces 667A A. Pouring Rain(水题)
- poj2010 Moo University - Financial Aid(最大化第k大)
- leetcode 070 climbing stairs
- Coremail手机版页面持久型XSS实践
- kali无线渗透之Aireplay-ng小谈
- launch failed.Binary not found
- hdu 1021 Fibonacci Again
- CSU oj 1685 Entertainment Box
- 软件设计模式——责任链模式(Chain Of Responsibility)
- foxmail wine
- 解决nginx: [error] open() "/usr/local/var/run/nginx.pid" failed错误
- kali无线渗透之aireplay-ng
- Canvas和Paint的常用方法
- pair的用法
- 设计模式:责任链模式(Chain of Responsibility)
- 【CodeForces】A. Pouring Rain
- POJ 3714(Raid-平面最近点对)
- hdu1789 Doing Homework Again
- Chaikin细分曲线
- 【LeetCode】Climbing Stairs 解题报告