ARTS-week3

Algorithm

給定一個排序數組,你須要在原地刪除重複出現的元素,使得每一個元素只出現一次,返回移除後數組的新長度。不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。html

Remove Duplicates from Sorted Arraypython

# 解1,時間複雜度O(n²)
class Solution:    
    def removeDuplicates(self, nums: list) -> int:
        for i in range(len(nums)-1,0,-1):            
            if nums[i] == nums[i-1]:      
                nums.pop(i)                          
        return len(nums)
  
  
# 解2,時間複雜度O(n)
class Solution:    
    def removeDuplicates(self, nums: list) -> int:        
        i = 0        
        for j in range(0,len(nums)):           
            if nums[i] != nums[j]:                  
                nums[i+1] = nums[j]                
                i += 1        
        return i+1 if nums else 0

給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。
輸入: [1,2,3,4,5,6,7] 和 k = 3
輸出: [5,6,7,1,2,3,4]
解釋:向右旋轉 1 步: [7,1,2,3,4,5,6]
向右旋轉 2 步: [6,7,1,2,3,4,5]
向右旋轉 3 步: [5,6,7,1,2,3,4]git

Rotate Arraygithub

# 解1,數組拼接,空間複雜度O(n)
class Solution:    
    def rotate(self, nums: list, k: int) -> None:        
        k %= len(nums)        
        nums[:] = nums[-k:] + nums[:-k]        
        return nums
        
        
 # 解2,3次翻轉,空間複雜度O(1)
class Solution:    
    def rotate(self, nums: list, k: int) -> None:        
        k, start, end = k % len(nums), 0, len(nums) - 1        
        self._reverse(nums, start, end - k)        
        self._reverse(nums, end-k+1, end)        
        self._reverse(nums, start, end)    
    
    def _reverse(self, nums, start, end):        
        while start < end:            
            nums[start], nums[end] = nums[end], nums[start]            
            start += 1            
            end -= 1

Review

Web Automation: Selenium WebDriver and Python — Getting Started — Part 1web

簡單的介紹了Web自動化,入門的文章chrome

  • 測試用例準備
  • 安裝Python&Selenium&VS code&chromedriver&建立虛擬環境
  • 前兩個用例的腳本示例

Tip

打開cmder.exe時報錯「failed to copy vendor/conemu.xml.default file to vendor/conemu-maximus5/conemu.xml access denied」
解決方法:原目錄是「c:/program files/",建立一個新目錄並將cmder文件夾複製進去
參考連接數組

Share

Teach Yourself Programming in Ten Years測試

本站公眾號
   歡迎關注本站公眾號,獲取更多信息