题目链接: LeetCode 442 — Find All Duplicates in an Array
问题分析: 需要o(n)的时间复杂度并且不能使用额外的存储空间。找出数组中的重复元素。
AC代码:
public class PRoblem442 { public static void main(String[] args) { // TODO Auto-generated method stub int[] aa ={2,2}; findDuplicates(aa); } public static List<Integer> findDuplicates(int[] nums) { List<Integer> list =new ArrayList<Integer>(); for(int i=0;i<nums.length;i++){ if(nums[Math.abs(nums[i])-1]>0) nums[Math.abs(nums[i])-1]=nums[Math.abs(nums[i])-1]*(-1); else{ list.add(Math.abs(nums[i])); } } return list; }}新闻热点
疑难解答