題目鏈接: 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; }}新聞熱點
疑難解答