LeetCode 두 배열 의 교 집합 2

1156 단어 LeetCode
두 개의 배열 을 정 하고 하나의 방법 을 써 서 그들의 교 집합 을 계산한다.
주어진 nums 1 = [1, 2, 2, 1], nums 2 = [2, 2], 반환  [2, 2] .
주의:
  •    출력 결과 에 있 는 모든 요소 가 나타 나 는 횟수 는 요소 가 두 배열 에 나타 나 는 횟수 와 일치 해 야 합 니 다.
  •    우 리 는 출력 결과 의 순 서 를 고려 하지 않 아 도 된다.

  • 따라 가기:
  • 주어진 배열 이 정렬 되 어 있다 면?당신 은 어떻게 당신 의 알고리즘 을 최적화 할 것 입 니까?

  • 하면, 만약, 만약... nums1 크기 nums2 많이 작 아 요. 어떤 방법 이 더 좋아요?
  • 만약 nums 2 의 요소 가 디스크 에 저장 된다 면 메모리 가 제한 되 어 있 습 니 다. 모든 요 소 를 메모리 에 한 번 에 불 러 올 수 없습니다. 어떻게 해 야 합 니까?

  • 해법: 먼저 주어진 두 배열 을 정렬 합 니 다. nums 1 = {1, 1, 2, 2} nums 2 = {2, 2};
    그리고 순서대로 찾 아 보기:
        public  int[] intersect(int[] nums1, int[] nums2) {
         List list=new ArrayList<>();
         Arrays.sort(nums1);
         Arrays.sort(nums2);
         int i=0,j=0;
         while(inums2[j]) {
           j++;
          }else if(nums1[i]==nums2[j]) {
           list.add(nums1[i]);
           i++;
           j++;
          }
         }
         int []num=new int[list.size()];
         int k=0;
         for(Integer n:list) {
          num[k]=n;
          k++;
         }
      return num;
            
        }

    좋은 웹페이지 즐겨찾기