Kotlin을 사용한 LeetCode. 2합

2954 단어 kotlincomputerscience

소개


  • 이 시리즈는 Kotlin
  • 의 일반적인 leetcode 솔루션을 살펴보는 저에 관한 것입니다.

    비디오 버전




  • GitHub 코드


  • GitHub

  • Leetcode의 두 합계


  • LeetCode

  • 어려움


  • 이지

  • 솔루션 시간 복잡도


  • O(N)

  • 코틀린 솔루션




    fun twoSum(nums: IntArray, target: Int): IntArray {
          val map = HashMap<Int,Int>()
                for(item in nums.indices){
                    val partner = target - nums[item]
                    if(map.containsKey(partner)){
    
                        val returnedArray = intArrayOf(map[partner]!!,item)
                        return returnedArray
    
                    }else{
                        map[nums[item]] = item
                    }
    
                }
                throw IllegalArgumentException("NOTHING FOUND")
        }
    }
    
    


    설명



  • 따라서 Kotlin 코드는 때때로 약간 펑키할 수 있으므로 한 줄씩 살펴보겠습니다. 먼저 IntArray부터 시작하겠습니다. 이를 primitive array라고 합니다. Kotlin에는 프리미티브 유형의 배열을 나타내는 특수 클래스가 있어 몇 줄의 코드를 절약할 수 있습니다(Kotlin에게 감사드립니다).
  • HashMap는 실제로 Java HashMap입니다. Kotlin의 소스 코드HERE를 보면 표준java.util.HashMap을 사용하여 해시 맵을 구현하는 것을 볼 수 있습니다. 해시 맵이 무엇인지 궁금하다면 그것은 그 자체로 또 다른 주제입니다. 그러나 그것이 키 값 쌍으로 항목을 저장하고 일정한 시간에 액세스할 수 있는 데이터 구조라는 점만 알아두십시오. 멋진 배열처럼 생각할 수 있습니다.
  • 다음으로 nums 배열을 반복하고 for(item in nums.indices)를 사용하여 IntRange를 제공하고 기본 Java for 루프처럼 반복할 수 있습니다. 범위에 대해 자세히 알아보기HERE
  • 다음으로 val partner = target - nums[item] 파트너는 우리가 실제로 찾고 있는 것입니다. 그것은 우리의 목표를 제공하기 위해 합산될 여분의 숫자입니다.
  • 다음으로 맵에 파트너가 포함되어 있는지 확인합니다: if(map.containsKey(partner)) . 맵에 파트너가 포함되어 있으면 원하는 것을 가지고 있다는 의미이므로 intArrayOf(map[partner]!!,item) 와 같이 필요한 인덱스가 있는 새로운 int 배열을 반환할 수 있습니다. item는 nums 배열의 현재 인덱스입니다.
  • if(map.containsKey(partner))가 거짓이면 현재 값을 지도의 배열에 추가합니다. map[nums[item]] = item . 이 코드는 인덱싱과 유사하기 때문에 이상하게 보일 수 있지만 인덱싱은 아닙니다. map[nums[item]] = itemmap.set(nums[item],item)와 완전히 동일합니다.
  • 마지막으로 아무것도 찾지 못하면 예외가 발생합니다throw IllegalArgumentException("NOTHING FOUND").


  • 결론


  • 시간을 내어 제 블로그 게시물을 읽어주셔서 감사합니다. 질문이나 우려 사항이 있는 경우 아래에 의견을 말하거나 에서 저에게 연락하십시오.
  • 좋은 웹페이지 즐겨찾기