스냅 백 문제 집합 (중복 이 존재 합 니 다. 두 개의 질서 있 는 배열 을 합 쳐 삽입 위 치 를 검색 합 니 다)

3094 단어
중복 요소 존재
1. 제목 설명
  • 하나의 배열 을 정 하고 그의 i 번 째 요 소 는 주어진 주식 의 i 일 째 가격 이다.당신 이 얻 을 수 있 는 최대 이윤 을 계산 하기 위해 알고리즘 을 설계 하 세 요.너 는 가능 한 한 더 많은 거래 를 완성 할 수 있다.주의: 당신 은 여러 가지 거래 에 동시에 참여 할 수 없습니다.예시 1:
      : [7,1,5,3,6,4]
      : 7
      :    2  (     = 1)     ,   3  (     = 5)     ,            = 5-1 = 4 。
           ,   4  (     = 3)     ,   5  (     = 6)     ,            = 6-3 = 3 。
    예시 2:
      : [1,2,3,4,5]
      : 4
      :    1  (     = 1)     ,   5   (     = 5)     ,            = 5-1 = 4 。
                 1     2        ,        。
                        ,                 。
    예시 3:
            ,          。
    
                   ,     true。             ,    false。
    
       1:
    
      : [1,2,3,1]
      : true
       2:
    
      : [1,2,3,4]
      : false
       3:
    
      : [1,1,1,3,3,4,3,2,4,2]
      : true

  • 2. 문제 풀이 사고방식
          ,   

    3. 문제 풀이
    class Solution:
        def containsDuplicate(self, nums: List[int]) -> bool:
            
    
            return len(nums) != len(set(nums))
            

    두 개의 질서 있 는 배열 을 병합 하 다.
    1. 제목 설명
  • 두 개의 질서 있 는 정수 배열 nums 1 과 nums 2 를 지정 하여 nums 2 를 nums 1 에 합 쳐 num 1 을 질서 있 는 배열 로 만 듭 니 다.설명:
  • nums 1 과 nums 2 를 초기 화 하 는 요소 의 수량 은 각각 m 와 n 이다.
  • nums 1 에 충분 한 공간 (공간 크기 가 m + n 보다 크 거나 같 음) 이 있다 고 가정 하여 nums 2 의 요 소 를 저장 할 수 있 습 니 다.

  • 예제: ` ` ` 입력: nums 1 = [1, 2, 3, 0, 0, 0], m = 3 nums 2 = [2, 5, 6], n = 3
    출력: [1, 2, 2, 3, 5, 6] ` ` `


  • 2. 문제 풀이 사고방식

    3. 문제 풀이
    class Solution:
        def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
            """
            Do not return anything, modify nums1 in-place instead.
            """
            start_nums1 = nums1[:m]
            nex_nums1 = nums2[:n]
            nums1.clear()
            for a in start_nums1:
                nums1.append(a)
            for b in nex_nums1 :
                nums1.append(b)
            nums1.sort()

    삽입 위치 검색
    1. 제목 설명
  • 정렬 배열 과 목표 값 을 지정 하고 배열 에서 목표 값 을 찾 아 색인 을 되 돌려 줍 니 다.대상 값 이 배열 에 존재 하지 않 으 면 순서대로 삽 입 된 위 치 를 되 돌려 줍 니 다.너 는 배열 에 중복 요소 가 없다 고 가정 할 수 있다.예시 1:
       : [1,3,5,6], 5
      : 2
    예시 2:
       : [1,3,5,6], 2
      : 1
    예시 3:
       : [1,3,5,6], 7
      : 4
    예시 4:
      : [1,3,5,6], 0
      : 0


  • 2. 문제 풀이 사고방식
           ,      ,
    1.       ,                
    2,        
    ⑴           ,                  
    ⑵             ,         ,       len(  )

    3. 문제 풀이
    class Solution:
        def searchInsert(self, nums: List[int], target: int) -> int:
            if target in nums:
                return nums.index(target)
            else:
                for a in range(len(nums)):
                    if nums[a] > target:
                        return a
                        break  #              
                else:
                    return len(nums)
            
                

    `

    좋은 웹페이지 즐겨찾기