剑指offer 面试题51 java实现
2016-05-01 17:23
274 查看
package com.offer.algorithm; import java.util.HashSet; public class Test51 { public static void main(String[] args) { int[] intArr = new int[] { 4, 3, 1, 0, 2, 5, 6 }; System.out.println(getDuplication2(intArr)); } // 方法一:使用HashSet的方法(空间复杂度O(n),时间复杂度O(n)) public static boolean getDuplication1(int[] intArr) { HashSet<Integer> hs = new HashSet<Integer>(); loop: for (int num : intArr) { if (hs.add(num)) { continue loop; } else { return true; } } return false; } // 使用空间复杂度O(n),时间复杂度O(1)的方法 public static boolean getDuplication2(int[] intArr) { for (int i = 0; i < intArr.length; i++) { while (intArr[i] != i) { if (intArr[i] == intArr[intArr[i]]) { return true; } // 将intArr[i]与intArr[intArr[i]]交换 int temp = intArr[i]; intArr[i] = intArr[temp]; intArr[temp] = temp; } } return false; } }
相关文章推荐
- 【17】-冒泡排序详解
- 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现
- 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现
- 面试之路(16)-归并排序详解(MergeSort)递归和非递归实现
- ios面试题3
- 年后跳槽全过程总结(上)——从面试准备到拿到offer
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- 2014年武汉的IT行情好像不太好(续):20个月过后,再看当时面试过的几个公司--武汉财富基石-崩盘,辣妈萌宝-创业失败,朋友公司转交他人管理
- 常见的与内部类相关的笔试面试题
- 成为优秀程序员的方法就是抛开编程?
- 未来中国最热门的十大职业
- 未来中国最热门的十大职业
- 中国未来10年内最热门的十大新兴职业
- 中国未来10年内最热门的十大新兴职业
- 未来五年中国最热门的9大职业
- 未来五年中国最热门的9大职业
- 未来十大最热门职业,可能消失的职业
- 未来十大最热门职业,可能消失的职业
- 未来中国最热门的十大职业排行榜