Leetcodes 문제 풀이 노트-(26,27,35)

(26)정렬 배열 의 중복 항목 삭제-문제 설명:정렬 배열 을 지정 합 니 다.반복 되 는 요 소 를 제자리 에서 삭제 하고 모든 요 소 를 한 번 만 나타 나 게 해 야 합 니 다.제거 한 배열 의 새로운 길 이 를 되 돌려 줍 니 다.추가 배열 공간 을 사용 하지 마 십시오.입력 배열 을 제자리 에서 수정 하고 O(1)추가 공간 을 사용 하 는 조건 에서 완성 해 야 합 니 다.-예 를 들 어 주어진 nums=[0,0,1,1,2,2,3,3,4]함 수 는 새로운 길이 5 를 되 돌려 야 하고 원래 배열 nums 의 다섯 가지 요 소 는 0,1,2,3,4 로 수정 되 었 다.
-해:
class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        i=0
        while (i1):
            if nums[i]==nums[i+1]:
                nums.remove(nums[i])
            else:
                i+=1
        return len(nums)

주로 list 의 remove 라 는 방법 을 알 아야 합 니 다.
(27)원소 제거(26 과 유사)
(35)삽입 위치 검색
-문제 설명:정렬 배열 과 목표 값 을 지정 하고 배열 에서 목표 값 을 찾 아 색인 을 되 돌려 줍 니 다.대상 값 이 배열 에 존재 하지 않 으 면 순서대로 삽 입 된 위 치 를 되 돌려 줍 니 다.너 는 배열 에 중복 요소 가 없다 고 가정 할 수 있다.
-예 를 들 어 입력:[1,3,5,6],5,출력:2
-해:
class Solution(object):
    def searchInsert(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        for i in list(range(len(nums))):
            if target>nums[i]:
                if i==len(nums)-1:
                    return i+1
                else:
                    pass
            elif target<=nums[i]:
                if i==0:
                    return 0
                else:
                    return i

직 설 적 인 해법 은 list 의 번호 에 따라 전체 list 를 옮 겨 다 니 며 현재 값 과 target 의 크기 관 계 를 판단 하여 target 이 list 에 어느 위 치 를 삽입 해 야 하 는 지 판단 합 니 다.특히 list 의 첫 번 째 요소 와 꼬리 요 소 를 대상 으로 하 는 상황 이 다 릅 니 다.

좋은 웹페이지 즐겨찾기